)]}'
{
  "commit": "ebc0ffae5dfb4447e0a431ffe7fe1d467c48bbb9",
  "tree": "395e50547ffccc6b73e04a44190eb4b4f2d2316b",
  "parents": [
    "c2952c314b4fe61820ba8fd6c949eed636140d52"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "eric.dumazet@gmail.com",
    "time": "Tue Oct 05 10:41:36 2010 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Tue Oct 05 20:39:38 2010 -0700"
  },
  "message": "fib: RCU conversion of fib_lookup()\n\nfib_lookup() converted to be called in RCU protected context, no\nreference taken and released on a contended cache line (fib_clntref)\n\nfib_table_lookup() and fib_semantic_match() get an additional parameter.\n\nstruct fib_info gets an rcu_head field, and is freed after an rcu grace\nperiod.\n\nStress test :\n(Sending 160.000.000 UDP frames on same neighbour,\nIP route cache disabled, dual E5540 @2.53GHz,\n32bit kernel, FIB_HASH) (about same results for FIB_TRIE)\n\nBefore patch :\n\nreal\t1m31.199s\nuser\t0m13.761s\nsys\t23m24.780s\n\nAfter patch:\n\nreal\t1m5.375s\nuser\t0m14.997s\nsys\t15m50.115s\n\nBefore patch Profile :\n\n13044.00 15.4% __ip_route_output_key vmlinux\n 8438.00 10.0% dst_destroy           vmlinux\n 5983.00  7.1% fib_semantic_match    vmlinux\n 5410.00  6.4% fib_rules_lookup      vmlinux\n 4803.00  5.7% neigh_lookup          vmlinux\n 4420.00  5.2% _raw_spin_lock        vmlinux\n 3883.00  4.6% rt_set_nexthop        vmlinux\n 3261.00  3.9% _raw_read_lock        vmlinux\n 2794.00  3.3% fib_table_lookup      vmlinux\n 2374.00  2.8% neigh_resolve_output  vmlinux\n 2153.00  2.5% dst_alloc             vmlinux\n 1502.00  1.8% _raw_read_lock_bh     vmlinux\n 1484.00  1.8% kmem_cache_alloc      vmlinux\n 1407.00  1.7% eth_header            vmlinux\n 1406.00  1.7% ipv4_dst_destroy      vmlinux\n 1298.00  1.5% __copy_from_user_ll   vmlinux\n 1174.00  1.4% dev_queue_xmit        vmlinux\n 1000.00  1.2% ip_output             vmlinux\n\nAfter patch Profile :\n\n13712.00 15.8% dst_destroy             vmlinux\n 8548.00  9.9% __ip_route_output_key   vmlinux\n 7017.00  8.1% neigh_lookup            vmlinux\n 4554.00  5.3% fib_semantic_match      vmlinux\n 4067.00  4.7% _raw_read_lock          vmlinux\n 3491.00  4.0% dst_alloc               vmlinux\n 3186.00  3.7% neigh_resolve_output    vmlinux\n 3103.00  3.6% fib_table_lookup        vmlinux\n 2098.00  2.4% _raw_read_lock_bh       vmlinux\n 2081.00  2.4% kmem_cache_alloc        vmlinux\n 2013.00  2.3% _raw_spin_lock          vmlinux\n 1763.00  2.0% __copy_from_user_ll     vmlinux\n 1763.00  2.0% ip_output               vmlinux\n 1761.00  2.0% ipv4_dst_destroy        vmlinux\n 1631.00  1.9% eth_header              vmlinux\n 1440.00  1.7% _raw_read_unlock_bh     vmlinux\n\nReference results, if IP route cache is enabled :\n\nreal\t0m29.718s\nuser\t0m10.845s\nsys\t7m37.341s\n\n25213.00 29.5% __ip_route_output_key   vmlinux\n 9011.00 10.5% dst_release             vmlinux\n 4817.00  5.6% ip_push_pending_frames  vmlinux\n 4232.00  5.0% ip_finish_output        vmlinux\n 3940.00  4.6% udp_sendmsg             vmlinux\n 3730.00  4.4% __copy_from_user_ll     vmlinux\n 3716.00  4.4% ip_route_output_flow    vmlinux\n 2451.00  2.9% __xfrm_lookup           vmlinux\n 2221.00  2.6% ip_append_data          vmlinux\n 1718.00  2.0% _raw_spin_lock_bh       vmlinux\n 1655.00  1.9% __alloc_skb             vmlinux\n 1572.00  1.8% sock_wfree              vmlinux\n 1345.00  1.6% kfree                   vmlinux\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": "ac2fd002812ef03ef52fde39c347d91faf956e1e",
      "old_mode": 33188,
      "old_path": "include/net/fib_rules.h",
      "new_id": "106f3097d38452e9764e60115f88ea768d6cb15c",
      "new_mode": 33188,
      "new_path": "include/net/fib_rules.h"
    },
    {
      "type": "modify",
      "old_id": "c93f94edc610fc440f38ca5f191b7b6c7e7dd72c",
      "old_mode": 33188,
      "old_path": "include/net/ip_fib.h",
      "new_id": "ba3666d31766864b354687cc543d9ba3a365193d",
      "new_mode": 33188,
      "new_path": "include/net/ip_fib.h"
    },
    {
      "type": "modify",
      "old_id": "cfb7d25c172d60ae57061c345c7526765c93c5a9",
      "old_mode": 33188,
      "old_path": "net/core/fib_rules.c",
      "new_id": "21698f8c49ee7a7c0590fc38ab28e4ad7afaf1fd",
      "new_mode": 33188,
      "new_path": "net/core/fib_rules.c"
    },
    {
      "type": "modify",
      "old_id": "b05c23b05a9f9b766a4ea31b5e9b8aa54a1934a7",
      "old_mode": 33188,
      "old_path": "net/ipv4/fib_frontend.c",
      "new_id": "919f2ad19b4973eecfec44b39a9c6376e751ecae",
      "new_mode": 33188,
      "new_path": "net/ipv4/fib_frontend.c"
    },
    {
      "type": "modify",
      "old_id": "4ed7e0dea1bc0e8b33bb1f094e712b59fb6715ad",
      "old_mode": 33188,
      "old_path": "net/ipv4/fib_hash.c",
      "new_id": "83cca68e259c420b8c84c1a520e3c9b3fbe31c5c",
      "new_mode": 33188,
      "new_path": "net/ipv4/fib_hash.c"
    },
    {
      "type": "modify",
      "old_id": "637b133973bd88e601aee3b833de0efed5b2a017",
      "old_mode": 33188,
      "old_path": "net/ipv4/fib_lookup.h",
      "new_id": "b9c9a9f2aee54f50f14f7594f119f46b3631fe3e",
      "new_mode": 33188,
      "new_path": "net/ipv4/fib_lookup.h"
    },
    {
      "type": "modify",
      "old_id": "32300521e32c49f3e5675104f8416e2da3bb2d7d",
      "old_mode": 33188,
      "old_path": "net/ipv4/fib_rules.c",
      "new_id": "7981a24f5c7b3b51e5c23c825f98e12b02dfcd87",
      "new_mode": 33188,
      "new_path": "net/ipv4/fib_rules.c"
    },
    {
      "type": "modify",
      "old_id": "ba52f399a898915cc109bd6338c82b6c6ad487ef",
      "old_mode": 33188,
      "old_path": "net/ipv4/fib_semantics.c",
      "new_id": "0f80dfc2f7fb49a4336329b48935aa937669351e",
      "new_mode": 33188,
      "new_path": "net/ipv4/fib_semantics.c"
    },
    {
      "type": "modify",
      "old_id": "a96e5ec211a027398f243ec8c7ac99346b0d7082",
      "old_mode": 33188,
      "old_path": "net/ipv4/fib_trie.c",
      "new_id": "271c89bdf049706dbc8288457c308f437a427205",
      "new_mode": 33188,
      "new_path": "net/ipv4/fib_trie.c"
    },
    {
      "type": "modify",
      "old_id": "04e0df82b88cde2573fe30e380a1c5d0ec50f0da",
      "old_mode": 33188,
      "old_path": "net/ipv4/route.c",
      "new_id": "7864d0c489683e985a1a900b66ad1635557dfbbe",
      "new_mode": 33188,
      "new_path": "net/ipv4/route.c"
    }
  ]
}
