)]}'
{
  "commit": "080d676de095a14ecba14c0b9a91acb5bbb634df",
  "tree": "4a4c56bc86a8edf4a42f8ec7c65ba795997e50ab",
  "parents": [
    "2ca02df6b098be2d33a99a65531dcd84a10b6e21"
  ],
  "author": {
    "name": "Jeff Moyer",
    "email": "jmoyer@redhat.com",
    "time": "Wed Nov 02 13:40:10 2011 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Wed Nov 02 16:07:03 2011 -0700"
  },
  "message": "aio: allocate kiocbs in batches\n\nIn testing aio on a fast storage device, I found that the context lock\ntakes up a fair amount of cpu time in the I/O submission path.  The reason\nis that we take it for every I/O submitted (see __aio_get_req).  Since we\nknow how many I/Os are passed to io_submit, we can preallocate the kiocbs\nin batches, reducing the number of times we take and release the lock.\n\nIn my testing, I was able to reduce the amount of time spent in\n_raw_spin_lock_irq by .56% (average of 3 runs).  The command I used to\ntest this was:\n\n   aio-stress -O -o 2 -o 3 -r 8 -d 128 -b 32 -i 32 -s 16384 \u003cdev\u003e\n\nI also tested the patch with various numbers of events passed to\nio_submit, and I ran the xfstests aio group of tests to ensure I didn\u0027t\nbreak anything.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Daniel Ehrenberg \u003cdehrenberg@google.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": "632b235f4fbe02c237de17fbde271c8bfe6f1240",
      "old_mode": 33188,
      "old_path": "fs/aio.c",
      "new_id": "78c514cfd212d66b8e6311d4a25435be6493c26d",
      "new_mode": 33188,
      "new_path": "fs/aio.c"
    },
    {
      "type": "modify",
      "old_id": "2dcb72bff4b614c44999d4c9d3bf607b3f1b19d0",
      "old_mode": 33188,
      "old_path": "include/linux/aio.h",
      "new_id": "2314ad8b3c9cced6a4679441d7c6b25afe500348",
      "new_mode": 33188,
      "new_path": "include/linux/aio.h"
    }
  ]
}
