)]}'
{
  "commit": "ea781f197d6a835cbb93a0bf88ee1696296ed8aa",
  "tree": "820fe7df1199d8bb6c793e664e480ea56ecf612e",
  "parents": [
    "1f9352ae2253a97b07b34dcf16ffa3b4ca12c558"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "dada1@cosmosbay.com",
    "time": "Wed Mar 25 21:05:46 2009 +0100"
  },
  "committer": {
    "name": "Patrick McHardy",
    "email": "kaber@trash.net",
    "time": "Wed Mar 25 21:05:46 2009 +0100"
  },
  "message": "netfilter: nf_conntrack: use SLAB_DESTROY_BY_RCU and get rid of call_rcu()\n\nUse \"hlist_nulls\" infrastructure we added in 2.6.29 for RCUification of UDP \u0026 TCP.\n\nThis permits an easy conversion from call_rcu() based hash lists to a\nSLAB_DESTROY_BY_RCU one.\n\nAvoiding call_rcu() delay at nf_conn freeing time has numerous gains.\n\nFirst, it doesnt fill RCU queues (up to 10000 elements per cpu).\nThis reduces OOM possibility, if queued elements are not taken into account\nThis reduces latency problems when RCU queue size hits hilimit and triggers\nemergency mode.\n\n- It allows fast reuse of just freed elements, permitting better use of\nCPU cache.\n\n- We delete rcu_head from \"struct nf_conn\", shrinking size of this structure\nby 8 or 16 bytes.\n\nThis patch only takes care of \"struct nf_conn\".\ncall_rcu() is still used for less critical conntrack parts, that may\nbe converted later if necessary.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4dfb793c3f1560185106b6b0f671d5631bc0d083",
      "old_mode": 33188,
      "old_path": "include/net/netfilter/nf_conntrack.h",
      "new_id": "6c3f964de9e1d652841cfe9510e895db3519cec9",
      "new_mode": 33188,
      "new_path": "include/net/netfilter/nf_conntrack.h"
    },
    {
      "type": "modify",
      "old_id": "f2f6aa73dc10fd3ec65d3428118c486c2b51b20a",
      "old_mode": 33188,
      "old_path": "include/net/netfilter/nf_conntrack_tuple.h",
      "new_id": "2628c154d40e1ac9f381915fa0936c0e82c483e4",
      "new_mode": 33188,
      "new_path": "include/net/netfilter/nf_conntrack_tuple.h"
    },
    {
      "type": "modify",
      "old_id": "f4498a62881b0e60d8aace59b99f9a55f70fd0a4",
      "old_mode": 33188,
      "old_path": "include/net/netns/conntrack.h",
      "new_id": "9dc58402bc09e4b5d1c210cf081313cfbccd968d",
      "new_mode": 33188,
      "new_path": "include/net/netns/conntrack.h"
    },
    {
      "type": "modify",
      "old_id": "6ba5c557690c439f55f44013da1f6e50a985db07",
      "old_mode": 33188,
      "old_path": "net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c",
      "new_id": "8668a3defda6bd212170ff0b26b400bb60274f9d",
      "new_mode": 33188,
      "new_path": "net/ipv4/netfilter/nf_conntrack_l3proto_ipv4_compat.c"
    },
    {
      "type": "modify",
      "old_id": "a65cf692359fbc803032a2d9a18dead804747bc0",
      "old_mode": 33188,
      "old_path": "net/ipv4/netfilter/nf_nat_core.c",
      "new_id": "fe65187810f065aecdf12987e905ee2695192b75",
      "new_mode": 33188,
      "new_path": "net/ipv4/netfilter/nf_nat_core.c"
    },
    {
      "type": "modify",
      "old_id": "54e983f13898740a0f369a5f66cd3b80e69a2fd4",
      "old_mode": 33188,
      "old_path": "net/netfilter/nf_conntrack_core.c",
      "new_id": "c55bbdc7d4293ca636f0b6c06de36915c14c165a",
      "new_mode": 33188,
      "new_path": "net/netfilter/nf_conntrack_core.c"
    },
    {
      "type": "modify",
      "old_id": "357ba39d4c8d72544d22e7fc0a051abfc913b681",
      "old_mode": 33188,
      "old_path": "net/netfilter/nf_conntrack_expect.c",
      "new_id": "3940f996a2e4ac180b8ed135e9f7c423f670b66d",
      "new_mode": 33188,
      "new_path": "net/netfilter/nf_conntrack_expect.c"
    },
    {
      "type": "modify",
      "old_id": "805cfdd42303f84be1b2f68c554ff59e737ffba1",
      "old_mode": 33188,
      "old_path": "net/netfilter/nf_conntrack_helper.c",
      "new_id": "30b8e9009f99a2ea3d7c366c9f7fc6a551d03776",
      "new_mode": 33188,
      "new_path": "net/netfilter/nf_conntrack_helper.c"
    },
    {
      "type": "modify",
      "old_id": "1b75c9efb0eb1c5ba4b302ad1a466a1416a917ca",
      "old_mode": 33188,
      "old_path": "net/netfilter/nf_conntrack_netlink.c",
      "new_id": "349bbefe5517682fd8d5592472606454a3282f71",
      "new_mode": 33188,
      "new_path": "net/netfilter/nf_conntrack_netlink.c"
    },
    {
      "type": "modify",
      "old_id": "4da54b0b92339b61b242b51fdcab4bc1db32233c",
      "old_mode": 33188,
      "old_path": "net/netfilter/nf_conntrack_standalone.c",
      "new_id": "193515381970f0a996a960efffe5d75dd2a65af0",
      "new_mode": 33188,
      "new_path": "net/netfilter/nf_conntrack_standalone.c"
    },
    {
      "type": "modify",
      "old_id": "7f404cc64c830e9bc9d7de65c5e02b04006072ba",
      "old_mode": 33188,
      "old_path": "net/netfilter/xt_connlimit.c",
      "new_id": "6809809543951a635ad3f53ad625dd6287e20220",
      "new_mode": 33188,
      "new_path": "net/netfilter/xt_connlimit.c"
    }
  ]
}
