)]}'
{
  "commit": "87fb4b7b533073eeeaed0b6bf7c2328995f6c075",
  "tree": "be4b37f08d7fe2d018ae68bae4577b1b2bafd0fc",
  "parents": [
    "97ba0eb64ca690165f945a83e609102fcefa99cb"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "eric.dumazet@gmail.com",
    "time": "Thu Oct 13 07:28:54 2011 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Thu Oct 13 16:05:07 2011 -0400"
  },
  "message": "net: more accurate skb truesize\n\nskb truesize currently accounts for sk_buff struct and part of skb head.\nkmalloc() roundings are also ignored.\n\nConsidering that skb_shared_info is larger than sk_buff, its time to\ntake it into account for better memory accounting.\n\nThis patch introduces SKB_TRUESIZE(X) macro to centralize various\nassumptions into a single place.\n\nAt skb alloc phase, we put skb_shared_info struct at the exact end of\nskb head, to allow a better use of memory (lowering number of\nreallocations), since kmalloc() gives us power-of-two memory blocks.\n\nUnless SLUB/SLUB debug is active, both skb-\u003ehead and skb_shared_info are\naligned to cache lines, as before.\n\nNote: This patch might trigger performance regressions because of\nmisconfigured protocol stacks, hitting per socket or global memory\nlimits that were previously not reached. But its a necessary step for a\nmore accurate memory accounting.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Andi Kleen \u003cak@linux.intel.com\u003e\nCC: Ben Hutchings \u003cbhutchings@solarflare.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ac6b05a325cc29f0fcc846ec9971e22627f83780",
      "old_mode": 33188,
      "old_path": "include/linux/skbuff.h",
      "new_id": "64f86951ef74ebb7044dda18ed5bdecbe19c816c",
      "new_mode": 33188,
      "new_path": "include/linux/skbuff.h"
    },
    {
      "type": "modify",
      "old_id": "5b2c5f1d4dba0edf44769c512443325d9055b756",
      "old_mode": 33188,
      "old_path": "net/core/skbuff.c",
      "new_id": "a7f855dca922ba0b51b0be82a28303b36190cf8e",
      "new_mode": 33188,
      "new_path": "net/core/skbuff.c"
    },
    {
      "type": "modify",
      "old_id": "83c462d3f451e0b674240f49fb1845680ab1a7b0",
      "old_mode": 33188,
      "old_path": "net/core/sock.c",
      "new_id": "5a087626bb3a31f8d2f5deac1d27d685b74cc9cd",
      "new_mode": 33188,
      "new_path": "net/core/sock.c"
    },
    {
      "type": "modify",
      "old_id": "23ef31baa1afb84d3b81af7ab031c88830efe0f5",
      "old_mode": 33188,
      "old_path": "net/ipv4/icmp.c",
      "new_id": "ab188ae12fd9e64635f47c92a1cc0acf1b9d3a13",
      "new_mode": 33188,
      "new_path": "net/ipv4/icmp.c"
    },
    {
      "type": "modify",
      "old_id": "81cae641c9a927f03109c6c37617914f6eae4739",
      "old_mode": 33188,
      "old_path": "net/ipv4/tcp_input.c",
      "new_id": "c1653fe472557c89ed860c4168a8cbe3cc222389",
      "new_mode": 33188,
      "new_path": "net/ipv4/tcp_input.c"
    },
    {
      "type": "modify",
      "old_id": "2b59154c65d3127f065803b209a584cd81651783",
      "old_mode": 33188,
      "old_path": "net/ipv6/icmp.c",
      "new_id": "90868fb42757bf8431eaea968d861d81c4da5c10",
      "new_mode": 33188,
      "new_path": "net/ipv6/icmp.c"
    },
    {
      "type": "modify",
      "old_id": "c39f3a43cd80992df62f393928020207e6676f8c",
      "old_mode": 33188,
      "old_path": "net/iucv/af_iucv.c",
      "new_id": "274d150320c0f52b0b88fbc5b1c1817bd45cfc24",
      "new_mode": 33188,
      "new_path": "net/iucv/af_iucv.c"
    },
    {
      "type": "modify",
      "old_id": "91784f44a2e2e92db82eff669ec7a4d4327636c2",
      "old_mode": 33188,
      "old_path": "net/sctp/protocol.c",
      "new_id": "61b9fca5a173bba9057f9a09dc2ac6cf45f34bc9",
      "new_mode": 33188,
      "new_path": "net/sctp/protocol.c"
    }
  ]
}
