)]}'
{
  "log": [
    {
      "commit": "bcf4dd43424cdfd8195f3955300a579fe58e9911",
      "tree": "ad4f94fdb111dc624b58a6caa9ce45da64c910ee",
      "parents": [
        "9e9432c267e4047db98b9d4fba95099c6effcef9"
      ],
      "author": {
        "name": "Gui Jianfeng",
        "email": "guijianfeng@cn.fujitsu.com",
        "time": "Mon Feb 01 09:58:54 2010 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Feb 01 09:58:54 2010 +0100"
      },
      "message": "blk-cgroup: Fix potential deadlock in blk-cgroup\n\nI triggered a lockdep warning as following.\n\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: possible circular locking dependency detected ]\n2.6.33-rc2 #1\n-------------------------------------------------------\ntest_io_control/7357 is trying to acquire lock:\n (blkio_list_lock){+.+...}, at: [\u003cc053a990\u003e] blkiocg_weight_write+0x82/0x9e\n\nbut task is already holding lock:\n (\u0026(\u0026blkcg-\u003elock)-\u003erlock){......}, at: [\u003cc053a949\u003e] blkiocg_weight_write+0x3b/0x9e\n\nwhich lock already depends on the new lock.\n\nthe existing dependency chain (in reverse order) is:\n\n-\u003e #2 (\u0026(\u0026blkcg-\u003elock)-\u003erlock){......}:\n       [\u003cc04583b7\u003e] validate_chain+0x8bc/0xb9c\n       [\u003cc0458dba\u003e] __lock_acquire+0x723/0x789\n       [\u003cc0458eb0\u003e] lock_acquire+0x90/0xa7\n       [\u003cc0692b0a\u003e] _raw_spin_lock_irqsave+0x27/0x5a\n       [\u003cc053a4e1\u003e] blkiocg_add_blkio_group+0x1a/0x6d\n       [\u003cc053cac7\u003e] cfq_get_queue+0x225/0x3de\n       [\u003cc053eec2\u003e] cfq_set_request+0x217/0x42d\n       [\u003cc052c8a6\u003e] elv_set_request+0x17/0x26\n       [\u003cc0532a0f\u003e] get_request+0x203/0x2c5\n       [\u003cc0532ae9\u003e] get_request_wait+0x18/0x10e\n       [\u003cc0533470\u003e] __make_request+0x2ba/0x375\n       [\u003cc0531985\u003e] generic_make_request+0x28d/0x30f\n       [\u003cc0532da7\u003e] submit_bio+0x8a/0x8f\n       [\u003cc04d827a\u003e] submit_bh+0xf0/0x10f\n       [\u003cc04d91d2\u003e] ll_rw_block+0xc0/0xf9\n       [\u003cf86e9705\u003e] ext3_find_entry+0x319/0x544 [ext3]\n       [\u003cf86eae58\u003e] ext3_lookup+0x2c/0xb9 [ext3]\n       [\u003cc04c3e1b\u003e] do_lookup+0xd3/0x172\n       [\u003cc04c56c8\u003e] link_path_walk+0x5fb/0x95c\n       [\u003cc04c5a65\u003e] path_walk+0x3c/0x81\n       [\u003cc04c5b63\u003e] do_path_lookup+0x21/0x8a\n       [\u003cc04c66cc\u003e] do_filp_open+0xf0/0x978\n       [\u003cc04c0c7e\u003e] open_exec+0x1b/0xb7\n       [\u003cc04c1436\u003e] do_execve+0xbb/0x266\n       [\u003cc04081a9\u003e] sys_execve+0x24/0x4a\n       [\u003cc04028a2\u003e] ptregs_execve+0x12/0x18\n\n-\u003e #1 (\u0026(\u0026q-\u003e__queue_lock)-\u003erlock){..-.-.}:\n       [\u003cc04583b7\u003e] validate_chain+0x8bc/0xb9c\n       [\u003cc0458dba\u003e] __lock_acquire+0x723/0x789\n       [\u003cc0458eb0\u003e] lock_acquire+0x90/0xa7\n       [\u003cc0692b0a\u003e] _raw_spin_lock_irqsave+0x27/0x5a\n       [\u003cc053dd2a\u003e] cfq_unlink_blkio_group+0x17/0x41\n       [\u003cc053a6eb\u003e] blkiocg_destroy+0x72/0xc7\n       [\u003cc0467df0\u003e] cgroup_diput+0x4a/0xb2\n       [\u003cc04ca473\u003e] dentry_iput+0x93/0xb7\n       [\u003cc04ca4b3\u003e] d_kill+0x1c/0x36\n       [\u003cc04cb5c5\u003e] dput+0xf5/0xfe\n       [\u003cc04c6084\u003e] do_rmdir+0x95/0xbe\n       [\u003cc04c60ec\u003e] sys_rmdir+0x10/0x12\n       [\u003cc04027cc\u003e] sysenter_do_call+0x12/0x32\n\n-\u003e #0 (blkio_list_lock){+.+...}:\n       [\u003cc0458117\u003e] validate_chain+0x61c/0xb9c\n       [\u003cc0458dba\u003e] __lock_acquire+0x723/0x789\n       [\u003cc0458eb0\u003e] lock_acquire+0x90/0xa7\n       [\u003cc06929fd\u003e] _raw_spin_lock+0x1e/0x4e\n       [\u003cc053a990\u003e] blkiocg_weight_write+0x82/0x9e\n       [\u003cc0467f1e\u003e] cgroup_file_write+0xc6/0x1c0\n       [\u003cc04bd2f3\u003e] vfs_write+0x8c/0x116\n       [\u003cc04bd7c6\u003e] sys_write+0x3b/0x60\n       [\u003cc04027cc\u003e] sysenter_do_call+0x12/0x32\n\nother info that might help us debug this:\n\n1 lock held by test_io_control/7357:\n #0:  (\u0026(\u0026blkcg-\u003elock)-\u003erlock){......}, at: [\u003cc053a949\u003e] blkiocg_weight_write+0x3b/0x9e\nstack backtrace:\nPid: 7357, comm: test_io_control Not tainted 2.6.33-rc2 #1\nCall Trace:\n [\u003cc045754f\u003e] print_circular_bug+0x91/0x9d\n [\u003cc0458117\u003e] validate_chain+0x61c/0xb9c\n [\u003cc0458dba\u003e] __lock_acquire+0x723/0x789\n [\u003cc0458eb0\u003e] lock_acquire+0x90/0xa7\n [\u003cc053a990\u003e] ? blkiocg_weight_write+0x82/0x9e\n [\u003cc06929fd\u003e] _raw_spin_lock+0x1e/0x4e\n [\u003cc053a990\u003e] ? blkiocg_weight_write+0x82/0x9e\n [\u003cc053a990\u003e] blkiocg_weight_write+0x82/0x9e\n [\u003cc0467f1e\u003e] cgroup_file_write+0xc6/0x1c0\n [\u003cc0454df5\u003e] ? trace_hardirqs_off+0xb/0xd\n [\u003cc044d93a\u003e] ? cpu_clock+0x2e/0x44\n [\u003cc050e6ec\u003e] ? security_file_permission+0xf/0x11\n [\u003cc04bcdda\u003e] ? rw_verify_area+0x8a/0xad\n [\u003cc0467e58\u003e] ? cgroup_file_write+0x0/0x1c0\n [\u003cc04bd2f3\u003e] vfs_write+0x8c/0x116\n [\u003cc04bd7c6\u003e] sys_write+0x3b/0x60\n [\u003cc04027cc\u003e] sysenter_do_call+0x12/0x32\n\nTo prevent deadlock, we should take locks as following sequence:\n\nblkio_list_lock -\u003e queue_lock -\u003e  blkcg_lock.\n\nThe following patch should fix this bug.\n\nSigned-off-by: Gui Jianfeng \u003cguijianfeng@cn.fujitsu.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\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": "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": "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": "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": "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": "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"
    }
  ]
}
