)]}'
{
  "commit": "2f415d1da136c1c532cd405834051adbd5ba2702",
  "tree": "ba0d3533b35fbab993b11998cd053b6896e28b74",
  "parents": [
    "608b683fc14f11c6bb95ea61e6baa836ff88ca0d"
  ],
  "author": {
    "name": "Varsha Teratipally",
    "email": "teratipally@google.com",
    "time": "Wed Jun 02 17:35:13 2021 +0000"
  },
  "committer": {
    "name": "COS Cherry Picker",
    "email": "cloud-image-release@prod.google.com",
    "time": "Mon Jun 07 17:56:26 2021 -0700"
  },
  "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\n\nThis reverts commit 6ffbd6030f62a0cf9cc3d2750e0a81843a4df913.\n\nReason for revert: Reland the changes\n\ncos-patch: bug\nChange-Id: I30235007954daa9e37f3abd96b47c64704c8dc39\nReviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/17372\nReviewed-by: Oleksandr Tymoshenko \u003covt@google.com\u003e\nTested-by: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\nMain-Branch-Verified: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.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": "e8a924eeea3d01c86c40766445c5661c395bce6c",
      "old_mode": 33188,
      "old_path": "include/linux/virtio_net.h",
      "new_id": "c4b90f1de5b6e324726403ba1b8ab6dc79020e07",
      "new_mode": 33188,
      "new_path": "include/linux/virtio_net.h"
    }
  ]
}
