)]}'
{
  "log": [
    {
      "commit": "878eaddd05d251cefa9632c2b8046833c5eead66",
      "tree": "a5bf9b6c1856969ff7a7cd0d676ea2b419072103",
      "parents": [
        "accee7854b378a8ab5995d8f5dc5d8abc3b3d23a"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Mon Dec 07 19:37:15 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.(none)",
        "time": "Mon Dec 07 19:37:15 2009 +0100"
      },
      "message": "cfq-iosched: Do not access cfqq after freeing it\n\nFix a crash during boot reported by Jeff Moyer. Fix the issue of accessing\ncfqq after freeing it.\n\nReported-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@carl.(none)\u003e\n"
    },
    {
      "commit": "accee7854b378a8ab5995d8f5dc5d8abc3b3d23a",
      "tree": "431c8bc6fbe4afca06eb1ac16c06f1ce388d7a5c",
      "parents": [
        "bb729bc98c0f3e6a898d8730df3e2830bf68751a"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Mon Dec 07 19:29:39 2009 +1100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Dec 07 09:47:07 2009 +0100"
      },
      "message": "block: include linux/err.h to use ERR_PTR\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "bb729bc98c0f3e6a898d8730df3e2830bf68751a",
      "tree": "f2170f8f688a7c7f813168a6c8c757087934c094",
      "parents": [
        "846954b0a32f4ae953e082eabd178e7a98dd2efd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Dec 06 09:54:19 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Dec 06 09:54:19 2009 +0100"
      },
      "message": "cfq-iosched: use call_rcu() instead of doing grace period stall on queue exit\n\nAfter the merge of the IO controller patches, booting on my megaraid\nbox ran much slower. Vivek Goyal traced it down to megaraid discovery\ncreating tons of devices, each suffering a grace period when they later\nkill that queue (if no device is found).\n\nSo lets use call_rcu() to batch these deferred frees, instead of taking\nthe grace period hit for each one.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "846954b0a32f4ae953e082eabd178e7a98dd2efd",
      "tree": "a1a82fab930341d275a469d4368cf89e596aa112",
      "parents": [
        "3e2520668970aab5a764044a298e987aafc1f63d"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Fri Dec 04 10:36:43 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 04 16:38:14 2009 +0100"
      },
      "message": "blkio: Allow CFQ group IO scheduling even when CFQ is a module\n\no Now issues of blkio controller and CFQ in module mode should be fixed.\n  Enable the cfq group scheduling support in module mode.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3e2520668970aab5a764044a298e987aafc1f63d",
      "tree": "088ebf7c4576d597774c8c332bab590dc3a472d6",
      "parents": [
        "9d6a986c0b276085f7944cd8ad65f4f82aff7536"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Fri Dec 04 10:36:42 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 04 16:38:14 2009 +0100"
      },
      "message": "blkio: Implement dynamic io controlling policy registration\n\no One of the goals of block IO controller is that it should be able to\n  support mulitple io control policies, some of which be operational at\n  higher level in storage hierarchy.\n\no To begin with, we had one io controlling policy implemented by CFQ, and\n  I hard coded the CFQ functions called by blkio. This created issues when\n  CFQ is compiled as module.\n\no This patch implements a basic dynamic io controlling policy registration\n  functionality in blkio. This is similar to elevator functionality where\n  ioschedulers register the functions dynamically.\n\no Now in future, when more IO controlling policies are implemented, these\n  can dynakically register with block IO controller.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9d6a986c0b276085f7944cd8ad65f4f82aff7536",
      "tree": "1e72c813f4346ee329d5d427e214d183af78934f",
      "parents": [
        "b69f2292063d2caf37ca9aec7d63ded203701bf3"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Fri Dec 04 10:36:41 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 04 16:38:14 2009 +0100"
      },
      "message": "blkio: Export some symbols from blkio as its user CFQ can be a module\n\no blkio controller is inside the kernel and cfq makes use of interfaces\n  exported by blkio. CFQ can be a module too, hence export symbols used\n  by CFQ.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b69f2292063d2caf37ca9aec7d63ded203701bf3",
      "tree": "be4acb81ea4ab7014047808ec2b2c908e8334f55",
      "parents": [
        "61cc74fbb87af6aa551a06a370590c9bc07e29d9"
      ],
      "author": {
        "name": "Louis Rilling",
        "email": "louis.rilling@kerlabs.com",
        "time": "Fri Dec 04 14:52:42 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 04 16:36:18 2009 +0100"
      },
      "message": "block: Fix io_context leak after failure of clone with CLONE_IO\n\nWith CLONE_IO, parent\u0027s io_context-\u003enr_tasks is incremented, but never\ndecremented whenever copy_process() fails afterwards, which prevents\nexit_io_context() from calling IO schedulers exit functions.\n\nGive a task_struct to exit_io_context(), and call exit_io_context() instead of\nput_io_context() in copy_process() cleanup path.\n\nSigned-off-by: Louis Rilling \u003clouis.rilling@kerlabs.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "61cc74fbb87af6aa551a06a370590c9bc07e29d9",
      "tree": "351116a74bba13b016c730f777eca86b3b197e5e",
      "parents": [
        "3c764b7a654668dd04905841d6024f7b6aa843a5"
      ],
      "author": {
        "name": "Louis Rilling",
        "email": "louis.rilling@kerlabs.com",
        "time": "Fri Dec 04 14:52:41 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 04 16:36:18 2009 +0100"
      },
      "message": "block: Fix io_context leak after clone with CLONE_IO\n\nWith CLONE_IO, copy_io() increments both ioc-\u003erefcount and ioc-\u003enr_tasks.\nHowever exit_io_context() only decrements ioc-\u003erefcount if ioc-\u003enr_tasks\nreaches 0.\n\nAlways call put_io_context() in exit_io_context().\n\nSigned-off-by: Louis Rilling \u003clouis.rilling@kerlabs.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3c764b7a654668dd04905841d6024f7b6aa843a5",
      "tree": "68b7c611f5e98bab3c781ecc775a0ecf46c43b61",
      "parents": [
        "237e5bc4e51813e9d8ba9da0f63e7acc608882d7"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Fri Dec 04 13:12:06 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 04 13:12:06 2009 +0100"
      },
      "message": "cfq-iosched: make nonrot check logic consistent\n\ncfq_arm_slice_timer() has logic to disable idle window for SSD device. The same\nthing should be done at cfq_select_queue() too, otherwise we will still see\nidle window. This makes the nonrot check logic consistent in cfq.\nTests in a intel SSD with low_latency knob close, below patch can triple disk\nthoughput for muti-thread sequential read.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "237e5bc4e51813e9d8ba9da0f63e7acc608882d7",
      "tree": "7528d2c306c9fe4117a7969e801f182f5245a232",
      "parents": [
        "f2eecb91522686edf8199947b77f435a4031d92f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 04 10:07:38 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 04 10:07:38 2009 +0100"
      },
      "message": "io controller: quick fix for blk-cgroup and modular CFQ\n\nIt\u0027s currently not an allowed configuration, so express that in Kconfig.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f2eecb91522686edf8199947b77f435a4031d92f",
      "tree": "e584c9d81971fb741508c176d74ef51ff45a4bcc",
      "parents": [
        "2f5ea47712489a9d2d3cb832eb06062e4e64e0ec"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 04 10:06:35 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Dec 04 10:06:35 2009 +0100"
      },
      "message": "cfq-iosched: move IO controller declerations to a header file\n\nThey should not be declared inside some other file that\u0027s not related\nto CFQ.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2f5ea47712489a9d2d3cb832eb06062e4e64e0ec",
      "tree": "49c943cf46b83b4fc7da1a38d65cc7914e8ddbfb",
      "parents": [
        "72f924f62a6eb375c7c237ecc911f95be0531d1a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 21:06:43 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 21:07:17 2009 +0100"
      },
      "message": "cfq-iosched: fix compile problem with !CONFIG_CGROUP\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c04645e592d4dd60c58def40c913699d4c806727",
      "tree": "61e2b6fac3c9dd0f211c07f024fe5cb17ff5d3cf",
      "parents": [
        "ae30c286553c91c49af5cbc0265a05a6543d0c52"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:56 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:53 2009 +0100"
      },
      "message": "blkio: Wait on sync-noidle queue even if rq_noidle \u003d 1\n\no rq_noidle() is supposed to tell cfq that do not expect a request after this\n  one, hence don\u0027t idle. But this does not seem to work very well. For example\n  for direct random readers, rq_noidle \u003d 1 but there is next request coming\n  after this. Not idling, leads to a group not getting its share even if\n  group_isolation\u003d1.\n\no The right solution for this issue is to scan the higher layers and set\n  right flag (WRITE_SYNC or WRITE_ODIRECT). For the time being, this single\n  line fix helps. This should not have any significant impact when we are\n  not using cgroups. I will later figure out IO paths in higher layer and\n  fix it.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ae30c286553c91c49af5cbc0265a05a6543d0c52",
      "tree": "1dcb055e156ca9190d0da5bccf32a3a166e12d52",
      "parents": [
        "f26bd1f0a3a31bc5e16d285f5e1b00a56abf6238"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:55 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:53 2009 +0100"
      },
      "message": "blkio: Implement group_isolation tunable\n\no If a group is running only a random reader, then it will not have enough\n  traffic to keep disk busy and we will reduce overall throughput. This\n  should result in better latencies for random reader though. If we don\u0027t\n  idle on random reader service tree, then this random reader will experience\n  large latencies if there are other groups present in system with sequential\n  readers running in these.\n\no One solution suggested by corrado is that by default keep the random readers\n  or sync-noidle workload in root group so that during one dispatch round\n  we idle only once on sync-noidle tree. This means that all the sync-idle\n  workload queues will be in their respective group and we will see service\n  differentiation in those but not on sync-noidle workload.\n\no Provide a tunable group_isolation. If set, this will make sure that even\n  sync-noidle queues go in their respective group and we wait on these. This\n  provides stronger isolation between groups but at the expense of throughput\n  if group does not have enough traffic to keep the disk busy.\n\no By default group_isolation \u003d 0\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f26bd1f0a3a31bc5e16d285f5e1b00a56abf6238",
      "tree": "8e49302c146eacdd1cfbe78a6bd3aad2b81c3050",
      "parents": [
        "f75edf2dc828802d358393be80a6c89e919f8273"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:54 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:53 2009 +0100"
      },
      "message": "blkio: Determine async workload length based on total number of queues\n\no Async queues are not per group. Instead these are system wide and maintained\n  in root group. Hence their workload slice length should be calculated\n  based on total number of queues in the system and not just queues in the\n  root group.\n\no As root group\u0027s default weight is 1000, make sure to charge async queue\n  more in terms of vtime so that it does not get more time on disk because\n  root group has higher weight.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f75edf2dc828802d358393be80a6c89e919f8273",
      "tree": "a3b2fb05298ea41ecc0fd7ad56e1218369f7f9fd",
      "parents": [
        "f8d461d692c341add957fb973fb5ee1f62039dc7"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:53 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:53 2009 +0100"
      },
      "message": "blkio: Wait for cfq queue to get backlogged if group is empty\n\no If a queue consumes its slice and then gets deleted from service tree, its\n  associated group will also get deleted from service tree if this was the\n  only queue in the group. That will make group loose its share.\n\no For the queues on which we have idling on and if these have used their\n  slice, wait a bit for these queues to get backlogged again and then\n  expire these queues so that group does not loose its share.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f8d461d692c341add957fb973fb5ee1f62039dc7",
      "tree": "42c6cf987aa4d38b271a60d2b62e92c6c748cd69",
      "parents": [
        "24610333d578478d354144ab4709a203684afc5f"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:52 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:53 2009 +0100"
      },
      "message": "blkio: Propagate cgroup weight updation to cfq groups\n\no Propagate blkio cgroup weight updation to associated cfq groups.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "24610333d578478d354144ab4709a203684afc5f",
      "tree": "d258c695cfa320845212f71e8900af4d90538d6b",
      "parents": [
        "8682e1f15f26dae9a9e8af794d179055fbd81166"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:51 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:52 2009 +0100"
      },
      "message": "blkio: Drop the reference to queue once the task changes cgroup\n\no If a task changes cgroup, drop reference to the cfqq associated with io\n  context and set cfqq pointer stored in ioc to NULL so that upon next request\n  arrival we will allocate a  new queue in new group.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8682e1f15f26dae9a9e8af794d179055fbd81166",
      "tree": "d6e87631f91527656490df9b28be107fb5e974b0",
      "parents": [
        "220841906fccafaf4094e87bdb6d252e20cf8c7c"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:50 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:52 2009 +0100"
      },
      "message": "blkio: Provide some isolation between groups\n\no Do not allow following three operations across groups for isolation.\n\t- selection of co-operating queues\n\t- preemtpions across groups\n\t- request merging across groups.\n\no Async queues are currently global and not per group. Allow preemption of\n  an async queue if a sync queue in other group gets backlogged.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "220841906fccafaf4094e87bdb6d252e20cf8c7c",
      "tree": "f25b1f057887cf2a05bb8309e0b757149e052797",
      "parents": [
        "2868ef7b39490e6b41c2c61cd9a5cd891e778b54"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:49 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:52 2009 +0100"
      },
      "message": "blkio: Export disk time and sectors used by a group to user space\n\no Export disk time and sector used by a group to user space through cgroup\n  interface.\n\no Also export a \"dequeue\" interface to cgroup which keeps track of how many\n  a times a group was deleted from service tree. Helps in debugging.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2868ef7b39490e6b41c2c61cd9a5cd891e778b54",
      "tree": "e50e169e984d8bd201de2f73f98e31a65c028feb",
      "parents": [
        "b1c3576961847da26c91b1e97f226bb66be5fa3f"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:48 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:52 2009 +0100"
      },
      "message": "blkio: Some debugging aids for CFQ\n\no Some debugging aids for CFQ.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b1c3576961847da26c91b1e97f226bb66be5fa3f",
      "tree": "e228525220031232463f9cbbe017bad67807e6d4",
      "parents": [
        "25fb5169d4c9d4255107abbb7c08ab712434efc8"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:47 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:52 2009 +0100"
      },
      "message": "blkio: Take care of cgroup deletion and cfq group reference counting\n\no One can choose to change elevator or delete a cgroup. Implement group\n  reference counting so that both elevator exit and cgroup deletion can\n  take place gracefully.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Nauman Rafique \u003cnauman@google.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "25fb5169d4c9d4255107abbb7c08ab712434efc8",
      "tree": "8939bd6f73f9888d954672dfaac1cc25e313cb2f",
      "parents": [
        "dae739ebc4c590630039533a5bbd05865966094f"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:46 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:52 2009 +0100"
      },
      "message": "blkio: Dynamic cfq group creation based on cgroup tasks belongs to\n\no Determine the cgroup IO submitting task belongs to and create the cfq\n  group if it does not exist already.\n\no Also link cfqq and associated cfq group.\n\no Currently all async IO is mapped to root group.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "dae739ebc4c590630039533a5bbd05865966094f",
      "tree": "005f98ed4c4302ea71b48ad6a074fa6ff714df4a",
      "parents": [
        "58ff82f34cded3812af5b6c69b6aa626b6be2490"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:45 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:52 2009 +0100"
      },
      "message": "blkio: Group time used accounting and workload context save restore\n\no This patch introduces the functionality to do the accounting of group time\n  when a queue expires. This time used decides which is the group to go\n  next.\n\no Also introduce the functionlity to save and restore the workload type\n  context with-in group. It might happen that once we expire the cfq queue\n  and group, a different group will schedule in and we will lose the context\n  of the workload type. Hence save and restore it upon queue expiry.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "58ff82f34cded3812af5b6c69b6aa626b6be2490",
      "tree": "06098474c5763f20d1c9715faf67c83c56b9a787",
      "parents": [
        "25bc6b07767fe77422312eda2af99c9477f76191"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:44 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:52 2009 +0100"
      },
      "message": "blkio: Implement per cfq group latency target and busy queue avg\n\no So far we had 300ms soft target latency system wide. Now with the\n  introduction of cfq groups, divide that latency by number of groups so\n  that one can come up with group target latency which will be helpful\n  in determining the workload slice with-in group and also the dynamic\n  slice length of the cfq queue.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "25bc6b07767fe77422312eda2af99c9477f76191",
      "tree": "1e0f2d5a18efb63c651df8773a6d5ad2b87d7687",
      "parents": [
        "31e4c28d95e64f2d5d3c497a3ecf37c62de635b4"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:43 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:52 2009 +0100"
      },
      "message": "blkio: Introduce per cfq group weights and vdisktime calculations\n\no Bring in the per cfq group weight and how vdisktime is calculated for the\n  group. Also bring in the functionality of updating the min_vdisktime of\n  the group service tree.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "31e4c28d95e64f2d5d3c497a3ecf37c62de635b4",
      "tree": "ffbb99b2565c4bdd4921fd7077164e7fc295b2bc",
      "parents": [
        "1fa8f6d68b5c8ca0a608fd8d296c5f07ac788cd6"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:42 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:51 2009 +0100"
      },
      "message": "blkio: Introduce blkio controller cgroup interface\n\no This is basic implementation of blkio controller cgroup interface. This is\n  the common interface visible to user space and should be used by different\n  IO control policies as we implement those.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1fa8f6d68b5c8ca0a608fd8d296c5f07ac788cd6",
      "tree": "1e6d9e0ed1bd61f7f8f71a7191815be2ab65aac3",
      "parents": [
        "f04a64246344ad50e4b4b4186174a0912d07f30b"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:41 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:51 2009 +0100"
      },
      "message": "blkio: Introduce the root service tree for cfq groups\n\no So far we just had one cfq_group in cfq_data. To create space for more than\n  one cfq_group, we need to have a service tree of groups where all the groups\n  can be queued if they have active cfq queues backlogged in these.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f04a64246344ad50e4b4b4186174a0912d07f30b",
      "tree": "03d2d39d2811350af39dd635297b90ca52b9b6fe",
      "parents": [
        "615f0259e6940293359a189f4881bb28c2fea40b"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:40 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:51 2009 +0100"
      },
      "message": "blkio: Keep queue on service tree until we expire it\n\no Currently cfqq deletes a queue from service tree if it is empty (even if\n  we might idle on the queue). This patch keeps the queue on service tree\n  hence associated group remains on the service tree until we decide that\n  we are not going to idle on the queue and expire it.\n\no This just helps in time accounting for queue/group and in implementation\n  of rest of the patches.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "615f0259e6940293359a189f4881bb28c2fea40b",
      "tree": "36ae080bc809a8d998801c0bcfc0d63b7b892745",
      "parents": [
        "cdb16e8f739985b8a5c9f4569b026583bbcd01a5"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:39 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:51 2009 +0100"
      },
      "message": "blkio: Implement macro to traverse each service tree in group\n\no Implement a macro to traverse each service tree in the group. This avoids\n  usage of double for loop and special condition for idle tree 4 times.\n\no Macro is little twisted because of special handling of idle class service\n  tree.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "cdb16e8f739985b8a5c9f4569b026583bbcd01a5",
      "tree": "860b74f8134cfbd516cc73b8b9a9edfe4e3d2db6",
      "parents": [
        "bf7919371025412978268efca4b09dd847acb395"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:38 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:51 2009 +0100"
      },
      "message": "blkio: Introduce the notion of cfq groups\n\no This patch introduce the notion of cfq groups. Soon we will can have multiple\n  groups of different weights in the system.\n\no Various service trees (prioclass and workload type trees), will become per\n  cfq group. So hierarchy looks as follows.\n\n\t\t\tcfq_groups\n\t\t\t   |\n\t\t\tworkload type\n\t\t\t   |\n\t\t        cfq queue\n\no When an scheduling decision has to be taken, first we select the cfq group\n  then workload with-in the group and then cfq queue with-in the workload\n  type.\n\no This patch just makes various workload service tree per cfq group and\n  introduce the function to be able to choose a group for scheduling.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "bf7919371025412978268efca4b09dd847acb395",
      "tree": "f6144bf301f00f53f150f4213928f063232faaa1",
      "parents": [
        "753c89130c52b96e66e5ceff19bd1336de9a5ce8"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Thu Dec 03 12:59:37 2009 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 19:28:51 2009 +0100"
      },
      "message": "blkio: Set must_dispatch only if we decided to not dispatch the request\n\no must_dispatch flag should be set only if we decided not to run the queue\n  and dispatch the request.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "474b18ccc264c472abeec50f48469b6477202699",
      "tree": "77c9f33d65b78266560b3aa0bea1c7d16fb45b2e",
      "parents": [
        "98262f2762f0067375f83824d81ea929e37e6bfe"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Thu Dec 03 12:58:05 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 12:58:05 2009 +0100"
      },
      "message": "cfq-iosched: no dispatch limit for single queue\n\nSince commit 2f5cb7381b737e24c8046fd4aeab571fb71315f5, each queue can send\nup to 4 * 4 requests if only one queue exists. I wonder why we have such limit.\nDevice supports tag can send more requests. For example, AHCI can send 31\nrequests. Test (direct aio randread) shows the limits reduce about 4% disk\nthoughput.\nOn the other hand, since we send one request one time, if other queue\npop when current is sending more than cfq_quantum requests, current queue will\nstop send requests soon after one request, so sounds there is no big latency.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "98262f2762f0067375f83824d81ea929e37e6bfe",
      "tree": "a26618d5c305eed975501c80cb02bc0f1b6e4524",
      "parents": [
        "464191c65b85a8ec68a6e1a6293af625287c807e"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Thu Dec 03 09:24:48 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Dec 03 09:24:48 2009 +0100"
      },
      "message": "block: Allow devices to indicate whether discarded blocks are zeroed\n\nThe discard ioctl is used by mkfs utilities to clear a block device\nprior to putting metadata down.  However, not all devices return zeroed\nblocks after a discard.  Some drives return stale data, potentially\ncontaining old superblocks.  It is therefore important to know whether\ndiscarded blocks are properly zeroed.\n\nBoth ATA and SCSI drives have configuration bits that indicate whether\nzeroes are returned after a discard operation.  Implement a block level\ninterface that allows this information to be bubbled up the stack and\nqueried via a new block device ioctl.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "464191c65b85a8ec68a6e1a6293af625287c807e",
      "tree": "4d4b91a3a4ce2faeb63758b119f0fb229fcc57ea",
      "parents": [
        "8e550632cccae34e265cb066691945515eaa7fb5"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Nov 30 09:38:13 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Nov 30 09:38:13 2009 +0100"
      },
      "message": "Revert \"cfq: Make use of service count to estimate the rb_key offset\"\n\nThis reverts commit 3586e917f2c7df769d173c4ec99554cb40a911e5.\n\nCorrado Zoccolo \u003cczoccolo@gmail.com\u003e correctly points out, that we need\nconsistency of rb_key offset across groups. This means we cannot properly\nuse the per-service_tree service count. Revert this change.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8e550632cccae34e265cb066691945515eaa7fb5",
      "tree": "5aa4f97734b85076c1e743df143e63a9c12c294f",
      "parents": [
        "76280aff1c7e9ae761cac4b48591c43cd7d69159"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Thu Nov 26 10:02:58 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 26 10:39:31 2009 +0100"
      },
      "message": "cfq-iosched: fix corner cases in idling logic\n\nIdling logic was disabled in some corner cases, leading to unfair share\n for noidle queues.\n * the idle timer was not armed if there were other requests in the\n   driver. unfortunately, those requests could come from other workloads,\n   or queues for which we don\u0027t enable idling. So we will check only\n   pending requests from the active queue\n * rq_noidle check on no-idle queue could disable the end of tree idle if\n   the last completed request was rq_noidle. Now, we will disable that\n   idle only if all the queues served in the no-idle tree had rq_noidle\n   requests.\n\nReported-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "76280aff1c7e9ae761cac4b48591c43cd7d69159",
      "tree": "f8b354746a96cf45a4d0fc980df4e37e3c37b173",
      "parents": [
        "e4a229196a7c676514c78f6783f8994f64bf681c"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Thu Nov 26 10:02:58 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 26 10:39:31 2009 +0100"
      },
      "message": "cfq-iosched: idling on deep seeky sync queues\n\nSeeky sync queues with large depth can gain unfairly big share of disk\n time, at the expense of other seeky queues. This patch ensures that\n idling will be enabled for queues with I/O depth at least 4, and small\n think time. The decision to enable idling is sticky, until an idle\n window times out without seeing a new request.\n\nThe reasoning behind the decision is that, if an application is using\nlarge I/O depth, it is already optimized to make full utilization of\nthe hardware, and therefore we reserve a slice of exclusive use for it.\n\nReported-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e4a229196a7c676514c78f6783f8994f64bf681c",
      "tree": "b2a9e72f863cfaadaad697158969214cd8bb5681",
      "parents": [
        "e459dd08f45d2aa68abb0c02f8ab045cf8a598b8"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Thu Nov 26 10:02:58 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 26 10:39:31 2009 +0100"
      },
      "message": "cfq-iosched: fix no-idle preemption logic\n\nAn incoming no-idle queue should preempt the active no-idle queue\n only if the active queue is idling due to service tree empty.\n Previous code was buggy in two ways:\n * it relied on service_tree field to be set on the active queue, while\n   it is not set when the code is idling for a new request\n * it didn\u0027t check for the service tree empty condition, so could lead to\n   LIFO behaviour if multiple queues with depth \u003e 1 were preempting each\n   other on an non-NCQ device.\n\nReported-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e459dd08f45d2aa68abb0c02f8ab045cf8a598b8",
      "tree": "e5bba2c95dbbd93d2880fdc81e1ea7589625a6ed",
      "parents": [
        "75e7b634309ef4eabf8a93d36e58863f727fa209"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Thu Nov 26 10:02:57 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 26 10:02:57 2009 +0100"
      },
      "message": "cfq-iosched: fix ncq detection code\n\nCFQ\u0027s detection of queueing devices initially assumes a queuing device\nand detects if the queue depth reaches a certain threshold.\nHowever, it will reconsider this choice periodically.\n\nUnfortunately, if device is considered not queuing, CFQ will force a\nunit queue depth for some workloads, thus defeating the detection logic.\nThis leads to poor performance on queuing hardware,\nsince the idle window remains enabled.\n\nGiven this premise, switching to hw_tag \u003d 0 after we have proved at\nleast once that the device is NCQ capable is not a good choice.\n\nThe new detection code starts in an indeterminate state, in which CFQ behaves\nas if hw_tag \u003d 1, and then, if for a long observation period we never saw\nlarge depth, we switch to hw_tag \u003d 0, otherwise we stick to hw_tag \u003d 1,\nwithout reconsidering it again.\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c16632bab1a17e357cec66920ceb3f0630009360",
      "tree": "6937755404314252f0bf2c46eec374c32c12f8b1",
      "parents": [
        "2d4dc890b5c8fabd818a8586607e6843c4375e62"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Thu Nov 26 09:41:21 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 26 09:46:46 2009 +0100"
      },
      "message": "cfq-iosched: cleanup unreachable code\n\ncfq_should_idle returns false for no-idle queues that are not the last,\nso the control flow will never reach the removed code in a state that\nsatisfies the if condition.\nThe unreachable code was added to emulate previous cfq behaviour for\nnon-NCQ rotational devices. My tests show that even without it, the\nperformances and fairness are comparable with previous cfq, thanks to\nthe fact that all seeky queues are grouped together, and that we idle at\nthe end of the tree.\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2d4dc890b5c8fabd818a8586607e6843c4375e62",
      "tree": "9976ed7b0eed0056f8289aeb6a2b0abf8c940454",
      "parents": [
        "3586e917f2c7df769d173c4ec99554cb40a911e5"
      ],
      "author": {
        "name": "Ilya Loginov",
        "email": "isloginov@gmail.com",
        "time": "Thu Nov 26 09:16:19 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 26 09:16:19 2009 +0100"
      },
      "message": "block: add helpers to run flush_dcache_page() against a bio and a request\u0027s pages\n\nMtdblock driver doesn\u0027t call flush_dcache_page for pages in request.  So,\nthis causes problems on architectures where the icache doesn\u0027t fill from\nthe dcache or with dcache aliases.  The patch fixes this.\n\nThe ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE symbol was introduced to avoid\npointless empty cache-thrashing loops on architectures for which\nflush_dcache_page() is a no-op.  Every architecture was provided with this\nflush pages on architectires where ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE is\nequal 1 or do nothing otherwise.\n\nSee \"fix mtd_blkdevs problem with caches on some architectures\" discussion\non LKML for more information.\n\nSigned-off-by: Ilya Loginov \u003cisloginov@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Peter Horton \u003cphorton@bitbox.co.uk\u003e\nCc: \"Ed L. Cashin\" \u003cecashin@coraid.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3586e917f2c7df769d173c4ec99554cb40a911e5",
      "tree": "d72ad5ca6c17a3db628734e36b22d79065e0eb49",
      "parents": [
        "32a87c0114f37871aefb12a30de3e0c3300e3646"
      ],
      "author": {
        "name": "Gui Jianfeng",
        "email": "guijianfeng@cn.fujitsu.com",
        "time": "Thu Nov 26 09:14:11 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Nov 26 09:14:11 2009 +0100"
      },
      "message": "cfq: Make use of service count to estimate the rb_key offset\n\nFor the moment, different workload cfq queues are put into different\nservice trees. But CFQ still uses \"busy_queues\" to estimate rb_key\noffset when inserting a cfq queue into a service tree. I think this\nisn\u0027t appropriate, and it should make use of service tree count to do\nthis estimation. This patch is for for-2.6.33 branch.\n\nSigned-off-by: Gui Jianfeng \u003cguijianfeng@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ad5ebd2fa2557b04a653bb3c3377a47da8f9b8e9",
      "tree": "f70ba006e73db3450b468c3098d43fc2a392b1da",
      "parents": [
        "86b37281411cf1e9bc0a6b5406c45edb7bd9ea5d"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Nov 11 13:47:45 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Nov 11 13:47:45 2009 +0100"
      },
      "message": "block: jiffies fixes\n\nUse HZ-independent calculation of milliseconds.\nAdd jiffies.h where it was missing since functions or macros\nfrom it are used.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "86b37281411cf1e9bc0a6b5406c45edb7bd9ea5d",
      "tree": "729db57dd52054af1bc16b4afb131093dfc9d255",
      "parents": [
        "cf7c25cf91f632a3528669fc0876e1fc8355ff9b"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Tue Nov 10 11:50:21 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 10 11:50:21 2009 +0100"
      },
      "message": "block: Expose discard granularity\n\nWhile SSDs track block usage on a per-sector basis, RAID arrays often\nhave allocation blocks that are bigger.  Allow the discard granularity\nand alignment to be set and teach the topology stacking logic how to\nhandle them.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "cf7c25cf91f632a3528669fc0876e1fc8355ff9b",
      "tree": "7967e65544dd49cb7333363ec928722a9e4a1562",
      "parents": [
        "622d32d3ec40d5075523656ef0ea836f6a595ae3"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Sun Nov 08 17:16:46 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Nov 08 17:16:46 2009 +0100"
      },
      "message": "cfq-iosched: fix next_rq computation\n\nCfq has a bug in computation of next_rq, that affects transition\nbetween multiple sequential request streams in a single queue\n(e.g.: two sequential buffered writers of the same priority),\ncausing the alternation between the two streams for a transient period.\n\n  8,0    1    18737     0.260400660  5312  D   W 141653311 + 256\n  8,0    1    20839     0.273239461  5400  D   W 141653567 + 256\n  8,0    1    20841     0.276343885  5394  D   W 142803919 + 256\n  8,0    1    20843     0.279490878  5394  D   W 141668927 + 256\n  8,0    1    20845     0.292459993  5400  D   W 142804175 + 256\n  8,0    1    20847     0.295537247  5400  D   W 141668671 + 256\n  8,0    1    20849     0.298656337  5400  D   W 142804431 + 256\n  8,0    1    20851     0.311481148  5394  D   W 141668415 + 256\n  8,0    1    20853     0.314421305  5394  D   W 142804687 + 256\n  8,0    1    20855     0.318960112  5400  D   W 142804943 + 256\n\nThe fix makes sure that the next_rq is computed from the last\ndispatched request, and not affected by merging.\n\n  8,0    1    37776     4.305161306     0  D   W 141738087 + 256\n  8,0    1    37778     4.308298091     0  D   W 141738343 + 256\n  8,0    1    37780     4.312885190     0  D   W 141738599 + 256\n  8,0    1    37782     4.315933291     0  D   W 141738855 + 256\n  8,0    1    37784     4.319064459     0  D   W 141739111 + 256\n  8,0    1    37786     4.331918431  5672  D   W 142803007 + 256\n  8,0    1    37788     4.334930332  5672  D   W 142803263 + 256\n  8,0    1    37790     4.337902723  5672  D   W 142803519 + 256\n  8,0    1    37792     4.342359774  5672  D   W 142803775 + 256\n  8,0    1    37794     4.345318286     0  D   W 142804031 + 256\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "476d42f138ba82389a92a894d8a630a70d36278f",
      "tree": "87ab38bd8c5ccfe5b2aa0de0f434768eb7b59cad",
      "parents": [
        "cc56f7de7f00d188c7c4da1e9861581853b9e92f"
      ],
      "author": {
        "name": "H Hartley Sweeten",
        "email": "hartleys@visionengravers.com",
        "time": "Wed Nov 04 09:10:33 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Nov 04 09:10:33 2009 +0100"
      },
      "message": "block/scsi_ioctl.c: quiet sparse noise\n\nQuiet sparse noise about symbol\u0027s not being declared.\n\nSymbol blk_default_cmd_filter is only used locally and should be static.\n\nThe function blk_scsi_ioctl_init() is a fs_initcall and should also be\nstatic.\n\nSigned-off-by: H Hartley Sweeten \u003chsweeten@visionengravers.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e00ef7997195e4f8e10593727a6286e2e2802159",
      "tree": "51f73547c081f9068296c0c166599e5fbe340c9c",
      "parents": [
        "125c4f221a5352ae08aef2898055b879ad963f01"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Nov 04 08:54:55 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Nov 04 08:54:55 2009 +0100"
      },
      "message": "cfq-iosched: get rid of the coop_preempt flag\n\nWe need to rework this logic post the cooperating cfq_queue merging,\nfor now just get rid of it and Jeff Moyer will fix the fall out.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "125c4f221a5352ae08aef2898055b879ad963f01",
      "tree": "3114b880f0da09535d164923698a7e8d0b700e54",
      "parents": [
        "2058297d2d045cb57138c33b87cfabcc80e65186"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 21:25:45 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 21:25:45 2009 +0100"
      },
      "message": "cfq-iosched: fix merge error\n\nWe ended up with testing the same condition twice, pretty\npointless. Remove that first if.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2058297d2d045cb57138c33b87cfabcc80e65186",
      "tree": "7ccffd0e162cbd7471f643561e79f23abb989a62",
      "parents": [
        "150e6c67f4bf6ab51e62defc41bd19a2eefe5709",
        "4b27e1bb442e964903f8a3fa6bdf33a602dc0941"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 21:14:39 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 21:14:39 2009 +0100"
      },
      "message": "Merge branch \u0027for-linus\u0027 into for-2.6.33\n\nConflicts:\n\tblock/cfq-iosched.c\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "150e6c67f4bf6ab51e62defc41bd19a2eefe5709",
      "tree": "586bd5450afc4f142d78017389af260e76c19f0b",
      "parents": [
        "4f570f995f68ef77aae7e5a441222f59232f2d0e",
        "5869619cb5b26754574375472fe54a390edf34c7"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 21:12:10 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 21:12:10 2009 +0100"
      },
      "message": "Merge branch \u0027cfq-2.6.33\u0027 into for-2.6.33\n"
    },
    {
      "commit": "4b27e1bb442e964903f8a3fa6bdf33a602dc0941",
      "tree": "d7eecb66f6a75dbff292fbd03b643b04ed075289",
      "parents": [
        "e6ec4fe24572ee265723d895ec4159e5559c8266"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Nov 03 20:25:02 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 20:25:02 2009 +0100"
      },
      "message": "cfq-iosched: limit coop preemption\n\nCFQ has an optimization for cooperated applications. if several\nio-context have close requests, they will get boost. But the\noptimization get abused. Considering thread a, b, which work on one\nfile. a reads sectors s, s+2, s+4, ...; b reads sectors s+1, s+3, s\n+5, ... Both a and b are sequential read, so they can open idle window.\na reads a sector s and goes to idle window and wakeup b. b reads sector\ns+1, since in current implementation, cfq_should_preempt() thinks a and\nb are cooperators, b will preempt a. b then reads sector s+1 and goes to\nidle window and wakeup a. for the same reason, a will preempt b and\nreads s+2. a and b will continue the circle. The circle will be very\nlong, and a and b will occupy whole disk queue. Other applications will\nnearly have no chance to run.\n\nFix this limiting coop preempt until a queue is scheduled normally\nagain.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e6ec4fe24572ee265723d895ec4159e5559c8266",
      "tree": "cf61a73b2e50d695579cffe4226d41da5c889f8f",
      "parents": [
        "8c4db3355b0fcc9ad77431f15b955efa0645b5d0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 20:21:35 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 03 20:21:35 2009 +0100"
      },
      "message": "cfq-iosched: fix bad return value cfq_should_preempt()\n\nCommit a6151c3a5c8e1ff5a28450bc8d6a99a2a0add0a7 inadvertently reversed\na preempt condition check, potentially causing a performance regression.\nMake the meta check correct again.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "dddb74519aec2081204d203a97578c9fc4e9fb64",
      "tree": "8737fb08028c1d0bbf01775704a7dc41501bbf71",
      "parents": [
        "ab0a9735e06914ce4d2a94ffa41497dbc142fe7f"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Mon Nov 02 10:40:37 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Nov 02 10:40:37 2009 +0100"
      },
      "message": "cfq-iosched: simplify prio-unboost code\n\nEliminate redundant checks.\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5869619cb5b26754574375472fe54a390edf34c7",
      "tree": "20e0b9852aea2a4ede1b76d0f3672233b31e2399",
      "parents": [
        "718eee0579b802aabe3bafacf09d0a9b0830f1dd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 28 09:27:07 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 28 09:27:07 2009 +0100"
      },
      "message": "cfq-iosched: fix style issue in cfq_get_avg_queues()\n\nLine breaks and bad brace placement.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "718eee0579b802aabe3bafacf09d0a9b0830f1dd",
      "tree": "3a85a6d38ed7b68ed6ca21d04158afee13980e5e",
      "parents": [
        "a6d44e982d3734583b3b4e1d36921af8cfd61fc0"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Mon Oct 26 22:45:29 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 28 09:23:26 2009 +0100"
      },
      "message": "cfq-iosched: fairness for sync no-idle queues\n\nCurrently no-idle queues in cfq are not serviced fairly:\neven if they can only dispatch a small number of requests at a time,\nthey have to compete with idling queues to be serviced, experiencing\nlarge latencies.\n\nWe should notice, instead, that no-idle queues are the ones that would\nbenefit most from having low latency, in fact they are any of:\n* processes with large think times (e.g. interactive ones like file\n  managers)\n* seeky (e.g. programs faulting in their code at startup)\n* or marked as no-idle from upper levels, to improve latencies of those\n  requests.\n\nThis patch improves the fairness and latency for those queues, by:\n* separating sync idle, sync no-idle and async queues in separate\n  service_trees, for each priority\n* service all no-idle queues together\n* and idling when the last no-idle queue has been serviced, to\n  anticipate for more no-idle work\n* the timeslices allotted for idle and no-idle service_trees are\n  computed proportionally to the number of processes in each set.\n\nServicing all no-idle queues together should have a performance boost\nfor NCQ-capable drives, without compromising fairness.\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a6d44e982d3734583b3b4e1d36921af8cfd61fc0",
      "tree": "1d9b409057361524af2e097fe5de1c505533d603",
      "parents": [
        "c0324a020e5b351f100569b128715985f1023af8"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Mon Oct 26 22:45:11 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 28 09:23:26 2009 +0100"
      },
      "message": "cfq-iosched: enable idling for last queue on priority class\n\ncfq can disable idling for queues in various circumstances.\nWhen workloads of different priorities are competing, if the higher\npriority queue has idling disabled, lower priority queues may steal\nits disk share. For example, in a scenario with an RT process\nperforming seeky reads vs a BE process performing sequential reads,\non an NCQ enabled hardware, with low_latency unset,\nthe RT process will dispatch only the few pending requests every full\nslice of service for the BE process.\n\nThe patch solves this issue by always performing idle on the last\nqueue at a given priority class \u003e idle. If the same process, or one\nthat can pre-empt it (so at the same priority or higher), submits a\nnew request within the idle window, the lower priority queue won\u0027t\ndispatch, saving the disk bandwidth for higher priority ones.\n\nNote: this doesn\u0027t touch the non_rotational + NCQ case (no hardware\nto test if this is a benefit in that case).\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c0324a020e5b351f100569b128715985f1023af8",
      "tree": "56d99ec857349fa07dd9ddfdacfa091c7c11af44",
      "parents": [
        "aa6f6a3de18131348f70951efb2c56d806033e09"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Tue Oct 27 19:16:03 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 28 09:23:26 2009 +0100"
      },
      "message": "cfq-iosched: reimplement priorities using different service trees\n\nWe use different service trees for different priority classes.\nThis allows a simplification in the service tree insertion code, that no\nlonger has to consider priority while walking the tree.\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "aa6f6a3de18131348f70951efb2c56d806033e09",
      "tree": "3565b2f9d2390d4ec054f32658461e781f106997",
      "parents": [
        "5db5d64277bf390056b1a87d0bb288c8b8553f96"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Mon Oct 26 22:44:33 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 28 09:23:26 2009 +0100"
      },
      "message": "cfq-iosched: preparation to handle multiple service trees\n\nWe embed a pointer to the service tree in each queue, to handle multiple\nservice trees easily.\nService trees are enriched with a counter.\ncfq_add_rq_rb is invoked after putting the rq in the fifo, to ensure\nthat all fields in rq are properly initialized.\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5db5d64277bf390056b1a87d0bb288c8b8553f96",
      "tree": "eced8cdeae49e6920bbb9ae18b33ed7001332233",
      "parents": [
        "1a1238a7dd48e48b3bba8f426a1d61c22c80d6d1"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Mon Oct 26 22:44:04 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 28 09:23:26 2009 +0100"
      },
      "message": "cfq-iosched: adapt slice to number of processes doing I/O\n\nWhen the number of processes performing I/O concurrently increases,\na fixed time slice per process will cause large latencies.\n\nThis patch, if low_latency mode is enabled,  will scale the time slice\nassigned to each process according to a 300ms target latency.\n\nIn order to keep fairness among processes:\n* The number of active processes is computed using a special form of\nrunning average, that quickly follows sudden increases (to keep latency low),\nand decrease slowly (to have fairness in spite of rapid decreases of this\nvalue).\n\nTo safeguard sequential bandwidth, we impose a minimum time slice\n(computed using 2*cfq_slice_idle as base, adjusted according to priority\nand async-ness).\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1a1238a7dd48e48b3bba8f426a1d61c22c80d6d1",
      "tree": "08a39610689b5da8e8d61701864b8eb257acd6d7",
      "parents": [
        "e6c5bc737ab71e4af6025ef7d150f5a26ae5f146"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Oct 27 08:46:23 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 27 08:46:23 2009 +0100"
      },
      "message": "cfq-iosched: improve hw_tag detection\n\nIf active queue hasn\u0027t enough requests and idle window opens, cfq will not\ndispatch sufficient requests to hardware. In such situation, current code\nwill zero hw_tag. But this is because cfq doesn\u0027t dispatch enough requests\ninstead of hardware queue doesn\u0027t work. Don\u0027t zero hw_tag in such case.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e6c5bc737ab71e4af6025ef7d150f5a26ae5f146",
      "tree": "01127225a83bdcae30b261b9f21bb89faa7db8ce",
      "parents": [
        "b3b6d0408c953524f979468562e7e210d8634150"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Fri Oct 23 17:14:52 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 26 14:34:47 2009 +0100"
      },
      "message": "cfq: break apart merged cfqqs if they stop cooperating\n\ncfq_queues are merged if they are issuing requests within the mean seek\ndistance of one another.  This patch detects when the coopearting stops and\nbreaks the queues back up.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b3b6d0408c953524f979468562e7e210d8634150",
      "tree": "1556cb393f2edc09e64c8961f6792cbb79b4e288",
      "parents": [
        "df5fe3e8e13883f58dc97489076bbcc150789a21"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Fri Oct 23 17:14:51 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 26 14:34:47 2009 +0100"
      },
      "message": "cfq: change the meaning of the cfqq_coop flag\n\nThe flag used to indicate that a cfqq was allowed to jump ahead in the\nscheduling order due to submitting a request close to the queue that\njust executed.  Since closely cooperating queues are now merged, the flag\nholds little meaning.  Change it to indicate that multiple queues were\nmerged.  This will later be used to allow the breaking up of merged queues\nwhen they are no longer cooperating.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "df5fe3e8e13883f58dc97489076bbcc150789a21",
      "tree": "b05ce6760cd2b52e42dca22e3659a0255f4a4e4a",
      "parents": [
        "b2c18e1e08a5a9663094d57bb4be2f02226ee61c"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Fri Oct 23 17:14:50 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 26 14:34:47 2009 +0100"
      },
      "message": "cfq: merge cooperating cfq_queues\n\nWhen cooperating cfq_queues are detected currently, they are allowed to\nskip ahead in the scheduling order.  It is much more efficient to\nautomatically share the cfq_queue data structure between cooperating processes.\nPerformance of the read-test2 benchmark (which is written to emulate the\ndump(8) utility) went from 12MB/s to 90MB/s on my SATA disk.  NFS servers\nwith multiple nfsd threads also saw performance increases.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b2c18e1e08a5a9663094d57bb4be2f02226ee61c",
      "tree": "55c092706a0d8a9e645f245bf2ecc45c29ba5aa7",
      "parents": [
        "c30f33437c3f85ec48353a1ef811e148217a2aaf"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Fri Oct 23 17:14:49 2009 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 26 14:34:46 2009 +0100"
      },
      "message": "cfq: calculate the seek_mean per cfq_queue not per cfq_io_context\n\nasync cfq_queue\u0027s are already shared between processes within the same\npriority, and forthcoming patches will change the mapping of cic to sync\ncfq_queue from 1:1 to 1:N.  So, calculate the seekiness of a process\nbased on the cfq_queue instead of the cfq_io_context.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6cafb12dc85a5bdc722791cc5070968413264909",
      "tree": "a7891dfc10d23a6757034a2beeb422ba11088662",
      "parents": [
        "d995053d045d777e78ba7eba71a6a0733f3aa726"
      ],
      "author": {
        "name": "Mark McLoughlin",
        "email": "markmc@redhat.com",
        "time": "Sat Oct 24 14:14:31 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 24 14:14:31 2009 +0200"
      },
      "message": "block: silently error unsupported empty barriers too\n\nWith 2.6.32-rc5 in a KVM guest using dm and virtio_blk, we see the\nfollowing errors:\n\n  end_request: I/O error, dev vda, sector 0\n  end_request: I/O error, dev vda, sector 0\n\nThe errors go away if dm stops submitting empty barriers, by reverting:\n\n  commit 52b1fd5a27c625c78373e024bf570af3c9d44a79\n  Author: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\n    dm: send empty barriers to targets in dm_flush\n\nWe should silently error all barriers, even empty barriers, on devices\nlike virtio_blk which don\u0027t support them.\n\nSee also:\n\n  https://bugzilla.redhat.com/514901\n\nSigned-off-by: Mark McLoughlin \u003cmarkmc@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nAcked-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c30f33437c3f85ec48353a1ef811e148217a2aaf",
      "tree": "d5a0ca1e8d091a30fece2e9aeed285225c026049",
      "parents": [
        "132cc538cd90f60a0b5df6a512dfd4bc5fe2039a",
        "2ec24ff1d1875defa742c76c9c7d74dca06b7e1f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 13 12:29:45 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 13 12:29:45 2009 +0200"
      },
      "message": "Merge branch \u0027for-linus\u0027 into for-2.6.33\n"
    },
    {
      "commit": "c7ebf0657b1f47d85aee8349ed6345d940d7232a",
      "tree": "c9425a433bf727aa01a0897856852296cce71f7b",
      "parents": [
        "961515f613f26b7958c56c5c71061a8231e02be7"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Oct 12 08:20:47 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 12 08:20:47 2009 +0200"
      },
      "message": "blk-settings: fix function parameter kernel-doc notation\n\nFix kernel-doc notation in blk-settings.c::blk_queue_max_discard_sectors().\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8c279598585e4992a41016bb973993ed15888cb3",
      "tree": "47da450c888cf5b63790e37e4b7640acbc3570a2",
      "parents": [
        "355b659c87432a4e76160640625c47fcf9174e8d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Oct 09 08:48:08 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Oct 09 08:48:08 2009 +0200"
      },
      "message": "elv_iosched_store(): fix strstrip() misuse\n\nelv_iosched_store() ignore the return value of strstrip().  It makes small\ninconsistent behavior.\n\nThis patch fixes it.\n\n \u003cbefore\u003e\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n # cd /sys/block/{blockdev}/queue\n\n case1:\n # echo \"anticipatory\" \u003e scheduler\n # cat scheduler\n noop [anticipatory] deadline cfq\n\n case2:\n # echo \"anticipatory \" \u003e scheduler\n # cat scheduler\n noop [anticipatory] deadline cfq\n\n case3:\n # echo \" anticipatory\" \u003e scheduler\n bash: echo: write error: Invalid argument\n\n \u003cafter\u003e\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n # cd /sys/block/{blockdev}/queue\n\n case1:\n # echo \"anticipatory\" \u003e scheduler\n # cat scheduler\n noop [anticipatory] deadline cfq\n\n case2:\n # echo \"anticipatory \" \u003e scheduler\n # cat scheduler\n noop [anticipatory] deadline cfq\n\n case3:\n # echo \" anticipatory\" \u003e scheduler\n noop [anticipatory] deadline cfq\n\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "355b659c87432a4e76160640625c47fcf9174e8d",
      "tree": "1121f7c4ae13643a30abaf6091312f5b116a52bc",
      "parents": [
        "a6151c3a5c8e1ff5a28450bc8d6a99a2a0add0a7"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Thu Oct 08 08:43:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 08 08:43:32 2009 +0200"
      },
      "message": "cfq-iosched: avoid probable slice overrun when idling\n\nIf the average think time is larger than the remaining time slice\nfor any given queue, don\u0027t allow it to idle. A succesful idle also\nmeans that we need to dispatch and complete a request, so if we don\u0027t\neven have time left for the idle process, we would overrun the slice\nin any case.\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a6151c3a5c8e1ff5a28450bc8d6a99a2a0add0a7",
      "tree": "47896def7d76c1f81d3c358a9aaee158a253b2b6",
      "parents": [
        "ec60e4f6749daf535329dac571293cf19c627aff"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 07 20:02:57 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 07 20:02:57 2009 +0200"
      },
      "message": "cfq-iosched: apply bool value where we return 0/1\n\nSaves 16 bytes of text, woohoo. But the more important point is\nthat it makes the code more readable when returning bool for 0/1\ncases.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ec60e4f6749daf535329dac571293cf19c627aff",
      "tree": "791e2a15281bf0a3b114af6f6c9c5b2d2b0dc982",
      "parents": [
        "b9c8946b192397394a0ccd4fcecb31bc060f79f8"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Wed Oct 07 19:51:54 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Oct 07 19:51:54 2009 +0200"
      },
      "message": "cfq-iosched: fix think time allowed for seekers\n\nCFQ enables idle only for processes that think less than the allowed\nidle time. Since idle time is lower for seeky queues, we should use the\ncorrect value in the comparison.\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b9c8946b192397394a0ccd4fcecb31bc060f79f8",
      "tree": "54169a387e8e4a5f6f79e06de6fbdd0096198069",
      "parents": [
        "0b182d617eb50762b483658dd6dd9a9fbcb25758"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 06 20:53:44 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 06 21:09:32 2009 +0200"
      },
      "message": "cfq-iosched: fix the slice residual sign\n\nWe should subtract the slice residual from the rb tree key, since\na negative residual count indicates that the cfqq overran its slice\nthe last time. Hence we want to add the overrun time, to position\nit a bit further away in the service tree.\n\nReported-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0b182d617eb50762b483658dd6dd9a9fbcb25758",
      "tree": "28c7084cb5566cb26e5c6f96b3c055304afcbbbf",
      "parents": [
        "1b59dd511b9a36d4be3c01d7c7024aeec36dc651"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 06 20:49:37 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 06 20:49:37 2009 +0200"
      },
      "message": "cfq-iosched: abstract out the \u0027may this cfqq dispatch\u0027 logic\n\nMakes the whole thing easier to read, cfq_dispatch_requests() was\na bit messy before.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1b59dd511b9a36d4be3c01d7c7024aeec36dc651",
      "tree": "295691e2bb0c0baaea8de2db4c7c38039053f384",
      "parents": [
        "316d315bffa4026f28085f6b24ebcebede370ac7"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 06 20:19:02 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 06 20:19:02 2009 +0200"
      },
      "message": "block: use proper BLK_RW_ASYNC in blk_queue_start_tag()\n\nMakes it easier to read than the 0.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "316d315bffa4026f28085f6b24ebcebede370ac7",
      "tree": "10b6b057fec2382536371d2e14f9d4c0d6cf9eea",
      "parents": [
        "23e018a1b083ecb4b8bb2fb43d58e7c19b5d7959"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Tue Oct 06 20:16:55 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Oct 06 20:16:55 2009 +0200"
      },
      "message": "block: Seperate read and write statistics of in_flight requests v2\n\nCommit a9327cac440be4d8333bba975cbbf76045096275 added seperate read\nand write statistics of in_flight requests. And exported the number\nof read and write requests in progress seperately through sysfs.\n\nBut  Corrado Zoccolo \u003cczoccolo@gmail.com\u003e reported getting strange\noutput from \"iostat -kx 2\". Global values for service time and\nutilization were garbage. For interval values, utilization was always\n100%, and service time is higher than normal.\n\nSo this was reverted by commit 0f78ab9899e9d6acb09d5465def618704255963b\n\nThe problem was in part_round_stats_single(), I missed the following:\n        if (now \u003d\u003d part-\u003estamp)\n                return;\n\n-       if (part-\u003ein_flight) {\n+       if (part_in_flight(part)) {\n                __part_stat_add(cpu, part, time_in_queue,\n                                part_in_flight(part) * (now - part-\u003estamp));\n                __part_stat_add(cpu, part, io_ticks, (now - part-\u003estamp));\n\nWith this chunk included, the reported regression gets fixed.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\n\n--\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "23e018a1b083ecb4b8bb2fb43d58e7c19b5d7959",
      "tree": "a6361448bd596ccef393778e6f85e29413a01213",
      "parents": [
        "48e025e63ac908ed6ec5394a294f4ecd510a7476"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 05 08:52:35 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 05 11:03:58 2009 +0200"
      },
      "message": "block: get rid of kblock_schedule_delayed_work()\n\nIt was briefly introduced to allow CFQ to to delayed scheduling,\nbut we ended up removing that feature again. So lets kill the\nfunction and export, and just switch CFQ back to the normal work\nschedule since it is now passing in a \u00270\u0027 delay from all call\nsites.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "48e025e63ac908ed6ec5394a294f4ecd510a7476",
      "tree": "49828c00687c810627f00430dd56ce9901537fc9",
      "parents": [
        "30996f40bffe73f05abb92a4cec254befa8cecf7"
      ],
      "author": {
        "name": "Corrado Zoccolo",
        "email": "czoccolo@gmail.com",
        "time": "Mon Oct 05 08:49:23 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 05 11:03:55 2009 +0200"
      },
      "message": "cfq-iosched: fix possible problem with jiffies wraparound\n\nThe RR service tree is indexed by a key that is relative to current jiffies.\nThis can cause problems on jiffies wraparound.\n\nThe patch fixes it using time_before comparison, and changing\nthe add_front path to use a relative number, too.\n\nSigned-off-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "30996f40bffe73f05abb92a4cec254befa8cecf7",
      "tree": "2ce2cf9ed92aff3f930b7553711f4b439d6cb89e",
      "parents": [
        "374576a8b6f865022c0fd1ca62396889b23d66dd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 05 11:03:39 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 05 11:03:39 2009 +0200"
      },
      "message": "cfq-iosched: fix issue with rq-rq merging and fifo list ordering\n\ncfq uses rq-\u003estart_time as the fifo indicator, but that field may\nget modified prior to cfq doing it\u0027s fifo list adjustment when\na request gets merged with another request. This can cause the\nfifo list to become unordered.\n\nReported-by: Corrado Zoccolo \u003cczoccolo@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5d13379a4dba717fb75b749acc0f928c2c02db17",
      "tree": "ab5bf870206e6ea8e744390cdb37cb14f7e78257",
      "parents": [
        "08dc8726d4be85bca793141c827574fd32a681bb",
        "374576a8b6f865022c0fd1ca62396889b23d66dd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 05 09:30:10 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Oct 05 09:30:10 2009 +0200"
      },
      "message": "Merge branch \u0027master\u0027 into for-2.6.33\n"
    },
    {
      "commit": "0f78ab9899e9d6acb09d5465def618704255963b",
      "tree": "b92832da61ae4f4d712a33ae524c482e979be5ba",
      "parents": [
        "e00c54c36ac2024c3a8a37432e2e2698ff849594"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Oct 04 21:04:38 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Oct 04 21:04:38 2009 +0200"
      },
      "message": "Revert \"Seperate read and write statistics of in_flight requests\"\n\nThis reverts commit a9327cac440be4d8333bba975cbbf76045096275.\n\nCorrado Zoccolo \u003cczoccolo@gmail.com\u003e reports:\n\n\"with 2.6.32-rc1 I started getting the following strange output from\n\"iostat -kx 2\":\nLinux 2.6.31bisect (et2) \t04/10/2009 \t_i686_\t(2 CPU)\n\navg-cpu:  %user   %nice %system %iowait  %steal   %idle\n          10,70    0,00    3,16   15,75    0,00   70,38\n\nDevice:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s\navgrq-sz avgqu-sz   await  svctm  %util\nsda              18,22     0,00    0,67    0,01    14,77     0,02\n43,94     0,01   10,53 39043915,03 2629219,87\nsdb              60,89     9,68   50,79    3,04  1724,43    50,52\n65,95     0,70   13,06 488437,47 2629219,87\n\navg-cpu:  %user   %nice %system %iowait  %steal   %idle\n           2,72    0,00    0,74    0,00    0,00   96,53\n\nDevice:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s\navgrq-sz avgqu-sz   await  svctm  %util\nsda               0,00     0,00    0,00    0,00     0,00     0,00\n0,00     0,00    0,00   0,00 100,00\nsdb               0,00     0,00    0,00    0,00     0,00     0,00\n0,00     0,00    0,00   0,00 100,00\n\navg-cpu:  %user   %nice %system %iowait  %steal   %idle\n           6,68    0,00    0,99    0,00    0,00   92,33\n\nDevice:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s\navgrq-sz avgqu-sz   await  svctm  %util\nsda               0,00     0,00    0,00    0,00     0,00     0,00\n0,00     0,00    0,00   0,00 100,00\nsdb               0,00     0,00    0,00    0,00     0,00     0,00\n0,00     0,00    0,00   0,00 100,00\n\navg-cpu:  %user   %nice %system %iowait  %steal   %idle\n           4,40    0,00    0,73    1,47    0,00   93,40\n\nDevice:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s\navgrq-sz avgqu-sz   await  svctm  %util\nsda               0,00     0,00    0,00    0,00     0,00     0,00\n0,00     0,00    0,00   0,00 100,00\nsdb               0,00     4,00    0,00    3,00     0,00    28,00\n18,67     0,06   19,50 333,33 100,00\n\nGlobal values for service time and utilization are garbage. For\ninterval values, utilization is always 100%, and service time is\nhigher than normal.\n\nI bisected it down to:\n[a9327cac440be4d8333bba975cbbf76045096275] Seperate read and write\nstatistics of in_flight requests\nand verified that reverting just that commit indeed solves the issue\non 2.6.32-rc1.\"\n\nSo until this is debugged, revert the bad commit.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e00c54c36ac2024c3a8a37432e2e2698ff849594",
      "tree": "0b392ba588939a7ee0c405ada8b22047fad9daff",
      "parents": [
        "ac481c20ef8f6c6f2be75d581863f40c43874ef7"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Oct 04 20:36:19 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sun Oct 04 20:36:19 2009 +0200"
      },
      "message": "cfq-iosched: don\u0027t delay async queue if it hasn\u0027t dispatched at all\n\nWe cannot delay for the first dispatch of the async queue if it\nhasn\u0027t dispatched at all, since that could present a local user\nDoS attack vector using an app that just did slow timed sync reads\nwhile filling memory.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ac481c20ef8f6c6f2be75d581863f40c43874ef7",
      "tree": "90512cadc1c9dea89c0a24149166d3ab464d065e",
      "parents": [
        "61f0c1dcaaac71faabac6ef7c839b29f20204bea"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Sat Oct 03 20:52:01 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 20:52:01 2009 +0200"
      },
      "message": "block: Topology ioctls\n\nNot all users of the topology information want to use libblkid.  Provide\nthe topology information through bdev ioctls.\n\nAlso clarify sector size comments for existing BLK ioctls.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "61f0c1dcaaac71faabac6ef7c839b29f20204bea",
      "tree": "81b01d1d4515fc28908446665bca17b69d44fffb",
      "parents": [
        "963b72fc6664be12ea52f35a6addea14ec373433"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 19:46:03 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 19:46:03 2009 +0200"
      },
      "message": "cfq-iosched: use assigned slice sync value, not default\n\nWe should use the sysfs modified slice sync value, in case it differs\nfrom the default.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "963b72fc6664be12ea52f35a6addea14ec373433",
      "tree": "d84e270282c4264cb7028c39c1c44804bcf2e912",
      "parents": [
        "8e2967555571659d2c8a70dd120710110ed7bba4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 19:42:18 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 19:42:18 2009 +0200"
      },
      "message": "cfq-iosched: rename \u0027desktop\u0027 sysfs entry to \u0027low_latency\u0027\n\nDon\u0027t think that\u0027s necessarily a perfect description of what this\noption fiddles with, but it\u0027s probably better than \u0027desktop\u0027.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8e2967555571659d2c8a70dd120710110ed7bba4",
      "tree": "22716c5388f0269f5c1cef54958ae27df256c498",
      "parents": [
        "365722bb917b08b7323b5a4a0a3386cc7d00397d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 16:26:03 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 16:27:13 2009 +0200"
      },
      "message": "cfq-iosched: implement slower async initiate and queue ramp up\n\nThis slowly ramps up the async queue depth based on the time\npassed since the sync IO, and doesn\u0027t allow async at all until\na sync slice period has passed.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "365722bb917b08b7323b5a4a0a3386cc7d00397d",
      "tree": "e882cb339a7055169596ca4b267087bbf1672709",
      "parents": [
        "1d2235152dc745c6d94bedb550fea84cffdbf768"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Sat Oct 03 15:21:27 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 15:21:27 2009 +0200"
      },
      "message": "cfq-iosched: delay async IO dispatch, if sync IO was just done\n\no Do not allow more than max_dispatch requests from an async queue, if some\n  sync request has finished recently. This is in the hope that sync activity\n  is still going on in the system and we might receive a sync request soon.\n  Most likely from a sync queue which finished a request and we did not enable\n  idling on it.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "08dc8726d4be85bca793141c827574fd32a681bb",
      "tree": "020b130709473373d01cf5e24d50cd94a3aeca70",
      "parents": [
        "492af6350a5ccf087e4964104a276ed358811458"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 09:40:47 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 09:40:47 2009 +0200"
      },
      "message": "block: CFQ is more than a desktop scheduler\n\nUpdate Kconfig.iosched entry.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "492af6350a5ccf087e4964104a276ed358811458",
      "tree": "81d6398597758f5b712e1f47a3f24f0da66127ba",
      "parents": [
        "6a0afdf58d40200abd0c717261d1bc4c49195c2f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 09:37:51 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Sat Oct 03 09:37:51 2009 +0200"
      },
      "message": "block: remove the anticipatory IO scheduler\n\nAS is mostly a subset of CFQ, so there\u0027s little point in still\nproviding this separate IO scheduler. Hopefully at some point we\ncan get down to one single IO scheduler again, at least this brings\nus closer by having only one intelligent IO scheduler.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1d2235152dc745c6d94bedb550fea84cffdbf768",
      "tree": "eb489f01dd6d506c1b785bae03e68e42145a055b",
      "parents": [
        "b0da3f0dada78832c9da03ad2152ae76bd9a2496"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Oct 02 19:27:04 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Oct 02 20:06:02 2009 +0200"
      },
      "message": "cfq-iosched: add a knob for desktop interactiveness\n\nThis is basically identical to what Vivek Goyal posted, but combined\ninto one and labelled \u0027desktop\u0027 instead of \u0027fairness\u0027. The goal\nis to continue to improve on the latency side of things as it relates\nto interactiveness, keeping the questionable bits under this sysfs\ntunable so it would be easy for throughput-only people to turn off.\n\nApart from adding the interactive sysfs knob, it also adds the\nbehavioural change of allowing slice idling even if the hardware\ndoes tagged command queuing.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b0da3f0dada78832c9da03ad2152ae76bd9a2496",
      "tree": "58380f5d8f3c313fbb9fd0310509a408b38a0399",
      "parents": [
        "67efc9258010da35b27b3854d0880c7e193004ed"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Thu Oct 01 21:16:13 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 01 21:19:34 2009 +0200"
      },
      "message": "Add a tracepoint for block request remapping\n\nSince 2.6.31 now has request-based device-mapper, it\u0027s useful to have\na tracepoint for request-remapping as well as bio-remapping.\nThis patch adds a tracepoint for request-remapping, trace_block_rq_remap().\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "67efc9258010da35b27b3854d0880c7e193004ed",
      "tree": "d98ad032d8c701084539d5673c2d7d7ca5962a3f",
      "parents": [
        "c15227de132f1295f3db6b7df9079956b1020fd8"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Sep 30 13:54:20 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 01 21:19:34 2009 +0200"
      },
      "message": "block: allow large discard requests\n\nCurrently we set the bio size to the byte equivalent of the blocks to\nbe trimmed when submitting the initial DISCARD ioctl.  That means it\nis subject to the max_hw_sectors limitation of the HBA which is\nmuch lower than the size of a DISCARD request we can support.\nAdd a separate max_discard_sectors tunable to limit the size for discard\nrequests.\n\nWe limit the max discard request size in bytes to 32bit as that is the\nlimit for bio-\u003ebi_size.  This could be much larger if we had a way to pass\nthat information through the block layer.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c15227de132f1295f3db6b7df9079956b1020fd8",
      "tree": "ad06f119f283cf8a6313681055e8132ba2851ddb",
      "parents": [
        "3bd0f0c763e497c8674b28e3df2732f48683dabd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Sep 30 13:52:12 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 01 21:19:30 2009 +0200"
      },
      "message": "block: use normal I/O path for discard requests\n\nprepare_discard_fn() was being called in a place where memory allocation\nwas effectively impossible.  This makes it inappropriate for all but\nthe most trivial translations of Linux\u0027s DISCARD operation to the block\ncommand set.  Additionally adding a payload there makes the ownership\nof the bio backing unclear as it\u0027s now allocated by the device driver\nand not the submitter as usual.\n\nIt is replaced with QUEUE_FLAG_DISCARD which is used to indicate whether\nthe queue supports discard operations or not.  blkdev_issue_discard now\nallocates a one-page, sector-length payload which is the right thing\nfor the common ATA and SCSI implementations.\n\nThe mtd implementation of prepare_discard_fn() is replaced with simply\nchecking for the request being a discard.\n\nLargely based on a previous patch from Matthew Wilcox \u003cmatthew@wil.cx\u003e\nwhich did the prepare_discard_fn but not the different payload allocation\nyet.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1a35e0f6443f4266dad4c569c55c57a9032596fa",
      "tree": "58380f5d8f3c313fbb9fd0310509a408b38a0399",
      "parents": [
        "ca80650cfbde5b17a5fa957a261c7973f84599a7"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Thu Oct 01 21:16:13 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 01 21:16:13 2009 +0200"
      },
      "message": "Add a tracepoint for block request remapping\n\nSince 2.6.31 now has request-based device-mapper, it\u0027s useful to have\na tracepoint for request-remapping as well as bio-remapping.\nThis patch adds a tracepoint for request-remapping, trace_block_rq_remap().\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nCc: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ca80650cfbde5b17a5fa957a261c7973f84599a7",
      "tree": "d98ad032d8c701084539d5673c2d7d7ca5962a3f",
      "parents": [
        "1122a26f2abe4245ccdaed95ec23f63fe086b332"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Sep 30 13:54:20 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 01 21:15:46 2009 +0200"
      },
      "message": "block: allow large discard requests\n\nCurrently we set the bio size to the byte equivalent of the blocks to\nbe trimmed when submitting the initial DISCARD ioctl.  That means it\nis subject to the max_hw_sectors limitation of the HBA which is\nmuch lower than the size of a DISCARD request we can support.\nAdd a separate max_discard_sectors tunable to limit the size for discard\nrequests.\n\nWe limit the max discard request size in bytes to 32bit as that is the\nlimit for bio-\u003ebi_size.  This could be much larger if we had a way to pass\nthat information through the block layer.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1122a26f2abe4245ccdaed95ec23f63fe086b332",
      "tree": "ad06f119f283cf8a6313681055e8132ba2851ddb",
      "parents": [
        "3bd0f0c763e497c8674b28e3df2732f48683dabd"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Wed Sep 30 13:52:12 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 01 21:15:46 2009 +0200"
      },
      "message": "block: use normal I/O path for discard requests\n\nprepare_discard_fn() was being called in a place where memory allocation\nwas effectively impossible.  This makes it inappropriate for all but\nthe most trivial translations of Linux\u0027s DISCARD operation to the block\ncommand set.  Additionally adding a payload there makes the ownership\nof the bio backing unclear as it\u0027s now allocated by the device driver\nand not the submitter as usual.\n\nIt is replaced with QUEUE_FLAG_DISCARD which is used to indicate whether\nthe queue supports discard operations or not.  blkdev_issue_discard now\nallocates a one-page, sector-length payload which is the right thing\nfor the common ATA and SCSI implementations.\n\nThe mtd implementation of prepare_discard_fn() is replaced with simply\nchecking for the request being a discard.\n\nLargely based on a previous patch from Matthew Wilcox \u003cmatthew@wil.cx\u003e\nwhich did the prepare_discard_fn but not the different payload allocation\nyet.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "48c0d4d4c04dd520c55e0fd756fa4e7c83de3d13",
      "tree": "24994d5202e9cbe7ffcedf0f826a827e78d4e146",
      "parents": [
        "1e6f2dc11984b81c6438ff6cd45cdf15a02e3dfd"
      ],
      "author": {
        "name": "Zdenek Kabelac",
        "email": "zdenek.kabelac@gmail.com",
        "time": "Fri Sep 25 06:19:26 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 01 21:15:46 2009 +0200"
      },
      "message": "Add missing blk_trace_remove_sysfs to be in pair with blk_trace_init_sysfs\n\nAdd missing blk_trace_remove_sysfs to be in pair with blk_trace_init_sysfs\nintroduced in commit 1d54ad6da9192fed5dd3b60224d9f2dfea0dcd82.\nRelease kobject also in case the request_fn is NULL.\n\nProblem was noticed via kmemleak backtrace when some sysfs entries were\nnote properly destroyed during  device removal:\n\nunreferenced object 0xffff88001aa76640 (size 80):\n  comm \"lvcreate\", pid 2120, jiffies 4294885144\n  hex dump (first 32 bytes):\n    01 00 00 00 00 00 00 00 f0 65 a7 1a 00 88 ff ff  .........e......\n    90 66 a7 1a 00 88 ff ff 86 1d 53 81 ff ff ff ff  .f........S.....\n  backtrace:\n    [\u003cffffffff813f9cc6\u003e] kmemleak_alloc+0x26/0x60\n    [\u003cffffffff8111d693\u003e] kmem_cache_alloc+0x133/0x1c0\n    [\u003cffffffff81195891\u003e] sysfs_new_dirent+0x41/0x120\n    [\u003cffffffff81194b0c\u003e] sysfs_add_file_mode+0x3c/0xb0\n    [\u003cffffffff81197c81\u003e] internal_create_group+0xc1/0x1a0\n    [\u003cffffffff81197d93\u003e] sysfs_create_group+0x13/0x20\n    [\u003cffffffff810d8004\u003e] blk_trace_init_sysfs+0x14/0x20\n    [\u003cffffffff8123f45c\u003e] blk_register_queue+0x3c/0xf0\n    [\u003cffffffff812447e4\u003e] add_disk+0x94/0x160\n    [\u003cffffffffa00d8b08\u003e] dm_create+0x598/0x6e0 [dm_mod]\n    [\u003cffffffffa00de951\u003e] dev_create+0x51/0x350 [dm_mod]\n    [\u003cffffffffa00de823\u003e] ctl_ioctl+0x1a3/0x240 [dm_mod]\n    [\u003cffffffffa00de8f2\u003e] dm_compat_ctl_ioctl+0x12/0x20 [dm_mod]\n    [\u003cffffffff81177bfd\u003e] compat_sys_ioctl+0xcd/0x4f0\n    [\u003cffffffff81036ed8\u003e] sysenter_dispatch+0x7/0x2c\n    [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nSigned-off-by: Zdenek Kabelac \u003czkabelac@redhat.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "5dee2477df5368368b7dba810a17a3c411a1d0f0",
      "tree": "24897963e1e81c9a300633d69f03aa0cb81c90a7",
      "parents": [
        "80ddf247c84fbd7f4371dd15bbbff0adb44a8708"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Mon Sep 21 21:46:05 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 01 21:15:45 2009 +0200"
      },
      "message": "block: Do not clamp max_hw_sectors for stacking devices\n\nStacking devices do not have an inherent max_hw_sector limit.  Set the\ndefault to INT_MAX so we are bounded only by capabilities of the\nunderlying storage.\n\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "80ddf247c84fbd7f4371dd15bbbff0adb44a8708",
      "tree": "77f60af44099d1181ad87bdb2e61cf605df1b78a",
      "parents": [
        "9f792d9f58496161b1b201e2ca440a6b6e116c39"
      ],
      "author": {
        "name": "Martin K. Petersen",
        "email": "martin.petersen@oracle.com",
        "time": "Fri Sep 18 22:54:37 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Oct 01 21:15:45 2009 +0200"
      },
      "message": "block: Set max_sectors correctly for stacking devices\n\nThe topology changes unintentionally caused SAFE_MAX_SECTORS to be set\nfor stacking devices.  Set the default limit to BLK_DEF_MAX_SECTORS and\nprovide SAFE_MAX_SECTORS in blk_queue_make_request() for legacy hw\ndrivers that depend on the old behavior.\n\nAcked-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e454cea20bdcff10ee698d11b8882662a0153a47",
      "tree": "f44581fe57787aef0a4f4dc00993a90ea8e688f6",
      "parents": [
        "78f28b7c555359c67c2a0d23f7436e915329421e"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Fri Sep 18 23:01:12 2009 +0200"
      },
      "committer": {
        "name": "Live-CD User",
        "email": "linux@linux.site",
        "time": "Sat Sep 19 12:50:38 2009 -0700"
      },
      "message": "Driver-Core: extend devnode callbacks to provide permissions\n\nThis allows subsytems to provide devtmpfs with non-default permissions\nfor the device node. Instead of the default mode of 0600, null, zero,\nrandom, urandom, full, tty, ptmx now have a mode of 0666, which allows\nnon-privileged processes to access standard device nodes in case no\nother userspace process applies the expected permissions.\n\nThis also fixes a wrong assignment in pktcdvd and a checkpatch.pl complain.\n\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "ab86e5765d41a5eb4239a1c04d613db87bea5ed8",
      "tree": "a41224d4874c2f90e0b423786f00bedf6f3e8bfa",
      "parents": [
        "7ea61767e41e2baedd6a968d13f56026522e1207",
        "2b2af54a5bb6f7e80ccf78f20084b93c398c3a8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 16 08:27:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 16 08:27:10 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:\n  Driver Core: devtmpfs - kernel-maintained tmpfs-based /dev\n  debugfs: Modify default debugfs directory for debugging pktcdvd.\n  debugfs: Modified default dir of debugfs for debugging UHCI.\n  debugfs: Change debugfs directory of IWMC3200\n  debugfs: Change debuhgfs directory of trace-events-sample.h\n  debugfs: Fix mount directory of debugfs by default in events.txt\n  hpilo: add poll f_op\n  hpilo: add interrupt handler\n  hpilo: staging for interrupt handling\n  driver core: platform_device_add_data(): use kmemdup()\n  Driver core: Add support for compatibility classes\n  uio: add generic driver for PCI 2.3 devices\n  driver-core: move dma-coherent.c from kernel to driver/base\n  mem_class: fix bug\n  mem_class: use minor as index instead of searching the array\n  driver model: constify attribute groups\n  UIO: remove \u0027default n\u0027 from Kconfig\n  Driver core: Add accessor for device platform data\n  Driver core: move dev_get/set_drvdata to drivers/base/dd.c\n  Driver core: add new device to bus\u0027s list before probing\n"
    }
  ],
  "next": "a4dbd6740df0872cdf0a86841f75beec8381964d"
}
