)]}'
{
  "log": [
    {
      "commit": "ef87b7ea39a91906218a262686bcb8bad8b6b46e",
      "tree": "4fe72c5b5f788d8109e715012ce2af57bba807d7",
      "parents": [
        "c20f5b9633bb0953bd2422f0f1430a2028cdbd0a"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Fri Jul 09 12:26:20 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:16:39 2010 -0700"
      },
      "message": "RDS: remove __init and __exit annotation\n\nThe trivial amount of memory saved isn\u0027t worth the cost of dealing with section\nmismatches.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "80c51be56ffa257d3177f0d750d90be65d30c22f",
      "tree": "82c49257057595f9a406c25093ade2871f736241",
      "parents": [
        "515e079dab19cf774d1eec6e5f4ed65509e31ef1"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Tue Jul 06 15:08:48 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:16:35 2010 -0700"
      },
      "message": "RDS: return to a single-threaded krdsd\n\nWe were seeing very nasty bugs due to fundamental assumption the current code\nmakes about concurrent work struct processing.  The code simpy isn\u0027t able to\nhandle concurrent connection shutdown work function execution today, for\nexample, which is very much possible once a multi-threaded krdsd was\nintroduced.  The problem compounds as additional work structs are added to the\nmix.\n\nkrdsd is no longer perforance critical now that send and receive posting and\nFMR flushing are done elsewhere, so the safest fix is to move back to the\nsingle threaded krdsd that the current code was built around.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "0f4b1c7e89e699f588807a914ec6e6396c851a72",
      "tree": "8b882f85f03089283f6d222bf8c7d5616a102ecd",
      "parents": [
        "501dcccdb7a2335cde07d4acb56e636182d62944"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Fri Jun 04 14:41:41 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:15:27 2010 -0700"
      },
      "message": "rds: fix rds_send_xmit() serialization\n\nrds_send_xmit() was changed to hold an interrupt masking spinlock instead of a\nmutex so that it could be called from the IB receive tasklet path.  This broke\nthe TCP transport because its xmit method can block and masks and unmasks\ninterrupts.\n\nThis patch serializes callers to rds_send_xmit() with a simple bit instead of\nthe current spinlock or previous mutex.  This enables rds_send_xmit() to be\ncalled from any context and to call functions which block.  Getting rid of the\nc_send_lock exposes the bare c_lock acquisitions which are changed to block\ninterrupts.\n\nA waitqueue is added so that rds_conn_shutdown() can wait for callers to leave\nrds_send_xmit() before tearing down partial send state.  This lets us get rid\nof c_senders.\n\nrds_send_xmit() is changed to check the conn state after acquiring the\nRDS_IN_XMIT bit to resolve races with the shutdown path.  Previously both\nworked with the conn state and then the lock in the same order, allowing them\nto race and execute the paths concurrently.\n\nrds_send_reset() isn\u0027t racing with rds_send_xmit() now that rds_conn_shutdown()\nproperly ensures that rds_send_xmit() can\u0027t start once the conn state has been\nchanged.  We can remove its previous use of the spinlock.\n\nFinally, c_send_generation is redundant.  Callers can race to test the c_flags\nbit by simply retrying instead of racing to test the c_send_generation atomic.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\n"
    },
    {
      "commit": "8690bfa17aea4c42da1bcf90a7af93d161eca624",
      "tree": "88c4c5fa63aab0c18cf13228c4b3a6f980aa74be",
      "parents": [
        "2dc393573430f853e56e25bf4b41c34ba2aa8fd6"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Tue Jan 12 11:56:44 2010 -0800"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:11:32 2010 -0700"
      },
      "message": "RDS: cleanup: remove \"\u003d\u003d NULL\"s and \"!\u003d NULL\"s in ptr comparisons\n\nFavor \"if (foo)\" style over \"if (foo !\u003d NULL)\".\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\n"
    },
    {
      "commit": "2dc393573430f853e56e25bf4b41c34ba2aa8fd6",
      "tree": "f7a3ddb99aab472aa5054a10043419d4b22bb312",
      "parents": [
        "9de0864cf55927a7383b5ba6e48834ff3ef053de"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Fri Jun 11 13:49:13 2010 -0700"
      },
      "committer": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Wed Sep 08 18:10:13 2010 -0700"
      },
      "message": "RDS: move rds_shutdown_worker impl. to rds_conn_shutdown\n\nThis fits better in connection.c, rather than threads.c.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\n"
    },
    {
      "commit": "768bbedf9ca4cc4784eae2003f37abe0818fe0b0",
      "tree": "8dbf42a46924c7403f29a530a09b371e5b9dd183",
      "parents": [
        "561c7df63e259203515509a7ad075382a42bff0c"
      ],
      "author": {
        "name": "Tina Yang",
        "email": "tina.yang@oracle.com",
        "time": "Thu Mar 11 13:50:07 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 16 21:17:02 2010 -0700"
      },
      "message": "RDS: Enable per-cpu workqueue threads\n\nCreate per-cpu workqueue threads instead of a single\nkrdsd thread. This is a step towards better scalability.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f64f9e719261a87818dd192a3a2352e5b20fbd0f",
      "tree": "b2d5cbaef3df615295f6061d8c4d6a912690556c",
      "parents": [
        "152b6a62aea2d43359dd37004e9c218bf7bdeb3b"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Sun Nov 29 16:55:45 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Nov 29 16:55:45 2009 -0800"
      },
      "message": "net: Move \u0026\u0026 and || to end of previous line\n\nNot including net/atm/\n\nCompiled tested x86 allyesconfig only\nAdded a \u003e 80 column line or two, which I ignored.\nExisting checkpatch plaints willfully, cheerfully ignored.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "616b757ae18fb8ec2dfe7ff9d3f589f82cb0eb9d",
      "tree": "40841513a49c35061c1c131ebfed28ce9a69bb3b",
      "parents": [
        "70041088e3b976627ba9a183b812f39ef8a9ba0e"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Fri Aug 21 12:28:32 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Aug 23 19:13:07 2009 -0700"
      },
      "message": "RDS: Export symbols from core RDS\n\nNow that rdma and tcp transports will be modularized,\nwe need to export a number of functions so they can call them.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "00e0f34c616603ba6500f41943cbf89eb4a8a5be",
      "tree": "19e0570b4df977b1e83f687b35cd311322176f92",
      "parents": [
        "a8c879a7ee988eb67a5e85e87fa2cc953e0ca749"
      ],
      "author": {
        "name": "Andy Grover",
        "email": "andy.grover@oracle.com",
        "time": "Tue Feb 24 15:30:23 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 26 23:39:25 2009 -0800"
      },
      "message": "RDS: Connection handling\n\nWhile arguably the fact that the underlying transport needs a\nconnection to convey RDS\u0027s datagrame reliably is not important\nto rds proper, the transports implemented so far (IB and TCP)\nhave both been connection-oriented, and so the connection\nstate machine-related code is in the common rds code.\n\nThis patch also includes several work items, to handle connecting,\nsending, receiving, and shutdown.\n\nSigned-off-by: Andy Grover \u003candy.grover@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
