)]}'
{
  "commit": "69d1506731168d6845a76a303b2c45f7c05f3f2c",
  "tree": "3bedf2680b30c09b0375616a1c2b0d291a9f376f",
  "parents": [
    "7512cbf6efc97644812f137527a54b8e92b6a90a"
  ],
  "author": {
    "name": "Herbert Xu",
    "email": "herbert@gondor.apana.org.au",
    "time": "Sat Mar 22 15:47:05 2008 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Sat Mar 22 15:47:05 2008 -0700"
  },
  "message": "[TCP]: Let skbs grow over a page on fast peers\n\nWhile testing the virtio-net driver on KVM with TSO I noticed\nthat TSO performance with a 1500 MTU is significantly worse\ncompared to the performance of non-TSO with a 16436 MTU.  The\npacket dump shows that most of the packets sent are smaller\nthan a page.\n\nLooking at the code this actually is quite obvious as it always\nstop extending the packet if it\u0027s the first packet yet to be\nsent and if it\u0027s larger than the MSS.  Since each extension is\nbound by the page size, this means that (given a 1500 MTU) we\u0027re\nvery unlikely to construct packets greater than a page, provided\nthat the receiver and the path is fast enough so that packets can\nalways be sent immediately.\n\nThe fix is also quite obvious.  The push calls inside the loop\nis just an optimisation so that we don\u0027t end up doing all the\nsending at the end of the loop.  Therefore there is no specific\nreason why it has to do so at MSS boundaries.  For TSO, the\nmost natural extension of this optimisation is to do the pushing\nonce the skb exceeds the TSO size goal.\n\nThis is what the patch does and testing with KVM shows that the\nTSO performance with a 1500 MTU easily surpasses that of a 16436\nMTU and indeed the packet sizes sent are generally larger than\n16436.\n\nI don\u0027t see any obvious downsides for slower peers or connections,\nbut it would be prudent to test this extensively to ensure that\nthose cases don\u0027t regress.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "071e83a894ad9c02081f24b9ba243c77f7ea8d7c",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp.c",
      "new_id": "39b629ac240411d6092622dc543abfe4f0779dc5",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp.c"
    }
  ]
}
