)]}'
{
  "commit": "a0044bdf60c212366a314da09ca624cb315906e2",
  "tree": "c72990bc90506b8bc64f2e7c445fe7762450d5b2",
  "parents": [
    "a61f334fd2864b9b040f7e882726426ed7e8a317"
  ],
  "author": {
    "name": "Jeff Dike",
    "email": "jdike@addtoit.com",
    "time": "Sun May 06 14:51:36 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Mon May 07 12:13:03 2007 -0700"
  },
  "message": "uml: batch I/O requests\n\nSend as many I/O requests to the I/O thread as possible, even though it will\nstill only handle one at a time.  This provides an opportunity to reduce\nlatency by starting one request before the previous one has been finished in\nthe driver.\n\nRequest handling is somewhat modernized by requesting sg pieces of a request\nand handling them separately, finishing off the entire request after all the\npieces are done.\n\nWhen a request queue stalls, normally because its pipe to the I/O thread is\nfull, it is put on the restart list.  This list is processed by starting up\nthe queues on it whenever there is some indication that progress might be\npossible again.  Currently, this happens in the driver interrupt routine.\nSome requests have been finished, so there is likely to be room in the pipe\nagain.\n\nThis almost doubles throughput when copying data between devices, but made no\nnoticable difference on anything else I tried.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6d163c9e28857773bc0c0fc05c36e262a04fbb36",
      "old_mode": 33188,
      "old_path": "arch/um/drivers/ubd_kern.c",
      "new_id": "5ef47b73ce99d3f0f1b4bfba6b088128a0e10746",
      "new_mode": 33188,
      "new_path": "arch/um/drivers/ubd_kern.c"
    }
  ]
}
