)]}'
{
  "commit": "1338d466d9c3f8a65cc6d83c629cd906f2a989f8",
  "tree": "2f30913c1c9c6d3c0616ac593e79b0431cc150d3",
  "parents": [
    "13ff3d6fa4e6d8b6ee7c64245a0078e6a0e6f977"
  ],
  "author": {
    "name": "Pavel Emelyanov",
    "email": "xemul@openvz.org",
    "time": "Fri Mar 28 16:38:43 2008 -0700"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Fri Mar 28 16:38:43 2008 -0700"
  },
  "message": "[SOCK]: Introduce a percpu inuse counters array (v2).\n\nAnd redirect sock_prot_inuse_add and _get to use one.\n\nAs far as the dereferences are concerned. Before the patch we made\n1 dereference to proto-\u003einuse.add call, the call itself and then\ncalled the __get_cpu_var() on a static variable. After the patch we \nmake a direct call, then one dereference to proto-\u003einuse_idx and \nthen the same __get_cpu_var() on a still static variable. So this \npatch doesn\u0027t seem to produce performance penalty on SMP.\n\nThis is not per-net yet, but I will deliberately make NET_NS\u003dy case\nseparated from NET_NS\u003dn one, since it\u0027ll cost us one-or-two more \ndereferences to get the struct net and the inuse counter.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "abc6341f536f2dc281c08d67d2f21ad21db62639",
      "old_mode": 33188,
      "old_path": "include/net/sock.h",
      "new_id": "ebf9552664b292428f8dfdb818433a427baf5b9d",
      "new_mode": 33188,
      "new_path": "include/net/sock.h"
    },
    {
      "type": "modify",
      "old_id": "7d2c8add5f5a3beb3bedadb561cebcd0bfa9d169",
      "old_mode": 33188,
      "old_path": "net/core/sock.c",
      "new_id": "174c64bc7a431b9f5905eab4ee70fe9e21bc4b6c",
      "new_mode": 33188,
      "new_path": "net/core/sock.c"
    }
  ]
}
