)]}'
{
  "commit": "40d34c852fd64d5472b62a4e98147b2cde2df869",
  "tree": "20e783a7085f06bd36934948432966af1432f66f",
  "parents": [
    "849790a2e0814e632f773f96f2a97119b3944ec9"
  ],
  "author": {
    "name": "Varsha Teratipally",
    "email": "teratipally@google.com",
    "time": "Fri Jun 04 22:22:21 2021 +0000"
  },
  "committer": {
    "name": "Varsha Teratipally",
    "email": "teratipally@google.com",
    "time": "Wed Jun 16 18:15:48 2021 +0000"
  },
  "message": "virtio_net: Do not pull payload in skb-\u003ehead\n\nXuan Zhuo reported that commit 3226b158e67c (\"net: avoid 32 x truesize\nunder-estimation for tiny skbs\") brought  a ~10% performance drop.\n\nThe reason for the performance drop was that GRO was forced\nto chain sk_buff (using skb_shinfo(skb)-\u003efrag_list), which\nuses more memory but also cause packet consumers to go over\na lot of overhead handling all the tiny skbs.\n\nIt turns out that virtio_net page_to_skb() has a wrong strategy :\nIt allocates skbs with GOOD_COPY_LEN (128) bytes in skb-\u003ehead, then\ncopies 128 bytes from the page, before feeding the packet to GRO stack.\n\nThis was suboptimal before commit 3226b158e67c (\"net: avoid 32 x truesize\nunder-estimation for tiny skbs\") because GRO was using 2 frags per MSS,\nmeaning we were not packing MSS with 100% efficiency.\n\nFix is to pull only the ethernet header in page_to_skb()\n\nThen, we change virtio_net_hdr_to_skb() to pull the missing\nheaders, instead of assuming they were already pulled by callers.\n\nThis fixes the performance regression, but could also allow virtio_net\nto accept packets with more than 128bytes of headers.\n\nMany thanks to Xuan Zhuo for his report, and his tests/help.\n\nBUG\u003db/183655476\nTEST\u003dpresubmit\nSOURCE\u003dUPSTREAM(0f6925b3e8da0dbbb52447ca8a8b42b371aac7db)\nRELEASE_NOTE\u003davoid 32 x truesize under-estimation for tiny skbs\n\nReason for revert: Reland the change\n\ncos-patch: bug\nChange-Id: Ifd937f5b68db1fffa0e2d0fce0a76e5f277c00ae\nReviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/17590\nTested-by: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\nReviewed-by: Roy Yang \u003croyyang@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b67460864b3c2542a71155ad61e443dafcf0ce40",
      "old_mode": 33188,
      "old_path": "drivers/net/virtio_net.c",
      "new_id": "d8ee001d8e8eb2cfd8d8eca4eb7147d4ecea8640",
      "new_mode": 33188,
      "new_path": "drivers/net/virtio_net.c"
    },
    {
      "type": "modify",
      "old_id": "6b5fcfa1e5553576b0e853ae31a2df655c04204b",
      "old_mode": 33188,
      "old_path": "include/linux/virtio_net.h",
      "new_id": "2d29d25a08c8f1fa90c0b9f5bb950f40f23ee731",
      "new_mode": 33188,
      "new_path": "include/linux/virtio_net.h"
    }
  ]
}
