)]}'
{
  "log": [
    {
      "commit": "4399ce402c7c837dec80bf9fb40d079b39b9265a",
      "tree": "d60fdcdd13b019fba90bbef24e3b530b8ff3c5d4",
      "parents": [
        "8790ca172a1550949804a2ad59ccea310f680c9f"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 01 17:29:08 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 01 17:29:08 2010 -0800"
      },
      "message": "inetpeer: Fix incorrect comment about inetpeer struct size.\n\nNow with ipv6 support it is no longer less than 64 bytes.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8790ca172a1550949804a2ad59ccea310f680c9f",
      "tree": "f9a0bf451adc36dab6e4cb9f5430827bbd827384",
      "parents": [
        "67d5288049f46f816181f63eaa8f1371877ad8ea"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 01 17:28:18 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 01 17:28:18 2010 -0800"
      },
      "message": "inetpeer: Kill use of inet_peer_address_t typedef.\n\nThey are verboten these days.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "672f007d65f50468a4a1e55825fe58e5b035324d",
      "tree": "1c4c74ed6cdc6881cccc1c24a97b8117efe93d6c",
      "parents": [
        "021e9299113363cc1b713f86b2cba30b8e6cb5dd"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 30 12:20:00 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 30 12:20:00 2010 -0800"
      },
      "message": "inetpeer: Add inet_getpeer_v6()\n\nNow that all of the infrastructure is in place, we can add\nthe ipv6 shorthand for peer creation.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b534ecf1cd26f094497da6ae28a6ab64cdbe1617",
      "tree": "bdf8a55183a38926b8f34f709cb51a4db2f5f6b8",
      "parents": [
        "582a72da9a41be9227dc931d728ae2906880a589"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 30 11:54:19 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 30 11:54:19 2010 -0800"
      },
      "message": "inetpeer: Make inet_getpeer() take an inet_peer_adress_t pointer.\n\nAnd make an inet_getpeer_v4() helper, update callers.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "582a72da9a41be9227dc931d728ae2906880a589",
      "tree": "0c1943d6c5eabdbfef6560ac49db322d4becf43d",
      "parents": [
        "98158f5a853cafd33b254ae0eacc0dd69f90b93b"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 30 11:53:55 2010 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 30 11:53:55 2010 -0800"
      },
      "message": "inetpeer: Introduce inet_peer_address_t.\n\nCurrently only the v4 aspect is used, but this will change.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b914c4ea929a4ba6fb97967800dc473c31552b98",
      "tree": "630f7c81d82e580e5aa5164c0e4cf1d0dadca3ba",
      "parents": [
        "7a2b03c5175e9ddcc2a2d48ca86dea8a88b68383"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Mon Oct 25 23:55:38 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Oct 27 11:37:33 2010 -0700"
      },
      "message": "inetpeer: __rcu annotations\n\nAdds __rcu annotations to inetpeer\n\t(struct inet_peer)-\u003eavl_left\n\t(struct inet_peer)-\u003eavl_right\n\nThis is a tedious cleanup, but removes one smp_wmb() from link_to_pool()\nsince we now use more self documenting rcu_assign_pointer().\n\nNote the use of RCU_INIT_POINTER() instead of rcu_assign_pointer() in\nall cases we dont need a memory barrier.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "317fe0e6c5dc9448bcef41a2e31fecfd3dba7f55",
      "tree": "c2a042e1c8bb96b7fdeadf658309ead1b6e8dabc",
      "parents": [
        "fdb93f8ac39aa5902f3d264edd50dffcabfdd13b"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Wed Jun 16 04:52:13 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 16 11:55:39 2010 -0700"
      },
      "message": "inetpeer: restore small inet_peer structures\n\nAddition of rcu_head to struct inet_peer added 16bytes on 64bit arches.\n\nThats a bit unfortunate, since old size was exactly 64 bytes.\n\nThis can be solved, using an union between this rcu_head an four fields,\nthat are normally used only when a refcount is taken on inet_peer.\nrcu_head is used only when refcnt\u003d-1, right before structure freeing.\n\nAdd a inet_peer_refcheck() function to check this assertion for a while.\n\nWe can bring back SLAB_HWCACHE_ALIGN qualifier in kmem cache creation.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "aa1039e73cc2cf834e99c09d2033d5d2675357b9",
      "tree": "0db06e4adddaf0f77b4e8de170710b74a17375e4",
      "parents": [
        "7b34a4644b4342896e0c1967b8f953213ea4a990"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Jun 15 08:23:14 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Jun 15 14:23:38 2010 -0700"
      },
      "message": "inetpeer: RCU conversion\n\ninetpeer currently uses an AVL tree protected by an rwlock.\n\nIt\u0027s possible to make most lookups use RCU\n\n1) Add a struct rcu_head to struct inet_peer\n\n2) add a lookup_rcu_bh() helper to perform lockless and opportunistic\nlookup. This is a normal function, not a macro like lookup().\n\n3) Add a limit to number of links followed by lookup_rcu_bh(). This is\nneeded in case we fall in a loop.\n\n4) add an smp_wmb() in link_to_pool() right before node insert.\n\n5) make unlink_from_pool() use atomic_cmpxchg() to make sure it can take\nlast reference to an inet_peer, since lockless readers could increase\nrefcount, even while we hold peers.lock.\n\n6) Delay struct inet_peer freeing after rcu grace period so that\nlookup_rcu_bh() cannot crash.\n\n7) inet_getpeer() first attempts lockless lookup.\n   Note this lookup can fail even if target is in AVL tree, but a\nconcurrent writer can let tree in a non correct form.\n   If this attemps fails, lock is taken a regular lookup is performed\nagain.\n\n8) convert peers.lock from rwlock to a spinlock\n\n9) Remove SLAB_HWCACHE_ALIGN when peer_cachep is created, because\nrcu_head adds 16 bytes on 64bit arches, doubling effective size (64 -\u003e\n128 bytes)\nIn a future patch, this is probably possible to revert this part, if rcu\nfield is put in an union to share space with rid, ip_id_count, tcp_ts \u0026\ntcp_ts_stamp. These fields being manipulated only with refcnt \u003e 0.\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2c1409a0a2b88585ec0c03f1de0aafa178c56313",
      "tree": "e9fc25badfb716e5368079535f548cc8e4b5576a",
      "parents": [
        "234b27c3fd58fc0e15c04dd0fbf4337fac9c2a06"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Thu Nov 12 09:33:09 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Nov 13 20:46:58 2009 -0800"
      },
      "message": "inetpeer: Optimize inet_getid()\n\nWhile investigating for network latencies, I found inet_getid() was a\ncontention point for some workloads, as inet_peer_idlock is shared\nby all inet_getid() users regardless of peers.\n\nOne way to fix this is to make ip_id_count an atomic_t instead\nof __u16, and use atomic_add_return().\n\nIn order to keep sizeof(struct inet_peer) \u003d 64 on 64bit arches\ntcp_ts_stamp is also converted to __u32 instead of \"unsigned long\".\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd2c3ef761fbc5e6c27fa7d40b30cda06bfcd7d8",
      "tree": "25922196160e9d5be8aa2a473ce981756926390f",
      "parents": [
        "4b7673a04a16f1d8faf1e367ae28a6ee1671843d"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "eric.dumazet@gmail.com",
        "time": "Tue Nov 03 03:26:03 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Nov 04 05:06:25 2009 -0800"
      },
      "message": "net: cleanup include/net\n\nThis cleanup patch puts struct/union/enum opening braces,\nin first line to ease grep games.\n\nstruct something\n{\n\nbecomes :\n\nstruct something {\n\nSigned-off-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0b040829952d84bf2a62526f0e24b624e0699447",
      "tree": "b2e836e7e64343f19b949e50099bbe2ea554ec30",
      "parents": [
        "573bf470e693f73a6ac437b17a64a10902ba54bf"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue Jun 10 22:46:50 2008 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Jun 11 21:00:38 2008 -0700"
      },
      "message": "net: remove CVS keywords\n\nThis patch removes CVS keywords that weren\u0027t updated for a long time\nfrom comments.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d71209ded2ba6010070d02005384897c59859d00",
      "tree": "a812e34e54e36f74ce9ef61f6e9e42100d0a6ef4",
      "parents": [
        "22649d1afbe6988688a07fd70abb06f1e2213567"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Mon Nov 12 21:27:28 2007 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 12 21:27:28 2007 -0800"
      },
      "message": "[INET]: Use list_head-s in inetpeer.c\n\nThe inetpeer.c tracks the LRU list of inet_perr-s, but makes\nit by hands. Use the list_head-s for this.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "78d79423179c0efc7ec34b55d287e7be4ca07da6",
      "tree": "493041961b8da774b5d9c6a5cc00add000111137",
      "parents": [
        "06ca719faddaf5ea46c6356b12847663c3ed8806"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Fri Oct 20 00:28:35 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Oct 20 00:28:35 2006 -0700"
      },
      "message": "[IPV4] inet_peer: Group together avl_left, avl_right, v4daddr to speedup lookups on some CPUS\n\nLot of routers/embedded devices still use CPUS with 16/32 bytes cache\nlines.  (486, Pentium, ...  PIII) It makes sense to group together\nfields used at lookup time so they fit in one cache line.  This reduce\ncache footprint and speedup lookups.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4663afe2c848e2abc8791202beecf40684f13eb4",
      "tree": "4d67cf3a9910bb9c224b4495b554560ec438477e",
      "parents": [
        "ea614d7f4fb2d436b7a5ee490d1011615f6b38d5"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Thu Oct 12 21:21:06 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sun Oct 15 23:14:17 2006 -0700"
      },
      "message": "[NET]: reduce sizeof(struct inet_peer), cleanup, change in peer_check_expire()\n\n1) shrink struct inet_peer on 64 bits platforms.\n"
    },
    {
      "commit": "53576d9b995605a9edc7414b900a9218c8f23b1f",
      "tree": "a0287612fda29ef5908febacecd001f59fe2ff28",
      "parents": [
        "d878e72e419db9ff4c66848375ee30a19820e4de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Sep 26 22:18:43 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Thu Sep 28 18:01:09 2006 -0700"
      },
      "message": "[IPV4]: inetpeer annotations\n\nThis one is interesting - we use net-endian value as search key, but\norder the tree by *host-endian* comparisons of keys.  OK since we only\ncare about lookups.  Annotated inet_getpeer() and friends.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "89cee8b1cbb9dac40c92ef1968aea2b45f82fd18",
      "tree": "01049841b15a9c2f3f136710382c7e4c11c1b1e5",
      "parents": [
        "d5228a4f49db32d22a39c653281b527ef371129c"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Tue Dec 13 23:14:27 2005 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Tue Jan 03 13:10:31 2006 -0800"
      },
      "message": "[IPV4]: Safer reassembly\n\nAnother spin of Herbert Xu\u0027s \"safer ip reassembly\" patch\nfor 2.6.16.\n\n(The original patch is here:\nhttp://marc.theaimsgroup.com/?l\u003dlinux-netdev\u0026m\u003d112281936522415\u0026w\u003d2\nand my only contribution is to have tested it.)\n\nThis patch (optionally) does additional checks before accepting IP\nfragments, which can greatly reduce the possibility of reassembling\nfragments which originated from different IP datagrams.\n\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Arthur Kepner \u003cakepner@sgi.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
