)]}'
{
  "commit": "8e602ce2980fd6941dc0d3dda12e5095e8206f34",
  "tree": "1a0ea79a6db1b01660cc034c822d02c95e356388",
  "parents": [
    "c60ce4e265404ca42ba860401f4b0f1e97332a67"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "eric.dumazet@gmail.com",
    "time": "Thu Oct 14 05:56:18 2010 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Sun Oct 17 13:49:14 2010 -0700"
  },
  "message": "netns: reorder fields in struct net\n\nIn a network bench, I noticed an unfortunate false sharing between\n\u0027loopback_dev\u0027 and \u0027count\u0027 fields in \"struct net\".\n\n\u0027count\u0027 is written each time a socket is created or destroyed, while\nloopback_dev might be often read in routing code.\n\nMove loopback_dev in a read mostly section of \"struct net\"\n\nNote: struct netns_xfrm is cache line aligned on SMP.\n(It contains a \"struct dst_ops\")\nMove it at the end to avoid holes, and reduce sizeof(struct net) by 128\nbytes on ia32.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bd10a7908993fc369de73957751588d933a9bb12",
      "old_mode": 33188,
      "old_path": "include/net/net_namespace.h",
      "new_id": "65af9a07cf766b3fe0309149cd46fcc6495aaffb",
      "new_mode": 33188,
      "new_path": "include/net/net_namespace.h"
    },
    {
      "type": "modify",
      "old_id": "74f119a2829a2fe8749e28fdccd99822e58e76dc",
      "old_mode": 33188,
      "old_path": "include/net/netns/xfrm.h",
      "new_id": "748f91f87cd573783efcf59a615292a86b2c289e",
      "new_mode": 33188,
      "new_path": "include/net/netns/xfrm.h"
    }
  ]
}
