)]}'
{
  "log": [
    {
      "commit": "7ff14a36159d947872870e7a3e9dcaebc46b23eb",
      "tree": "69544b7f29f2ffc392951f9e9c23f566e3cc41f7",
      "parents": [
        "a2aebe03be60ae4da03507a00d60211d5e0327c3"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Thu Apr 24 22:10:47 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Apr 25 13:26:57 2008 +0100"
      },
      "message": "dm: unplug queues in threads\n\nRemove an avoidable 3ms delay on some dm-raid1 and kcopyd I/O.\n\nIt is specified that any submitted bio without BIO_RW_SYNC flag may plug the\nqueue (i.e. block the requests from being dispatched to the physical device).\n\nThe queue is unplugged when the caller calls blk_unplug() function. Usually, the\nsequence is that someone calls submit_bh to submit IO on a buffer. The IO plugs\nthe queue and waits (to be possibly joined with other adjacent bios). Then, when\nthe caller calls wait_on_buffer(), it unplugs the queue and submits the IOs to\nthe disk.\n\nThis was happenning:\n\nWhen doing O_SYNC writes, function fsync_buffers_list() submits a list of\nbios to dm_raid1, the bios are added to dm_raid1 write queue and kmirrord is\nwoken up.\n\nfsync_buffers_list() calls wait_on_buffer().  That unplugs the queue, but\nthere are no bios on the device queue as they are still in the dm_raid1 queue.\n\nwait_on_buffer() starts waiting until the IO is finished.\n\nkmirrord is scheduled, kmirrord takes bios and submits them to the devices.\n\nThe submitted bio plugs the harddisk queue but there is no one to unplug it.\n(The process that called wait_on_buffer() is already sleeping.)\n\nSo there is a 3ms timeout, after which the queues on the harddisks are\nunplugged and requests are processed.\n\nThis 3ms timeout meant that in certain workloads (e.g. O_SYNC, 8kb writes),\ndm-raid1 is 10 times slower than md raid1.\n\nEvery time we submit something asynchronously via dm_io, we must unplug the\nqueue actually to send the request to the device.\n\nThis patch adds an unplug call to kmirrord - while processing requests, it keeps\nthe queue plugged (so that adjacent bios can be merged); when it finishes\nprocessing all the bios, it unplugs the queue to submit the bios.\n\nIt also fixes kcopyd which has the same potential problem. All kcopyd requests\nare submitted with BIO_RW_SYNC.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a765e20eeb423d0fa6a02ffab51141e53bbd93cb",
      "tree": "fc7279fa73a21518373e1ba2efad27dab89a2214",
      "parents": [
        "2d1e580afe23287871529ce54429e249809525a1"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 24 22:02:01 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Apr 25 13:26:55 2008 +0100"
      },
      "message": "dm: move include files\n\nPublish the dm-io, dm-log and dm-kcopyd headers in include/linux.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "22a1ceb1e6a7fbce95a1531ff10bb4fb036d4a37",
      "tree": "5b6ebebc747a0027626684a153b418a26119d074",
      "parents": [
        "e01fd7eeb00f8078103f4ed3e8ef64474c11f300"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Thu Apr 24 21:43:17 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Apr 25 13:26:43 2008 +0100"
      },
      "message": "dm io: clean interface\n\nClean up the dm-io interface to prepare for publishing it in include/linux.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "e01fd7eeb00f8078103f4ed3e8ef64474c11f300",
      "tree": "c1de000bb5a45d4b52ec1dc6231abe974743eea9",
      "parents": [
        "72727bad544b4ce0a3f7853bfd7ae939f398007d"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Thu Apr 24 21:43:14 2008 +0100"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Apr 25 13:26:41 2008 +0100"
      },
      "message": "dm io: rename error to error_bits\n\nRename \u0027error\u0027 to \u0027error_bits\u0027 for clarity.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4cdc1d1fa5c5ac14dc21be19832f02fd0b83867e",
      "tree": "a8c93c90dd088b18b9307bb50413478dbc48f5b5",
      "parents": [
        "d250dad64a154a9f95ec3574e2ffc97d9f61a19c"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Mar 28 14:16:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 28 14:45:23 2008 -0700"
      },
      "message": "dm io: write error bits form long not int\n\nwrite_err is an unsigned long used with set_bit() so should not be passed\naround as unsigned int.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10271\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6712ecf8f648118c3363c142196418f89a510b90",
      "tree": "347d39a7d5a7ed96d3b1afecd28de2a0f98b98c9",
      "parents": [
        "5bb23a688b2de23d7765a1dd439d89c038378978"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Thu Sep 27 12:47:43 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.home.kernel.dk",
        "time": "Wed Oct 10 09:25:57 2007 +0200"
      },
      "message": "Drop \u0027size\u0027 argument from bio_endio and bi_end_io\n\nAs bi_end_io is only called once when the reqeust is complete,\nthe \u0027size\u0027 argument is now redundant.  Remove it.\n\nNow there is no need for bio_endio to subtract the size completed\nfrom bi_size.  So don\u0027t do that either.\n\nWhile we are at it, change bi_end_io to return void.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "596f138eede0c113aa655937c8be85fc15ccd61c",
      "tree": "efd4e3d67b759b84bb1e72f9d50897d275085f7c",
      "parents": [
        "c95bc206da4bc9838bad826883f8f461a972e441"
      ],
      "author": {
        "name": "Jun\u0027ichi Nomura",
        "email": "j-nomura@ce.jp.nec.com",
        "time": "Thu Jul 12 17:27:45 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 12 15:01:08 2007 -0700"
      },
      "message": "dm io: fix panic on large request\n\nbio_alloc_bioset() will return NULL if \u0027num_vecs\u0027 is too large.\nUse bio_get_nr_vecs() to get estimation of maximum number.\n\nCc: stable@kernel.org\nSigned-off-by: \"Jun\u0027ichi Nomura\" \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf17ce3a604d943f29bf1bc1a66a4e0d2ad4ec96",
      "tree": "531058ab5ad63fb2e104bfadddbdbde080a0289b",
      "parents": [
        "88be163abb5324bab09f5eff9646590eec5314eb"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed May 09 02:33:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: remove old interface\n\nRemove old dm-io interface.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c8b03afe3d38a635861e4bfa5c563d844e754a91",
      "tree": "d23d2aa8d6cec93bab6e23ffd2199509e7d85113",
      "parents": [
        "891ce207011d3d9219f79fd5114c8594bbacc653"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: new interface\n\nAdd a new API to dm-io.c that uses a private mempool and bio_set for each\nclient.\n\nThe new functions to use are dm_io_client_create(), dm_io_client_destroy(),\ndm_io_client_resize() and dm_io().\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "891ce207011d3d9219f79fd5114c8594bbacc653",
      "tree": "969ca658f41ec8a9f719a44a487ae582ee278c27",
      "parents": [
        "c897feb3dcf3c3300849056ee82b01df7bf66d3c"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: prepare for new interface\n\nIntroduce struct dm_io_client to prepare for per-client mempools and bio_sets.\n\nTemporary functions bios() and io_pool() choose between the per-client\nstructures and the global ones so the old and new interfaces can co-exist.\n\nMake error_bits optional.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c897feb3dcf3c3300849056ee82b01df7bf66d3c",
      "tree": "29d82a62375d7a6394ba39e11926a695e6691de0",
      "parents": [
        "a8e6afa2363de7ee0dea1a3297f6236f421c2dd4"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: delay dec_count\n\nDelay decrementing the \u0027struct io\u0027 reference count until after the bio has\nbeen freed so that a bio destructor function may reference it.  Required by a\nlater patch.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5972511b77809cb7c9ccdb79b825c54921c5c546",
      "tree": "8dec5821badf9750be04f339f0f621fab2114c8a",
      "parents": [
        "b9099ff63c75216d6ca10bce5a1abcd9293c27e6"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 02 10:06:42 2007 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@nelson.home.kernel.dk",
        "time": "Mon Apr 30 09:08:17 2007 +0200"
      },
      "message": "[BLOCK] Don\u0027t pin lots of memory in mempools\n\nCurrently we scale the mempool sizes depending on memory installed\nin the machine, except for the bio pool itself which sits at a fixed\n256 entry pre-allocation.\n\nThere\u0027s really no point in \"optimizing\" this OOM path, we just need\nenough preallocated to make progress. A single unit is enough, lets\nscale it down to 2 just to be on the safe side.\n\nThis patch saves ~150kb of pinned kernel memory on a 32-bit box.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f00b16ad665a9b489d46f612679181f3f914917b",
      "tree": "fc39bc1e04e063f8c5eda29f79d33a3194bb56fc",
      "parents": [
        "5cd307c5655c0b76d563b5f3f911742a32746841"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Fri Dec 08 02:41:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:29:08 2006 -0800"
      },
      "message": "[PATCH] dm io: fix bi_max_vecs\n\nThe existing code allocates an extra slot in bi_io_vec[] and uses it to store\nthe region number.\n\nThis patch hides the extra slot from bio_add_page() so the region number can\u0027t\nget overwritten.\n\nAlso remove a hard-coded SECTOR_SHIFT and fix a typo in a comment.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nCc: dm-devel@redhat.com\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0eaae62abaa1ad1f231932b6cdd9fb1b91df6651",
      "tree": "cda02cffff075a8b542ddcea4fa0ff0064130502",
      "parents": [
        "53184082b070dfb077218828fdf839826102ed96"
      ],
      "author": {
        "name": "Matthew Dobson",
        "email": "colpatch@us.ibm.com",
        "time": "Sun Mar 26 01:37:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:59 2006 -0800"
      },
      "message": "[PATCH] mempool: use common mempool kmalloc allocator\n\nThis patch changes several mempool users, all of which are basically just\nwrappers around kmalloc(), to use the common mempool_kmalloc/kfree, rather\nthan their own wrapper function, removing a bunch of duplicated code.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3676347a5e216a7fec7f8eedbbcf8bed6b9c4e40",
      "tree": "3b5880b862390590da8edfb98c3e62aa573d0b28",
      "parents": [
        "6f00df24ee394f345a8789d3a2f98fc1d9195b9f"
      ],
      "author": {
        "name": "Peter Osterlund",
        "email": "petero2@telia.com",
        "time": "Tue Sep 06 15:16:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:20 2005 -0700"
      },
      "message": "[PATCH] kill bio-\u003ebi_set\n\nJens:\n\n-\u003ebi_set is totally unnecessary bloat of struct bio.  Just define a proper\ndestructor for the bio and it already knows what bio_set it belongs too.\n\nPeter:\n\nFixed the bugs.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\nSigned-off-by: Peter Osterlund \u003cpetero2@telia.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
