)]}'
{
  "log": [
    {
      "commit": "c49c06e4960949a9bced708858433fcf6ca36a9c",
      "tree": "071c65544a98b6b0b599896591855f8ac69ab79a",
      "parents": [
        "9355aede5a3c4975e0ba8bbfe2b9d1fd73308916"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Fri Oct 01 21:16:42 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Oct 01 21:16:42 2010 +0200"
      },
      "message": "blkio-throttle: Fix possible multiplication overflow in iops calculations\n\no User can specify max iops value of 32bit (UINT_MAX), through cgroup\n  interface. If a user has specified say 4294967294 (UNIT_MAX  - 2), then\n  on 32bit platform, following multiplication can overflow.\n\n  io_allowed \u003d (tg-\u003eiops[rw] * jiffy_elapsed_rnd)\n\no Explicitly cast the multiplication to 64bit and then perform division and\n  then check whether result is still great then UNINT_MAX.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "5e901a2b95db709c5e40599ff4df6029be1e2a12",
      "tree": "e2450a1157c6f9411429fceb9939002d8c0282f8",
      "parents": [
        "3aad5d3ee4e4fce8f4b5bb6ca73342dcade42b33"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Fri Oct 01 21:16:38 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Oct 01 21:16:38 2010 +0200"
      },
      "message": "blkio-throttle: There is no need to convert jiffies to milli seconds\n\no Do not convert jiffies to mili seconds as it is not required. Just work\n  with jiffies and HZ.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "3aad5d3ee4e4fce8f4b5bb6ca73342dcade42b33",
      "tree": "1ba65d361b6d77761f53769fc8891a56085422c6",
      "parents": [
        "fe0714377ee2ca161bf2afb7773e22f15f1786d4"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Fri Oct 01 14:51:14 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Oct 01 14:51:14 2010 +0200"
      },
      "message": "blkio-throttle: Fix link failure failure on i386\n\no Randy Dunlap reported following linux-next failure. This patch fixes it.\n\non i386:\n\nblk-throttle.c:(.text+0x1abb8): undefined reference to `__udivdi3\u0027\nblk-throttle.c:(.text+0x1b1dc): undefined reference to `__udivdi3\u0027\n\no bytes_per_second interface is 64bit and I was continuing to do 64 bit\n  division even on 32bit platform without help of special macros/functions\n  hence the failure.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "fe0714377ee2ca161bf2afb7773e22f15f1786d4",
      "tree": "09f5e8686d741d012333c92251b8cc66793ef916",
      "parents": [
        "02977e4af7ed3b478c505e50491ffdf3e1314cf4"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Fri Oct 01 14:49:49 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Oct 01 14:49:49 2010 +0200"
      },
      "message": "blkio: Recalculate the throttled bio dispatch time upon throttle limit change\n\no Currently any cgroup throttle limit changes are processed asynchronousy and\n  the change does not take affect till a new bio is dispatched from same group.\n\no It might happen that a user sets a redicuously low limit on throttling.\n  Say 1 bytes per second on reads. In such cases simple operations like mount\n  a disk can wait for a very long time.\n\no Once bio is throttled, there is no easy way to come out of that wait even if\n  user increases the read limit later.\n\no This patch fixes it. Now if a user changes the cgroup limits, we recalculate\n  the bio dispatch time according to new limits.\n\no Can\u0027t take queueu lock under blkcg_lock, hence after the change I wake\n  up the dispatch thread again which recalculates the time. So there are some\n  variables being synchronized across two threads without lock and I had to\n  make use of barriers. Hoping I have used barriers correctly. Any review of\n  memory barrier code especially will help.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "02977e4af7ed3b478c505e50491ffdf3e1314cf4",
      "tree": "5adb947a5c8567cbbff79459e9feaccf354fd81f",
      "parents": [
        "61014e96e6ed55b8db0af31574eec2a75d4e8755"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Fri Oct 01 14:49:48 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Oct 01 14:49:48 2010 +0200"
      },
      "message": "blkio: Add root group to td-\u003etg_list\n\no Currently all the dynamically allocated groups, except root grp is added\n  to td-\u003etg_list. This was not a problem so far but in next patch I will\n  travel through td-\u003etg_list to process any updates of limits on the group.\n  If root group is not in tg_list, then root group\u0027s updates are not\n  processed.\n\no It is better to root group also to tg_list instead of doing special\n  processing for it during limit updates.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "8e89d13f4ede2467629a971618537430fafaaea3",
      "tree": "90a79a2997f597715e3ad7edeea507fdb6223882",
      "parents": [
        "7702e8f45b0a3bb262b9366c60beb5445758d94c"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Wed Sep 15 17:06:37 2010 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Sep 16 08:44:00 2010 +0200"
      },
      "message": "blkio: Implementation of IOPS limit logic\n\no core logic of implementing IOPS throttling.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "e43473b7f223ec866f7db273697e76c337c390f9",
      "tree": "e90b52dbe4ec4ae37263a00e2bd9eaf5367cf72f",
      "parents": [
        "4c9eefa16c6f124ffcc736cb719b24ea27f85017"
      ],
      "author": {
        "name": "Vivek Goyal",
        "email": "vgoyal@redhat.com",
        "time": "Wed Sep 15 17:06:35 2010 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Sep 16 08:42:52 2010 +0200"
      },
      "message": "blkio: Core implementation of throttle policy\n\no Actual implementation of throttling policy in block layer. Currently it\n  implements READ and WRITE bytes per second throttling logic. IOPS throttling\n  comes in later patches.\n\nSigned-off-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    }
  ]
}
