)]}'
{
  "commit": "b790e01aee74c23a5d92576177934f13aa51f718",
  "tree": "c0868448408c40d2a6f70ae2326556798620d272",
  "parents": [
    "8df40d1033d64597dcf1efd4f7547e817f7a953b"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "eric.dumazet@gmail.com",
    "time": "Mon Sep 27 23:05:47 2010 +0000"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Wed Sep 29 13:25:38 2010 -0700"
  },
  "message": "ip_gre: lockless xmit\n\nGRE tunnels can benefit from lockless xmits, using NETIF_F_LLTX\n\nNote: If tunnels are created with the \"oseq\" option, LLTX is not\nenabled :\n\nEven using an atomic_t o_seq, we would increase chance for packets being\nout of order at receiver.\n\nBench on a 16 cpus machine (dual E5540 cpus), 16 threads sending\n10000000 UDP frames via one gre tunnel (size:200 bytes per frame)\n\nBefore patch :\nreal\t3m0.094s\nuser\t0m9.365s\nsys\t47m50.103s\n\nAfter patch:\nreal\t0m29.756s\nuser\t0m11.097s\nsys\t7m33.012s\n\nLast problem to solve is the contention on dst :\n\n38660.00 21.4% __ip_route_output_key          vmlinux\n20786.00 11.5% dst_release                    vmlinux\n14191.00  7.8% __xfrm_lookup                  vmlinux\n12410.00  6.9% ip_finish_output               vmlinux\n 4540.00  2.5% ip_push_pending_frames         vmlinux\n 4427.00  2.4% ip_append_data                 vmlinux\n 4265.00  2.4% __alloc_skb                    vmlinux\n 4140.00  2.3% __ip_local_out                 vmlinux\n 3991.00  2.2% dev_queue_xmit                 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": "a1b5d5e030645b945a9b45e3793098701bf9a642",
      "old_mode": 33188,
      "old_path": "net/ipv4/ip_gre.c",
      "new_id": "035db6350037f63799e22e13ad64056f1a25dc00",
      "new_mode": 33188,
      "new_path": "net/ipv4/ip_gre.c"
    }
  ]
}
