)]}'
{
  "log": [
    {
      "commit": "4c94dece1baf320d925cedb231489c4e0358ac5a",
      "tree": "fd0738e2f82c806e921e6c872b704cfbef3c0a1d",
      "parents": [
        "9fd8d0e1bcb848257968d9a7d73ca4d890ea8bd1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Apr 28 13:06:05 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 08:14:50 2009 +0200"
      },
      "message": "block: don\u0027t init rq fields unnecessarily\n\nblk_get_request() always returns properly zeroed requests.  Don\u0027t set\nfields to zero/NULL unnecessarily.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9eb55b030c4b3227334ee4482402096cd1d1a6fe",
      "tree": "e6c5c6e31692c715b911b18474ef6e4c627723bd",
      "parents": [
        "c69d48540c201394d08cb4d48b905e001313d9b8"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Mon Apr 27 14:53:54 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:37 2009 +0200"
      },
      "message": "block: catch trying to use more bits than request-\u003ecmd_flags has\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c69d48540c201394d08cb4d48b905e001313d9b8",
      "tree": "6ad78b44cd7fc5d65a0c3bded49f8cb14f4790a9",
      "parents": [
        "c2553b5844b06910435e40cfab9e6f384840cb97"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 24 08:12:19 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:37 2009 +0200"
      },
      "message": "block: include discard requests in IO accounting\n\nWe currently don\u0027t do merging on discard requests, but we potentially\ncould. If we do, then we need to include discard requests in the IO\naccounting, or merging would end up decrementing in_flight IO counters\nfor an IO which never incremented them.\n\nSo enable accounting for discard requests.\n\nProblem found by Nikanth Karthikesan \u003cknikanth@suse.de\u003e\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c2553b5844b06910435e40cfab9e6f384840cb97",
      "tree": "00a6a1f0c056f19050a8b7c7a1db7b7e0e502062",
      "parents": [
        "731ec497e5888c6792ad62613ae9be97eebcd7ca"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 24 08:10:11 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:37 2009 +0200"
      },
      "message": "block: make blk_do_io_stat() do the full \"is this rq accountable\" checks\n\nWe currently check for file system requests outside of blk_do_io_stat(rq),\nbut we may as well just include it.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "731ec497e5888c6792ad62613ae9be97eebcd7ca",
      "tree": "689a8442d8bdfd50ee6ab05b0c6acd0d229fe391",
      "parents": [
        "ec24751a6b57e1373a12361e581b2458bc9bb791"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:20 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:36 2009 +0200"
      },
      "message": "block: kill rq-\u003edata\n\nNow that all block request data transfer is done via bio, rq-\u003edata\nisn\u0027t used.  Kill it.\n\nWhile at it, make the roles of rq-\u003especial and buffer clear.\n\n[ Impact: drop now unncessary field from struct request ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\n"
    },
    {
      "commit": "40cbbb781d3eba5d6ac0860db078af490e5c7c6b",
      "tree": "dec374543cf045fc630bccddbb7646c695094b0d",
      "parents": [
        "b243ddcbe9be146172baa544dadecebf156eda0e"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:19 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:35 2009 +0200"
      },
      "message": "block: implement and use [__]blk_end_request_all()\n\nThere are many [__]blk_end_request() call sites which call it with\nfull request length and expect full completion.  Many of them ensure\nthat the request actually completes by doing BUG_ON() the return\nvalue, which is awkward and error-prone.\n\nThis patch adds [__]blk_end_request_all() which takes @rq and @error\nand fully completes the request.  BUG_ON() is added to to ensure that\nthis actually happens.\n\nMost conversions are simple but there are a few noteworthy ones.\n\n* cdrom/viocd: viocd_end_request() replaced with direct calls to\n  __blk_end_request_all().\n\n* s390/block/dasd: dasd_end_request() replaced with direct calls to\n  __blk_end_request_all().\n\n* s390/char/tape_block: tapeblock_end_request() replaced with direct\n  calls to blk_end_request_all().\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Jeff Garzik \u003cjgarzik@pobox.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nCc: Alex Dubov \u003coakad@yahoo.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "b243ddcbe9be146172baa544dadecebf156eda0e",
      "tree": "20ae5d9460498ae6c53e9e82f1b9d9ed6daffbb3",
      "parents": [
        "2e60e02297cf54e367567f2d85b2ca56b1c4a906"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:35 2009 +0200"
      },
      "message": "block: move rq-\u003estart_time initialization to blk_rq_init()\n\nrq-\u003estart_time was initialized in init_request_from_bio() so special\nrequests didn\u0027t have start_time set.  This has been okay as start_time\nhas been used only for fs requests; however, there is no indication of\nthis actually is the case or not.  Set rq-\u003estart_time in blk_rq_init()\nand guarantee that all initialized rq\u0027s have its start_time set.  This\nimproves consistency at virtually no cost and future changes will make\nuse of the timestamp for !bio requests.\n\n[ Impact: rq-\u003estart_time is valid for all requests ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "2e60e02297cf54e367567f2d85b2ca56b1c4a906",
      "tree": "ea824afcaff58be894799a011f74d80c3560f372",
      "parents": [
        "0b302d5aa7975006fa2ec3d66386610b9b36c669"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:35 2009 +0200"
      },
      "message": "block: clean up request completion API\n\nRequest completion has gone through several changes and became a bit\nmessy over the time.  Clean it up.\n\n1. end_that_request_data() is a thin wrapper around\n   end_that_request_data_first() which checks whether bio is NULL\n   before doing anything and handles bidi completion.\n   blk_update_request() is a thin wrapper around\n   end_that_request_data() which clears nr_sectors on the last\n   iteration but doesn\u0027t use the bidi completion.\n\n   Clean it up by moving the initial bio NULL check and nr_sectors\n   clearing on the last iteration into end_that_request_data() and\n   renaming it to blk_update_request(), which makes blk_end_io() the\n   only user of end_that_request_data().  Collapse\n   end_that_request_data() into blk_end_io().\n\n2. There are four visible completion variants - blk_end_request(),\n   __blk_end_request(), blk_end_bidi_request() and end_request().\n   blk_end_request() and blk_end_bidi_request() uses blk_end_request()\n   as the backend but __blk_end_request() and end_request() use\n   separate implementation in __blk_end_request() due to different\n   locking rules.\n\n   blk_end_bidi_request() is identical to blk_end_io().  Collapse\n   blk_end_io() into blk_end_bidi_request(), separate out request\n   update into internal helper blk_update_bidi_request() and add\n   __blk_end_bidi_request().  Redefine [__]blk_end_request() as thin\n   inline wrappers around [__]blk_end_bidi_request().\n\n3. As the whole request issue/completion usages are about to be\n   modified and audited, it\u0027s a good chance to convert completion\n   functions return bool which better indicates the intended meaning\n   of return values.\n\n4. The function name end_that_request_last() is from the days when it\n   was a public interface and slighly confusing.  Give it a proper\n   internal name - blk_finish_request().\n\n5. Add description explaning that blk_end_bidi_request() can be safely\n   used for uni requests as suggested by Boaz Harrosh.\n\nThe only visible behavior change is from #1.  nr_sectors counts are\ncleared after the final iteration no matter which function is used to\ncomplete the request.  I couldn\u0027t find any place where the code\nassumes those nr_sectors counters contain the values for the last\nsegment and this change is good as it makes the API much more\nconsistent as the end result is now same whether a request is\ncompleted using [__]blk_end_request() alone or in combination with\nblk_update_request().\n\nAPI further cleaned up per Christoph\u0027s suggestion.\n\n[ Impact: cleanup, rq-\u003e*nr_sectors always updated after req completion ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\n"
    },
    {
      "commit": "0b302d5aa7975006fa2ec3d66386610b9b36c669",
      "tree": "bba5de7b377ad167c4291cbdfd203ca7616d696d",
      "parents": [
        "158dbda0068e63c7cce7bd47c123bd1dfa5a902c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:34 2009 +0200"
      },
      "message": "block: kill blk_end_request_callback()\n\nWith recent IDE updates, blk_end_request_callback() doesn\u0027t have any\nuser now.  Kill it.\n\n[ Impact: removal of unused convoluted interface ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "158dbda0068e63c7cce7bd47c123bd1dfa5a902c",
      "tree": "2665f31350ba4f0875c7611c980b0831c22d8c98",
      "parents": [
        "5efccd17ceb0fc43837a331297c2c407969d7201"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:34 2009 +0200"
      },
      "message": "block: reorganize request fetching functions\n\nImpact: code reorganization\n\nelv_next_request() and elv_dequeue_request() are public block layer\ninterface than actual elevator implementation.  They mostly deal with\nhow requests interact with block layer and low level drivers at the\nbeginning of rqeuest processing whereas __elv_next_request() is the\nactual eleveator request fetching interface.\n\nMove the two functions to blk-core.c.  This prepares for further\ninterface cleanup.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "5efccd17ceb0fc43837a331297c2c407969d7201",
      "tree": "6678ebea73ffc9f2ad35029eaaf49e68073e4e88",
      "parents": [
        "2eef33e439ba9ae387cdc3f1abcef2f3f6c4e7a8"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:34 2009 +0200"
      },
      "message": "block: reorder request completion functions\n\nReorder request completion functions such that\n\n* All request completion functions are located together.\n\n* Functions which are used by only one caller is put right above the\n  caller.\n\n* end_request() is put after other completion functions but before\n  blk_update_request().\n\nThis change is for completion function cleanup which will follow.\n\n[ Impact: cleanup, code reorganization ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "2eef33e439ba9ae387cdc3f1abcef2f3f6c4e7a8",
      "tree": "a25b4d1f59aaf23295a853beeb3922f58ee04b2b",
      "parents": [
        "10732f5661fb7adf62e20733b0030fc0fc93b0c4"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:34 2009 +0200"
      },
      "message": "block: clean up misc stuff after block layer timeout conversion\n\n* In blk_rq_timed_out_timer(), else { if } to else if\n\n* In blk_add_timer(), simplify if/else block\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "10732f5661fb7adf62e20733b0030fc0fc93b0c4",
      "tree": "4d3792fd76624671503513e727bd5de6bcaa2450",
      "parents": [
        "e4025f6c21f1389696c069be2dc647f364925c45"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:18 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:34 2009 +0200"
      },
      "message": "block: cleanup REQ_SOFTBARRIER usages\n\nblk_insert_request() doesn\u0027t need to worry about REQ_SOFTBARRIER.\nDon\u0027t set it.  Combined with recent ide updates, REQ_SOFTBARRIER is\nnow only used in elevator proper and for discard requests.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "e4025f6c21f1389696c069be2dc647f364925c45",
      "tree": "4d7ee21062293c9a9d398063c22339b47f581283",
      "parents": [
        "a7f557923441186a3cdbabc54f1bcacf42b63bf5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:17 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:33 2009 +0200"
      },
      "message": "block: don\u0027t set REQ_NOMERGE unnecessarily\n\nRQ_NOMERGE_FLAGS already clears defines which REQ flags aren\u0027t\nmergeable.  There is no reason to specify it superflously.  It only\nadds to confusion.  Don\u0027t set REQ_NOMERGE for barriers and requests\nwith specific queueing directive.  REQ_NOMERGE is now exclusively used\nby the merging code.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "a7f557923441186a3cdbabc54f1bcacf42b63bf5",
      "tree": "48e37802174cb98be43d89eb8bc4e466f4d79a02",
      "parents": [
        "a538cd03be6f363d039daa94199c28cfbd508455"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:17 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:33 2009 +0200"
      },
      "message": "block: kill blk_start_queueing()\n\nblk_start_queueing() is identical to __blk_run_queue() except that it\ndoesn\u0027t check for recursion.  None of the current users depends on\nblk_start_queueing() running request_fn directly.  Replace usages of\nblk_start_queueing() with [__]blk_run_queue() and kill it.\n\n[ Impact: removal of mostly duplicate interface function ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "a538cd03be6f363d039daa94199c28cfbd508455",
      "tree": "47d327e3339f5f07c4f4386537fab526310344a7",
      "parents": [
        "db2dbb12dc47a50c7a4c5678f526014063e486f6"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Apr 23 11:05:17 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:33 2009 +0200"
      },
      "message": "block: merge blk_invoke_request_fn() into __blk_run_queue()\n\n__blk_run_queue wraps blk_invoke_request_fn() such that it\nadditionally removes plug and bails out early if the queue is empty.\nBoth extra operations have their own pending mechanisms and don\u0027t\ncause any harm correctness-wise when they are done superflously.\n\nThe only user of blk_invoke_request_fn() being blk_start_queue(),\nthere isn\u0027t much reason to keep both functions around.  Merge\nblk_invoke_request_fn() into __blk_run_queue() and make\nblk_start_queue() use __blk_run_queue() instead.\n\n[ Impact: merge two subtly different internal functions ]\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "db29a6b49674085f136331014ba0eee249c16a2c",
      "tree": "423676abaf2067b2d359a2439e00616812ee55f7",
      "parents": [
        "586cf2681f527ce8b85b9bd57c8b9f7945fbe051"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Apr 21 09:27:03 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:33 2009 +0200"
      },
      "message": "block: enable by default support for large devices and files on 32-bit archs\n\nEnable by default support for large devices and files (CONFIG_LBD):\n\n- With 1TB disks being a commodity hardware it is quite easy to hit 2TB\n  limitation while building RAIDs etc. and many distros have been using\n  CONFIG_LBD\u003dy by default already (at least Fedora 10 and openSUSE 11.1).\n\n- This should also prevent a subtle ext4 filesystem compatibility issue:\n  mke2fs.ext4 defaults to creating filesystems with huge_files feature\n  enabled and such filesystems cannot be later mounted read-write on\n  machines with CONFIG_LBD\u003dn (it should be quite easy to hit this issue\n  when trying to use filesystem created using distro kernel on system\n  running the self-build kernel, think about USB disk enclosures \u0026 co.).\n\nWhile at it:\n\n- Clarify config option help text w.r.t. mounting ext4 filesystems\n  (they can be mounted with CONFIG_LBD\u003dn but in the read-only mode).\n\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "924cec7789f65ab7f022256f6533ecba0747b5f3",
      "tree": "aeb53f094712161d61990d22fecb0874e4ff3f2a",
      "parents": [
        "e686307fdc84f249490e6c9da92fcb2424491f14"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Apr 19 07:00:41 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 28 07:37:28 2009 +0200"
      },
      "message": "block: clear req-\u003eerrors on bio completion only for fs requests\n\nImpact: subtle behavior change\n\nFor fs requests, rq is only carrier of bios and rq error status as a\nwhole doesn\u0027t mean much.  This is the reason why rq-\u003eerrors is being\ncleared on each partial completion of a request as on each partial\ncompletion the error status is transferred to the respective bios.\n\nFor pc requests, rq-\u003eerrors is used to carry error status to the\nissuer and thus __end_that_request_first() doesn\u0027t clear it on such\ncases.\n\nThe condition was fine till now as only fs and pc requests have used\nbio and thus the bio completion path.  However, future changes will\nunify data accesses to bio and all non fs users care about rq error\nstatus.  Clear rq-\u003eerrors on bio completion only for fs requests.\n\nIn general, the implicit clearing is a bit too subtle especially as\nthe meaning of rq-\u003eerrors is completely dependent on low level\ndrivers.  Unifying / cleaning up rq-\u003eerrors usage and letting llds\nmanage it would be better.  TODO comment added.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f2d1f0ae7851be5ebd9613a80dac139270938809",
      "tree": "91efc4740f854b94ea84583a2cd6c34d14eafc8e",
      "parents": [
        "3ac6c9f8a66726745136e46f63600550c3eb6cec"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 23 12:19:38 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 24 08:54:22 2009 +0200"
      },
      "message": "cfq-iosched: cache prio_tree root in cfqq-\u003ep_root\n\nCurrently we look it up from -\u003eioprio, but -\u003eioprio can change if\neither the process gets its IO priority changed explicitly, or if\ncfq decides to temporarily boost it. So if we are unlucky, we can\nend up attempting to remove a node from a different rbtree root than\nwhere it was added.\n\nFix this by using -\u003eorg_ioprio as the prio_tree index, since that\nwill only change for explicit IO priority settings (not for a boost).\nAdditionally cache the rbtree root inside the cfqq, then we don\u0027t have\nto add code to reinsert the cfqq in the prio_tree if IO priority changes.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3ac6c9f8a66726745136e46f63600550c3eb6cec",
      "tree": "93d3217dc15a8183c8e6b29b36862caef01546d7",
      "parents": [
        "26a2ac009c2b07e1959c8864ca23486c1c485587"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 23 12:14:56 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 24 08:54:22 2009 +0200"
      },
      "message": "cfq-iosched: fix bug with aliased request and cooperation detection\n\ncfq_prio_tree_lookup() should return the direct match, yet it always\nreturns zero. Fix that.\n\ncfq_prio_tree_add() assumes that we don\u0027t get a direct match, while\nit is very possible that we do. Using O_DIRECT, you can have different\ncfqq with matching requests, since you don\u0027t have the page cache\nto serialize things for you. Fix this bug by only adding the cfqq if\nthere isn\u0027t an existing match.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "26a2ac009c2b07e1959c8864ca23486c1c485587",
      "tree": "f3c0ae95578cd454f04dc48226b3b6f1ebd1d345",
      "parents": [
        "17d5c8ca7572124c9623045f24b0c21d4aa2b47f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Apr 23 12:13:27 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 24 08:54:22 2009 +0200"
      },
      "message": "cfq-iosched: clear -\u003eprio_trees[] on cfqd alloc\n\nNot strictly needed, but we should make it clear that we init the\nrbtree roots here.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "17d5c8ca7572124c9623045f24b0c21d4aa2b47f",
      "tree": "dfecc3aa2acae305c01238002a3e53d6ae8d3238",
      "parents": [
        "f3c737de8f57b5ce756010c2175f7d574194b30d"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Thu Apr 23 10:32:59 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 24 08:54:21 2009 +0200"
      },
      "message": "block: fix intermittent dm timeout based oops\n\nVery rarely under stress testing of dm, oopses are occuring as\nsomething tampers with an old stack frame.  This has been traced back\nto blk_abort_queue() leaving a timeout_list pointing to the stack.\nThe reason is that sometimes blk_abort_request() won\u0027t delete the\ntimer (if the request is marked as complete but before the timer has\nbeen removed, a small race window).  Fix this by splicing back from\nthe ususally empty list to the q-\u003etimeout_list.\n\nSigned-off-by: Hannes Reinecke \u003chare@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "42dad7647aec49b3ad20dd0cb832b232a6ae514f",
      "tree": "b70d4cb7706f2647e65426e24f078ddf14d6e139",
      "parents": [
        "097102c2d04974bdfcfa16a5f3062d499842139c"
      ],
      "author": {
        "name": "Jerome Marchand",
        "email": "jmarchan@redhat.com",
        "time": "Wed Apr 22 14:01:49 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 24 08:54:21 2009 +0200"
      },
      "message": "block: simplify I/O stat accounting\n\nThis simplifies I/O stat accounting switching code and separates it\ncompletely from I/O scheduler switch code.\n\nRequests are accounted according to the state of their request queue\nat the time of the request allocation. There is no need anymore to\nflush the request queue when switching I/O accounting state.\n\nSigned-off-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "04dc6e71a28d4815bf9431efcafc107bb0ad2792",
      "tree": "dd51f2491b984d9f8f571f2bdc6b51cadb8c686d",
      "parents": [
        "4d00aa47e2337dcfe2d8a7215dbde3765b507167"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Tue Apr 21 07:31:56 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 22 08:35:11 2009 +0200"
      },
      "message": "cfq-iosched: use the default seek distance when there aren\u0027t enough seek samples\n\nIf the cfq io context doesn\u0027t have enough samples yet to provide a mean\nseek distance, then use the default threshold we have for seeky IO instead\nof defaulting to 0.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4d00aa47e2337dcfe2d8a7215dbde3765b507167",
      "tree": "069f0c202e6a3f3017b0a8b4320b31172bcc1071",
      "parents": [
        "b759113499d6c7cb75fab04f56772579308bc0f8"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Tue Apr 21 07:25:04 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 22 08:35:11 2009 +0200"
      },
      "message": "cfq-iosched: make seek_mean converge more quickly\n\nRight now, depending on the first sector to which a process issues I/O,\nthe seek time may start out way out of whack. So make sure we start\nwith 0 sectors in seek, instead of the offset of the first request\nissued.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b759113499d6c7cb75fab04f56772579308bc0f8",
      "tree": "d36a0ea295f675bd678ee30e8191c0358cfc5b74",
      "parents": [
        "71982a409f12c50d011325a4471aa20666bb908d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Apr 17 08:36:50 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 22 08:35:10 2009 +0200"
      },
      "message": "block: make blk_abort_queue() ignore non-request based devices\n\nThere\u0027s nothing to do for those devices, since the timeout handling is\nbased on requests.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "71982a409f12c50d011325a4471aa20666bb908d",
      "tree": "d457415cc6c50b386a6876acf0abc4472f0e5630",
      "parents": [
        "a9e9dc24bbc3e084450a22cf4fb82f5f5d4cbeea"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Apr 17 08:34:48 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 22 08:35:10 2009 +0200"
      },
      "message": "block: include empty disks in /proc/diskstats\n\n/proc/diskstats used to show stats for all disks whether they\u0027re\nzero-sized or not and their non-zero partitions.  Commit\n074a7aca7afa6f230104e8e65eba3420263714a5 accidentally changed the\nbehavior such that it doesn\u0027t print out zero sized disks.  This patch\nimplements DISK_PITER_INCL_EMPTY_PART0 flag to partition iterator and\nuses it in diskstats_show() such that empty part0 is shown in\n/proc/diskstats.\n\nReported and bisectd by Dianel Collins.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Daniel Collins \u003csolemnwarning@solemnwarning.no-ip.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "cd0aca2d550f238d80ba58e7dcade4ea3d0a3aa7",
      "tree": "9581a77ce54247a18963c9d827063923a667add7",
      "parents": [
        "25636e282fe95508cae96bb27f86407aef935817"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Apr 15 22:10:25 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 22 08:35:09 2009 +0200"
      },
      "message": "block: fix queue bounce limit setting\n\nImpact: don\u0027t set GFP_DMA in q-\u003ebounce_gfp unnecessarily\n\nAll DMA address limits are expressed in terms of the last addressable\nunit (byte or page) instead of one plus that.  However, when\ndetermining bounce_gfp for 64bit machines in blk_queue_bounce_limit(),\nit compares the specified limit against 0x100000000UL to determine\nwhether it\u0027s below 4G ending up falsely setting GFP_DMA in\nq-\u003ebounce_gfp.\n\nAs DMA zone is very small on x86_64, this makes larger SG_IO transfers\nvery eager to trigger OOM killer.  Fix it.  While at it, rename the\nparameter to @dma_mask for clarity and convert comment to proper\nwinged style.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "25636e282fe95508cae96bb27f86407aef935817",
      "tree": "3ab5b1ab589c02756211c8faa098f756488ff0de",
      "parents": [
        "23c560a99d78bddf5c251bfa97bce19e4da4b3f3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Apr 15 22:10:24 2009 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 22 08:35:09 2009 +0200"
      },
      "message": "block: fix SG_IO vector request data length handling\n\nImpact: fix SG_IO behavior such that it matches the documentation\n\nSG_IO howto says that if -\u003edxfer_len and sum of iovec disagress, the\nshorter one wins.  However, the current implementation returns -EINVAL\nfor such cases.  Trim iovc if it\u0027s longer than -\u003edxfer_len.\n\nThis patch uses iov_*() helpers which take struct iovec * by casting\nstruct sg_iovec * to it.  sg_iovec is always identical to iovec and\nthis will be further cleaned up with later patches.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a36e71f996e25d6213f57951f7ae1874086ec57e",
      "tree": "1673eeb55b4d84a3d38dda9009ad7ac6f31c5a89",
      "parents": [
        "9481ffdc61738a91baf0f8b7fb20922768ae1b8e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:15:11 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:15:11 2009 +0200"
      },
      "message": "cfq-iosched: add close cooperator code\n\nIf we have processes that are working in close proximity to each\nother on disk, we don\u0027t want to idle wait. Instead allow the close\nprocess to issue a request, getting better aggregate bandwidth.\nThe anticipatory scheduler has similar checks, noop and deadline do\nnot need it since they don\u0027t care about process \u003c-\u003e io mappings.\n\nThe code for CFQ is a little more involved though, since we split\nrequest queues into per-process contexts.\n\nThis fixes a performance problem with eg dump(8), since it uses\nseveral processes in some silly attempt to speed IO up. Even if\ndump(8) isn\u0027t really a valid case (it should be fixed by using\nCLONE_IO), there are other cases where we see close processes\nand where idling ends up hurting performance.\n\nCredit goes to Jeff Moyer \u003cjmoyer@redhat.com\u003e for writing the\ninitial implementation.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9481ffdc61738a91baf0f8b7fb20922768ae1b8e",
      "tree": "3c53ee9144366bf21fe6b9e72d13d453c1012e40",
      "parents": [
        "2d870722965211de072bb36b446a4df99dae07e1"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:14:13 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:14:13 2009 +0200"
      },
      "message": "cfq-iosched: log responsible \u0027cfqq\u0027 in idle timer arm\n\nMakes it easier to read the traces.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2d870722965211de072bb36b446a4df99dae07e1",
      "tree": "e9b884d9969157f87e6a88a0de147af4022301e5",
      "parents": [
        "40bb54d197a10fe86d73073ee8202ba2812a05fa"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:12:46 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:12:46 2009 +0200"
      },
      "message": "cfq-iosched: tweak kick logic a bit more\n\nWe only kick the dispatch for an idling queue, if we think it\u0027s a\n(somewhat) fully merged request. Also allow a kick if we have other\nbusy queues in the system, since we don\u0027t want to risk waiting for\na potential merge in that case. It\u0027s better to get some work done and\nproceed.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "40bb54d197a10fe86d73073ee8202ba2812a05fa",
      "tree": "b0555a89cd9e40abbcdd420cdfb4a9113cd67042",
      "parents": [
        "c2572f2b4ffc27ba79211aceee3bef53a59bb5cd"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:11:10 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:11:10 2009 +0200"
      },
      "message": "cfq-iosched: no need to save interrupts in cfq_kick_queue()\n\nIt\u0027s called from the workqueue handlers from process context, so\nwe always have irqs enabled when entered.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "15afd1cc7b624e1c94fdf824ec5af611050b150c",
      "tree": "d6c213d9c218fe20d7533a74751f55f4859cc741",
      "parents": [
        "86c824b9434e764d01489688e4e38aee43b93fcf"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Wed Apr 15 10:35:31 2009 +0530"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:10:12 2009 +0200"
      },
      "message": "block: Remove code handling bio_alloc failure with __GFP_WAIT\n\nRemove code handling bio_alloc failure with __GFP_WAIT.\nGFP_KERNEL implies __GFP_WAIT.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "91e463c8f5f7a5b09d3d034c01a88567af60c504",
      "tree": "b37b3402f7eb55e9f899d63faf1e2ec520c0a3c7",
      "parents": [
        "d6ceb25e8d8bccf826848c2621a50d02c0a7f4ae"
      ],
      "author": {
        "name": "FUJITA Tomonori",
        "email": "fujita.tomonori@lab.ntt.co.jp",
        "time": "Mon Apr 13 20:03:10 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 12:10:11 2009 +0200"
      },
      "message": "block: fix SG_IO to return a proper error value\n\nblk_rq_unmap_user() returns -EFAULT if a program passes an invalid\naddress to kernel. SG_IO path needs to pass the returned value to user\nspace instead of ignoring it.\n\nSigned-off-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "d6ceb25e8d8bccf826848c2621a50d02c0a7f4ae",
      "tree": "31dec01cb624b27a1c29a5886dd801a67bba525e",
      "parents": [
        "053c525fcf976810f023d96472f414c0d5e6339b"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 14 14:18:16 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 08:28:12 2009 +0200"
      },
      "message": "cfq-iosched: don\u0027t delay queue kick for a merged request\n\n\"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e reports that commit\nb029195dda0129b427c6e579a3bb3ae752da3a93 introduced a regression\nof about 50% with sequential threaded read workloads. The test\ncase is:\n\ntiotest -k0 -k1 -k3 -f 80 -t 32\n\nwhich starts 32 threads each reading a 80MB file. Twiddle the kick\nqueue logic so that we do start IO immediately, if it appears to be\na fully merged request. We can\u0027t really detect that, so just check\nif the request is bigger than a page or not. The assumption is that\nsince single bio issues will first queue a single request with just\none page attached and then later do merges on that, if we already\nhave more than a page worth of data in the request, then the request\nis most likely good to go.\n\nVerified that this doesn\u0027t cause a regression with the test case that\ncommit b029195dda0129b427c6e579a3bb3ae752da3a93 was fixing. It does not,\nwe still see maximum sized requests for the queue-then-merge cases.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1d6bfbdf38f37bcc259e7c56c8c73664772651fb",
      "tree": "c8003b6abcc6a275a4a5f3c156272ec110e3a2b2",
      "parents": [
        "ff6657c6c8ac99444e5dd4c4f7c1dc9271173382"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 08 11:02:08 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 08:28:10 2009 +0200"
      },
      "message": "as-iosched: get rid of private REQ_SYNC/REQ_ASYNC defines\n\nWe can just use the block layer BLK_RW_SYNC/ASYNC defines now.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "ff6657c6c8ac99444e5dd4c4f7c1dc9271173382",
      "tree": "ee970d04347ea49c85ba3f7f783798ee26fb1a36",
      "parents": [
        "b0b78f81a5a3bfe9442fcc3a9c13e298a742556a"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 08 10:58:57 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 08:28:10 2009 +0200"
      },
      "message": "cfq-iosched: get rid of private SYNC/ASYNC defines\n\nWe can just use the block layer BLK_RW_SYNC/ASYNC defines now.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b0b78f81a5a3bfe9442fcc3a9c13e298a742556a",
      "tree": "bd920e9db9da9d90b892ba073ddb07209bdba8a9",
      "parents": [
        "48e70bc18ac81881dedd3aa327c55b924fc41ecf"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 08 10:56:08 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 08:28:10 2009 +0200"
      },
      "message": "cfq-iosched: use rw_is_sync() to see if rw flags are sync or not\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f600abe2de81628c40effbb3f8eaf5af0d291e57",
      "tree": "db8e27854110b68bac454d8dc79c756800dc4afb",
      "parents": [
        "8f3d8ba20e67991b531e9c0227dcd1f99271a32c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 08 14:22:01 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Apr 15 08:28:09 2009 +0200"
      },
      "message": "block: fix bad spelling of quiesce\n\nCredit goes to Andrew Morton for spotting this one.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c93f216b5b985a12a18323e5ca2eb01db3d2f000",
      "tree": "45fa35b290005f8b241dd76b6342875b81432fc3",
      "parents": [
        "c61b79b6ef266890954213a701d8f6021d8c1289",
        "ab3c9c686e22ab264269337ce7b75d9760211198"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:10:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:10:10 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  branch tracer, intel-iommu: fix build with CONFIG_BRANCH_TRACER\u003dy\n  branch tracer: Fix for enabling branch profiling makes sparse unusable\n  ftrace: Correct a text align for event format output\n  Update /debug/tracing/README\n  tracing/ftrace: alloc the started cpumask for the trace file\n  tracing, x86: remove duplicated #include\n  ftrace: Add check of sched_stopped for probe_sched_wakeup\n  function-graph: add proper initialization for init task\n  tracing/ftrace: fix missing include string.h\n  tracing: fix incorrect return type of ns2usecs()\n  tracing: remove CALLER_ADDR2 from wakeup tracer\n  blktrace: fix pdu_len when tracing packet command requests\n  blktrace: small cleanup in blk_msg_write()\n  blktrace: NUL-terminate user space messages\n  tracing: move scripts/trace/power.pl to scripts/tracing/power.pl\n"
    },
    {
      "commit": "6a5d263866d699ebf6843105497afc86ee53de5b",
      "tree": "439195e272631908cdc2e3e44abaf7e1c3447157",
      "parents": [
        "aeeae86859f4319de0a4946b44771d9926eeed54",
        "ffcd7dca3ab78f9f425971756e5e90024157f6be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 11:06:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 11:06:41 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  loop: mutex already unlocked in loop_clr_fd()\n  cfq-iosched: don\u0027t let idling interfere with plugging\n  block: remove unused REQ_UNPLUG\n  cfq-iosched: kill two unused cfqq flags\n  cfq-iosched: change dispatch logic to deal with single requests at the time\n  mflash: initial support\n  cciss: change to discover first memory BAR\n  cciss: kernel scan thread for MSA2012\n  cciss: fix residual count for block pc requests\n  block: fix inconsistency in I/O stat accounting code\n  block: elevator quiescing helpers\n"
    },
    {
      "commit": "132ea5e9aa9ce13f62ba45db8e43ec887d1106e9",
      "tree": "417d93c83ccaa205efab507df56fc985242ba0ae",
      "parents": [
        "0e26da0f2200a2fb51844aaa43e365ea9dd5a93d",
        "cae5a29d3c4ec7c4214966021c9ee827e66bd67b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:53:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:53:02 2009 -0700"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:\n  sata_mv: shorten register names\n  sata_mv: workaround errata SATA#13\n  sata_mv: cosmetic renames\n  sata_mv: workaround errata SATA#26\n  sata_mv: workaround errata PCI#7\n  sata_mv: replace 0x1f with ATA_PIO4 (v2)\n  sata_mv: fix irq mask races\n  sata_mv: revert SoC irq breakage\n  libata: ahci enclosure management bios workaround\n  ata: Add TRIM infrastructure\n  ata_piix: VGN-BX297XP wants the controller power up on suspend\n  libata: Remove some redundant casts from pata_octeon_cf.c\n  pata_artop: typo\n"
    },
    {
      "commit": "b029195dda0129b427c6e579a3bb3ae752da3a93",
      "tree": "7f8752d2fefac40b0b25720cc1b0fbbd8aed173a",
      "parents": [
        "2385327725419a76cfbca7258abd95908b8ba9eb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 07 11:38:31 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 07 11:38:31 2009 +0200"
      },
      "message": "cfq-iosched: don\u0027t let idling interfere with plugging\n\nWhen CFQ is waiting for a new request from a process, currently it\u0027ll\nimmediately restart queuing when it sees such a request. This doesn\u0027t\nwork very well with streamed IO, since we then end up splitting IO\nthat would otherwise have been merged nicely. For a simple dd test,\nthis causes 10x as many requests to be issued as we should have.\nNormally this goes unnoticed due to the low overhead of requests\nat the device side, but some hardware is very sensitive to request\nsizes and there it can cause big slow downs.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2385327725419a76cfbca7258abd95908b8ba9eb",
      "tree": "dee9c8167092707fbd3f1b1c5fdadc33ccf924a5",
      "parents": [
        "75e50984f062de2abc4bd84c642923e2c48ce2ae"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 07 08:59:11 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 07 08:59:11 2009 +0200"
      },
      "message": "block: remove unused REQ_UNPLUG\n\nThe request inherits the unplug flag from the bio, but it isn\u0027t actually\nused. The bio flag stops at __make_request(), which tells it to unplug\nafter submission. Passing it on to the request doesn\u0027t make any sense.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "75e50984f062de2abc4bd84c642923e2c48ce2ae",
      "tree": "57da8b176f77f0823f4a7b42cbf4e25f76bd98a6",
      "parents": [
        "2f5cb7381b737e24c8046fd4aeab571fb71315f5"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 07 08:56:14 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 07 08:56:14 2009 +0200"
      },
      "message": "cfq-iosched: kill two unused cfqq flags\n\nWe only manipulate the must_dispatch and queue_new flags, they are not\ntested anymore. So get rid of them.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2f5cb7381b737e24c8046fd4aeab571fb71315f5",
      "tree": "27b82d748bdf99296b8a914c51dad2fbea90aea3",
      "parents": [
        "3fbed4c61abd8458896e38633d10110cb5a589d4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 07 08:51:19 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 07 08:51:19 2009 +0200"
      },
      "message": "cfq-iosched: change dispatch logic to deal with single requests at the time\n\nThe IO scheduler core calls into the IO scheduler dispatch_request hook\nto move requests from the IO scheduler and into the driver dispatch\nlist. It only does so when the dispatch list is empty. CFQ moves several\nrequests to the dispatch list, which can cause higher latencies if we\nsuddenly have to switch to some important sync IO. Change the logic to\nmove one request at the time instead.\n\nThis should almost be functionally equivalent to what we did before,\nexcept that we now honor \u0027quantum\u0027 as the maximum queue depth at the\ndevice side from any single cfqq. If there\u0027s just a single active\ncfqq, we allow up to 4 times the normal quantum.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "26308eab69aa193f7b3fb50764a64ae14544a39b",
      "tree": "758f6100395a23228d042c3a9d6f7dc1922d7530",
      "parents": [
        "6c7e8cee6a9128eeb7f83c3ad1cb243f77f5cb16"
      ],
      "author": {
        "name": "Jerome Marchand",
        "email": "jmarchan@redhat.com",
        "time": "Fri Mar 27 10:31:51 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 07 08:12:38 2009 +0200"
      },
      "message": "block: fix inconsistency in I/O stat accounting code\n\nThis forces in_flight to be zero when turning off or on the I/O stat\naccounting and stops updating I/O stats in attempt_merge() when\naccounting is turned off.\n\nSigned-off-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6c7e8cee6a9128eeb7f83c3ad1cb243f77f5cb16",
      "tree": "f57ac6ab9e57a4e3317a54d04c39151d3bb942cf",
      "parents": [
        "d508afb437daee7cf07da085b635c44a4ebf9b38"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Mar 27 10:30:47 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Apr 07 08:12:37 2009 +0200"
      },
      "message": "block: elevator quiescing helpers\n\nSimple helper functions to quiesce the request queue. These are\ncurrently only used for switching IO schedulers on-the-fly, but\nwe can use them to properly switch IO accounting on and off as well.\n\nSigned-off-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8feb4d20b4b867e7a44f7486ecb028cc01a564ae",
      "tree": "7ffc0f18d3b336260f405b95faa1a518e99d0c84",
      "parents": [
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@redhat.com",
        "time": "Wed Apr 01 15:01:39 2009 +0100"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Apr 06 20:00:29 2009 -0400"
      },
      "message": "pata_artop: typo\n\nFix a typo (this was in the original patch but was not merged when the code\nfixes were for some reason)\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "aeb6fafb8fa53266d70ca7474fcda2bdaf96524a",
      "tree": "ebe8e0c616a9dbfdfe5184b64d0150ea02d3d1b2",
      "parents": [
        "644b2d99b7a8677a56909a7b1fde31677eba4471"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 06 14:48:07 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 08:04:54 2009 -0700"
      },
      "message": "block: Add flag for telling the IO schedulers NOT to anticipate more IO\n\nBy default, CFQ will anticipate more IO from a given io context if the\npreviously completed IO was sync. This used to be fine, since the only\nsync IO was reads and O_DIRECT writes. But with more \"normal\" sync writes\nbeing used now, we don\u0027t want to anticipate for those.\n\nAdd a bio/request flag that informs the IO scheduler that this is a sync\nrequest that we should not idle for. Introduce WRITE_ODIRECT specifically\nfor O_DIRECT writes, and make sure that the other sync writes set this\nflag.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "644b2d99b7a8677a56909a7b1fde31677eba4471",
      "tree": "5271613f4fd9e6fbf11c16aff8dec8f1946b2234",
      "parents": [
        "4194b1eaf18ddc3eee9597e8800b6d2ffdfd3614"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 06 14:48:06 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 08:04:54 2009 -0700"
      },
      "message": "block: enabling plugging on SSD devices that don\u0027t do queuing\n\nFor the older SSD devices that don\u0027t do command queuing, we do want to\nenable plugging to get better merging.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1faa16d22877f4839bd433547d770c676d1d964c",
      "tree": "9a0d50be1ef0358c1f53d7107413100904e7d526",
      "parents": [
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Apr 06 14:48:01 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 08:04:53 2009 -0700"
      },
      "message": "block: change the request allocation/congestion logic to be sync/async based\n\nThis makes sure that we never wait on async IO for sync requests, instead\nof doing the split on writes vs reads.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "714f83d5d9f7c785f622259dad1f4fad12d64664",
      "tree": "20563541ae438e11d686b4d629074eb002a481b7",
      "parents": [
        "8901e7ffc2fa78ede7ce9826dbad68a3a25dc2dc",
        "645dae969c3b8651c5bc7c54a1835ec03820f85f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)\n  tracing, net: fix net tree and tracing tree merge interaction\n  tracing, powerpc: fix powerpc tree and tracing tree interaction\n  ring-buffer: do not remove reader page from list on ring buffer free\n  function-graph: allow unregistering twice\n  trace: make argument \u0027mem\u0027 of trace_seq_putmem() const\n  tracing: add missing \u0027extern\u0027 keywords to trace_output.h\n  tracing: provide trace_seq_reserve()\n  blktrace: print out BLK_TN_MESSAGE properly\n  blktrace: extract duplidate code\n  blktrace: fix memory leak when freeing struct blk_io_trace\n  blktrace: fix blk_probes_ref chaos\n  blktrace: make classic output more classic\n  blktrace: fix off-by-one bug\n  blktrace: fix the original blktrace\n  blktrace: fix a race when creating blk_tree_root in debugfs\n  blktrace: fix timestamp in binary output\n  tracing, Text Edit Lock: cleanup\n  tracing: filter fix for TRACE_EVENT_FORMAT events\n  ftrace: Using FTRACE_WARN_ON() to check \"freed record\" in ftrace_release()\n  x86: kretprobe-booster interrupt emulation code fix\n  ...\n\nFix up trivial conflicts in\n arch/parisc/include/asm/ftrace.h\n include/linux/memory.h\n kernel/extable.c\n kernel/module.c\n"
    },
    {
      "commit": "90975ef71246c5c688ead04e8ff6f36dc92d28b3",
      "tree": "eda44b2efe91509719b0e62219c2efec13a9e762",
      "parents": [
        "cab4e4c43f92582a2bfc026137b3d8a175bd0360",
        "558f6ab9106e6be701acb0257e7171df1bbccf04"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:33:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:33:07 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask: (36 commits)\n  cpumask: remove cpumask allocation from idle_balance, fix\n  numa, cpumask: move numa_node_id default implementation to topology.h, fix\n  cpumask: remove cpumask allocation from idle_balance\n  x86: cpumask: x86 mmio-mod.c use cpumask_var_t for downed_cpus\n  x86: cpumask: update 32-bit APM not to mug current-\u003ecpus_allowed\n  x86: microcode: cleanup\n  x86: cpumask: use work_on_cpu in arch/x86/kernel/microcode_core.c\n  cpumask: fix CONFIG_CPUMASK_OFFSTACK\u003dy cpu hotunplug crash\n  numa, cpumask: move numa_node_id default implementation to topology.h\n  cpumask: convert node_to_cpumask_map[] to cpumask_var_t\n  cpumask: remove x86 cpumask_t uses.\n  cpumask: use cpumask_var_t in uv_flush_tlb_others.\n  cpumask: remove cpumask_t assignment from vector_allocation_domain()\n  cpumask: make Xen use the new operators.\n  cpumask: clean up summit\u0027s send_IPI functions\n  cpumask: use new cpumask functions throughout x86\n  x86: unify cpu_callin_mask/cpu_callout_mask/cpu_initialized_mask/cpu_sibling_setup_mask\n  cpumask: convert struct cpuinfo_x86\u0027s llc_shared_map to cpumask_var_t\n  cpumask: convert node_to_cpumask_map[] to cpumask_var_t\n  x86: unify 32 and 64-bit node_to_cpumask_map\n  ...\n"
    },
    {
      "commit": "b1dbb67911fecb290db3f566281bcd9ccc9dc6df",
      "tree": "f55add06f624f7fed8a68372d8c96b583ca578fe",
      "parents": [
        "492f59f526d95e73028f57bff475b4bbe3c8cb72",
        "70f454408e68fdba2c2529ab7d6ec3c3525e59f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:33:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:33:30 2009 -0700"
      },
      "message": "Merge branch \u0027ipi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027ipi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  s390: remove arch specific smp_send_stop()\n  panic: clean up kernel/panic.c\n  panic, smp: provide smp_send_stop() wrapper on UP too\n  panic: decrease oops_in_progress only after having done the panic\n  generic-ipi: eliminate WARN_ON()s during oops/panic\n  generic-ipi: cleanups\n  generic-ipi: remove CSD_FLAG_WAIT\n  generic-ipi: remove kmalloc()\n  generic IPI: simplify barriers and locking\n"
    },
    {
      "commit": "e2494e1b42ebac402324105d57646489d19e2b01",
      "tree": "bd8d0beac5d8b8a7e6ff209c265b015a56fed1fd",
      "parents": [
        "7635b03adf3d7b84da7649b81efa91e6ebf11b85"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 13:43:26 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 15:29:26 2009 +0200"
      },
      "message": "blktrace: fix pdu_len when tracing packet command requests\n\nImpact: output all of packet commands - not just the first 4 / 8 bytes\n\nSince commit d7e3c3249ef23b4617393c69fe464765b4ff1645 (\"block: add\nlarge command support\"), struct request-\u003ecmd has been changed from\nunsinged char cmd[BLK_MAX_CDB] to unsigned char *cmd.\n\nv1 -\u003e v2: by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\n\n- make sure rq-\u003ecmd_len is always intialized, and then we can use\n  rq-\u003ecmd_len instead of BLK_MAX_CDB.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nLKML-Reference: \u003c49D4507E.2060602@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8302294f43250dc337108c51882a6007f2b1e2e0",
      "tree": "85acd4440799c46a372df9cad170fa0c21e59096",
      "parents": [
        "4fe70410d9a219dabb47328effccae7e7f2a6e26",
        "2e572895bf3203e881356a4039ab0fa428ed2639"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 01 21:54:19 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 02 00:49:02 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/core-v2\u0027 into tracing-for-linus\n\nConflicts:\n\tinclude/linux/slub_def.h\n\tlib/Kconfig.debug\n\tmm/slob.c\n\tmm/slub.c\n"
    },
    {
      "commit": "65fb0d23fcddd8697c871047b700c78817bdaa43",
      "tree": "119e6e5f276622c4c862f6c9b6d795264ba1603a",
      "parents": [
        "8c083f081d0014057901c68a0a3e0f8ca7ac8d23",
        "dfbbe89e197a77f2c8046a51c74e33e35f878080"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 23:53:32 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 23:53:32 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpumask-for-linus\n\nConflicts:\n\tarch/x86/kernel/cpu/common.c\n"
    },
    {
      "commit": "7c730ccdc1188b97f5c8cb690906242c7ed75c22",
      "tree": "17ccd927e70dadaf59104c53cce892474eb539b2",
      "parents": [
        "8d735b4148d46446e64d72b22ef0344ee8dc02fa",
        "82268da1b130f763d22d04f7d016bbf6fc8815c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 13:40:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 13:48:38 2009 -0700"
      },
      "message": "Merge branch \u0027percpu-cpumask-x86-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027percpu-cpumask-x86-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (682 commits)\n  percpu: fix spurious alignment WARN in legacy SMP percpu allocator\n  percpu: generalize embedding first chunk setup helper\n  percpu: more flexibility for @dyn_size of pcpu_setup_first_chunk()\n  percpu: make x86 addr \u003c-\u003e pcpu ptr conversion macros generic\n  linker script: define __per_cpu_load on all SMP capable archs\n  x86: UV: remove uv_flush_tlb_others() WARN_ON\n  percpu: finer grained locking to break deadlock and allow atomic free\n  percpu: move fully free chunk reclamation into a work\n  percpu: move chunk area map extension out of area allocation\n  percpu: replace pcpu_realloc() with pcpu_mem_alloc() and pcpu_mem_free()\n  x86, percpu: setup reserved percpu area for x86_64\n  percpu, module: implement reserved allocation and use it for module percpu variables\n  percpu: add an indirection ptr for chunk page map access\n  x86: make embedding percpu allocator return excessive free space\n  percpu: use negative for auto for pcpu_setup_first_chunk() arguments\n  percpu: improve first chunk initial area map handling\n  percpu: cosmetic renames in pcpu_setup_first_chunk()\n  percpu: clean up percpu constants\n  x86: un-__init fill_pud/pmd/pte\n  x86: remove vestigial fix_ioremap prototypes\n  ...\n\nManually merge conflicts in arch/ia64/kernel/irq_ia64.c\n"
    },
    {
      "commit": "d54b3538b0bfb31351d02d1669d4a978d2abfc5f",
      "tree": "5ce539ecba525b30bbfb1c46c55487099264947e",
      "parents": [
        "5d80f8e5a9dc9c9a94d4aeaa567e219a808b8a4a",
        "af50bb993dfa673cf21ab812efe620d7e0c36319"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 13:30:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 13:30:43 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (119 commits)\n  [SCSI] scsi_dh_rdac: Retry for NOT_READY check condition\n  [SCSI] mpt2sas: make global symbols unique\n  [SCSI] sd: Make revalidate less chatty\n  [SCSI] sd: Try READ CAPACITY 16 first for SBC-2 devices\n  [SCSI] sd: Refactor sd_read_capacity()\n  [SCSI] mpt2sas v00.100.11.15\n  [SCSI] mpt2sas: add MPT2SAS_MINOR(221) to miscdevice.h\n  [SCSI] ch: Add scsi type modalias\n  [SCSI] 3w-9xxx: add power management support\n  [SCSI] bsg: add linux/types.h include to bsg.h\n  [SCSI] cxgb3i: fix function descriptions\n  [SCSI] libiscsi: fix possbile null ptr session command cleanup\n  [SCSI] iscsi class: remove host no argument from session creation callout\n  [SCSI] libiscsi: pass session failure a session struct\n  [SCSI] iscsi lib: remove qdepth param from iscsi host allocation\n  [SCSI] iscsi lib: have lib create work queue for transmitting IO\n  [SCSI] iscsi class: fix lock dep warning on logout\n  [SCSI] libiscsi: don\u0027t cap queue depth in iscsi modules\n  [SCSI] iscsi_tcp: replace scsi_debug/tcp_debug logging with iscsi conn logging\n  [SCSI] libiscsi_tcp: replace tcp_debug/scsi_debug logging with session/conn logging\n  ...\n"
    },
    {
      "commit": "6e15cf04860074ad032e88c306bea656bbdd0f22",
      "tree": "c346383bb7563e8d66b2f4a502f875b259c34870",
      "parents": [
        "be0ea69674ed95e1e98cb3687a241badc756d228",
        "60db56422043aaa455ac7f858ce23c273220f9d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 21:39:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 27 17:28:43 2009 +0100"
      },
      "message": "Merge branch \u0027core/percpu\u0027 into percpu-cpumask-x86-for-linus-2\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tarch/x86/include/asm/fixmap_64.h\n\tarch/x86/include/asm/setup.h\n\tkernel/irq/handle.c\n\nSemantic merge:\n        arch/x86/include/asm/fixmap.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7cbbf1bf17e3c706f874e867f7b744e1c86fed9",
      "tree": "93076e12227e81f711402641146a4644d31a3c57",
      "parents": [
        "1cd96c242a829d52f7a5ae98f554ca9775429685"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Mar 24 12:37:50 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Mar 26 11:01:25 2009 +0100"
      },
      "message": "bsg: Remove bogus check against request_queue-\u003emax_sectors\n\nbsg submits REQ_TYPE_BLOCK_PC so the right check is max_hw_sectors.\nBut I\u0027ve removed this check because right after, bsg proceeds with\ncalling blk_rq_map_user() which does all the right checks.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1cd96c242a829d52f7a5ae98f554ca9775429685",
      "tree": "018d3ab9fa0d6e2bcd739483ac2693f6f71db96b",
      "parents": [
        "f028f3b2f987ebc61cef382ab7a5c449917b728e"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Mar 24 12:35:07 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Mar 26 11:01:23 2009 +0100"
      },
      "message": "block: WARN in __blk_put_request() for potential bio leak\n\nPut a WARN_ON in __blk_put_request if it is about to\nleak bio(s). This is a serious bug that can happen in error\nhandling code paths.\n\nFor this to work I have fixed a couple of places in block/ where\nrequest-\u003ebio !\u003d NULL ownership was not honored. And a small cleanup\nat sg_io() while at it.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "05378940caf979a8655c18b18a17213dcfa52412",
      "tree": "b72d29396fd6aa6f4485af638090066c7280325b",
      "parents": [
        "0061d38642244892e17156f005bd7055fe744644"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Mar 24 12:23:40 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 24 12:35:17 2009 +0100"
      },
      "message": "bsg: add support for tail queuing\n\nCurrently inherited from sg.c bsg will submit asynchronous request\n at the head-of-the-queue, (using \"at_head\" set in the call to\n blk_execute_rq_nowait()). This is bad in situation where the queues\n are full, requests will execute out of order, and can cause\n starvation of the first submitted requests.\n\nThe sg_io_v4-\u003eflags member is used and a bit is allocated to denote the\nQ_AT_TAIL. Zero is to queue at_head as before, to be compatible with old\ncode at the write/read path. SG_IO code path behavior was changed so to\nbe the same as write/read behavior. SG_IO was very rarely used and breaking\ncompatibility with it is OK at this stage.\n\nsg_io_hdr at sg.h also has a flags member and uses 3 bits from the first\nnibble and one bit from the last nibble. Even though none of these bits\nare supported by bsg, The second nibble is allocated for use by bsg. Just\nin case.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nCC: Douglas Gilbert \u003cdgilbert@interlog.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "50e174931051bf4849cd7931667bb0a4d681ff60",
      "tree": "1d9bcc2600a83a3dbafe588b946e4abaa9757282",
      "parents": [
        "f3b144aa7f2861e1024682af3bf3dbf1c29184b9"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Mar 06 11:12:17 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 24 12:35:16 2009 +0100"
      },
      "message": "block: get rid of unused blkdev_free_rq() define\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f3b144aa7f2861e1024682af3bf3dbf1c29184b9",
      "tree": "176e652f3340bc2ba199f4848b73dd04f45975d9",
      "parents": [
        "10cbda97e73c7d537d7174eadb2d098484f8f1da"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Mar 06 08:48:33 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 24 12:35:16 2009 +0100"
      },
      "message": "block: remove various blk_queue_*() setting functions in blk_init_queue_node()\n\nIt calls blk_queue_make_request(), which sets the identical set of limits.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "cd80a8142efa3468c2cd9fb52845f334c3220d54",
      "tree": "919e88994bd3c09b34ce852d0a09bb0655d231d0",
      "parents": [
        "641cd4cfcdc71ce01535b31cc4d57d59a1fae1fc",
        "a98fe7f3425c6b4e90de16f8da63b0429a8fed08"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 11:05:58 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 11:05:58 2009 +0100"
      },
      "message": "Merge branch \u0027x86/core\u0027 into core/ipi\n"
    },
    {
      "commit": "c69fc56de1df5769f2ec69c915c7ad5afe63804c",
      "tree": "18cc8d2ad5d6643edf8b73a3a7d26c55b2125d25",
      "parents": [
        "d95c3578120e5bc4784069439f00ccb1b5f87717"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Mar 13 14:49:46 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Mar 13 14:49:46 2009 +1030"
      },
      "message": "cpumask: use topology_core_cpumask/topology_thread_cpumask instead of cpu_core_map/cpu_sibling_map\n\nImpact: cleanup\n\nThis is presumably what those definitions are for, and while all archs\ndefine cpu_core_map/cpu_sibling map, that\u0027s changing (eg. x86 wants to\nchange it to a pointer).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "25d500067d5a666d1336598d1b324793554e5496",
      "tree": "3402308c4c69a66d02ce55f5c165e242fad2a8a9",
      "parents": [
        "0b13fda1e0936b3d64c4c407f183d33fa6bd2ad4",
        "9ead64974b05501bbac0d63a47c99fa786d064ba"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 02:14:25 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 02:14:25 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into core/ipi\n"
    },
    {
      "commit": "f290f1970f01287eaaffc798a677594a57ebd65e",
      "tree": "534b3ab262c3c791f80c8fd32dee7192395973dc",
      "parents": [
        "97218a1499391b174ea95e05b7a40fbb73e79813"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Sun Feb 08 21:59:48 2009 -0600"
      },
      "committer": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Thu Mar 12 12:58:13 2009 -0500"
      },
      "message": "[SCSI] Make scsi.h independent of the rest of the scsi includes\n\nThis allows it to compile and be used on the ps3 platform that wants\nto use the #define values in scsi.h without actually having\nCONFIG_SCSI set.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\n"
    },
    {
      "commit": "12e87e36e0141c08dbc8b2177c93c75fb18ad7e5",
      "tree": "a82ac66b372ddc7ee97fe095222232875b6737d4",
      "parents": [
        "42b40b3d55f5782b00b74d9105c3565fbfa5cb80",
        "c3ffc7a40b7e94b094efe1c8ab4e24370a782b65",
        "7bffc23e56e92c14b787bf4d95249a32085bfed5",
        "7a203f3b089be4410fe065dd9927027eade94557"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 09:56:25 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 09:56:25 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/doc\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/printk\u0027 and \u0027linus\u0027 into tracing/core\n"
    },
    {
      "commit": "467c88fee51e2ae862e9485245687da0730e29aa",
      "tree": "244aa2469e31cb53d7e04ec0768b506ccad71932",
      "parents": [
        "1f442d70c84aa798e243e721eba728a98434cd86",
        "7ab152470e8416ef2a44c800fdc157e2192f2974",
        "8827247ffcc9e880cbe4705655065cf011265157",
        "d1a8e7792047f7dca7eb5759250e2c12800bf262",
        "0feca851c1b3cb4ebfa3149144b3d5de0879ebaa",
        "d0fc63f7bd07cb779a06dc1cdd0c5a14e7f5d562",
        "7a203f3b089be4410fe065dd9927027eade94557",
        "3a450de1365d20afde406f0d9b2931a5e4a4fd6a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 09:26:38 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 10 09:26:38 2009 +0100"
      },
      "message": "Merge branches \u0027x86/apic\u0027, \u0027x86/asm\u0027, \u0027x86/fixmap\u0027, \u0027x86/memtest\u0027, \u0027x86/mm\u0027, \u0027x86/urgent\u0027, \u0027linus\u0027 and \u0027core/percpu\u0027 into x86/core\n"
    },
    {
      "commit": "59247eaea50cc68cc6ce3d3fd3855f3301b65c96",
      "tree": "76548e4273bb26568810095b14d62a4feaaf86a4",
      "parents": [
        "a3941ec101a5ec54c1e929730afeb196441a171e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Mar 06 08:55:24 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Mar 06 08:55:24 2009 +0100"
      },
      "message": "block: fix missing bio back/front segment size setting in blk_recount_segments()\n\nCommit 1e42807918d17e8c93bf14fbb74be84b141334c1 introduced a bug where we\ndon\u0027t get front/back segment sizes in the bio in blk_recount_segments().\nFix this by tracking the back bio as well as the front bio in\n__blk_recalc_rq_segments(), this also cleans up the interface by getting\nrid of the segment size pointer passing.\n\nTested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "91d75e209bd59695f0708d66964d928d45b3b2f3",
      "tree": "32cab1359d951e4193bebb181a0f0319824a2b95",
      "parents": [
        "9976b39b5031bbf76f715893cf080b6a17683881",
        "8b0e5860cb099d7958d13b00ffbc35ad02735700"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 02:29:19 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 02:29:19 2009 +0100"
      },
      "message": "Merge branch \u0027x86/core\u0027 into core/percpu\n"
    },
    {
      "commit": "f701d354075914296474d062f18fc8ee681a2318",
      "tree": "4c39db49f4bc9827a1a0dabc6a83fb30bd2c7ac4",
      "parents": [
        "1b49061d400c9e51e3ac2aac026a099fe599b9bb",
        "64e71303e44f3697e4568147caa966de74bdb4fb"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 27 09:04:43 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 27 09:04:43 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027linus\u0027 into tracing/core\n"
    },
    {
      "commit": "1e42807918d17e8c93bf14fbb74be84b141334c1",
      "tree": "55b15f0f6b2c666efeb938d064f24fdd268faf40",
      "parents": [
        "5e4c91c84b194b26cf592779e451f4b5be777cba"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Feb 23 09:03:10 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Feb 26 10:45:48 2009 +0100"
      },
      "message": "block: reduce stack footprint of blk_recount_segments()\n\nblk_recalc_rq_segments() requires a request structure passed in, which\nwe don\u0027t have from blk_recount_segments(). So the latter allocates one on\nthe stack, using \u003e 400 bytes of stack for that. This can cause us to spill\nover one page of stack from ext4 at least:\n\n 0)     4560     400   blk_recount_segments+0x43/0x62\n 1)     4160      32   bio_phys_segments+0x1c/0x24\n 2)     4128      32   blk_rq_bio_prep+0x2a/0xf9\n 3)     4096      32   init_request_from_bio+0xf9/0xfe\n 4)     4064     112   __make_request+0x33c/0x3f6\n 5)     3952     144   generic_make_request+0x2d1/0x321\n 6)     3808      64   submit_bio+0xb9/0xc3\n 7)     3744      48   submit_bh+0xea/0x10e\n 8)     3696     368   ext4_mb_init_cache+0x257/0xa6a [ext4]\n 9)     3328     288   ext4_mb_regular_allocator+0x421/0xcd9 [ext4]\n10)     3040     160   ext4_mb_new_blocks+0x211/0x4b4 [ext4]\n11)     2880     336   ext4_ext_get_blocks+0xb61/0xd45 [ext4]\n12)     2544      96   ext4_get_blocks_wrap+0xf2/0x200 [ext4]\n13)     2448      80   ext4_da_get_block_write+0x6e/0x16b [ext4]\n14)     2368     352   mpage_da_map_blocks+0x7e/0x4b3 [ext4]\n15)     2016     352   ext4_da_writepages+0x2ce/0x43c [ext4]\n16)     1664      32   do_writepages+0x2d/0x3c\n17)     1632     144   __writeback_single_inode+0x162/0x2cd\n18)     1488      96   generic_sync_sb_inodes+0x1e3/0x32b\n19)     1392      16   sync_sb_inodes+0xe/0x10\n20)     1376      48   writeback_inodes+0x69/0xb3\n21)     1328     208   balance_dirty_pages_ratelimited_nr+0x187/0x2f9\n22)     1120     224   generic_file_buffered_write+0x1d4/0x2c4\n23)      896     176   __generic_file_aio_write_nolock+0x35f/0x393\n24)      720      80   generic_file_aio_write+0x6c/0xc8\n25)      640      80   ext4_file_write+0xa9/0x137 [ext4]\n26)      560     320   do_sync_write+0xf0/0x137\n27)      240      48   vfs_write+0xb3/0x13c\n28)      192      64   sys_write+0x4c/0x74\n29)      128     128   system_call_fastpath+0x16/0x1b\n\nSplit the segment counting out into a __blk_recalc_rq_segments() helper\nto avoid allocating an onstack request just for checking the physical\nsegment count.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "9e8c0bccdc944bd09361672d47660810c027bcaa",
      "tree": "2974fec8cbfdddc52d0a051b26dadc7898079d14",
      "parents": [
        "b2bf96833c5782befc3e7700f791fde754a47b01"
      ],
      "author": {
        "name": "Márton Németh",
        "email": "nm127@freemail.hu",
        "time": "Fri Feb 20 08:12:51 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Feb 26 10:45:48 2009 +0100"
      },
      "message": "block: add documentation for register_blkdev()\n\nAdd documentation for register_blkdev() function and for the parameters.\n\nSigned-off-by: Márton Németh \u003cnm127@freemail.hu\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "6e2756376c706e4da3454a272947983f92e80a7e",
      "tree": "3a54c5dd97921ae869bb6122a69af42d9161ee3e",
      "parents": [
        "8969a5ede0f9e17da4b943712429aef2c9bcd82b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 25 13:59:48 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 14:13:44 2009 +0100"
      },
      "message": "generic-ipi: remove CSD_FLAG_WAIT\n\nOleg noticed that we don\u0027t strictly need CSD_FLAG_WAIT, rework\nthe code so that we can use CSD_FLAG_LOCK for both purposes.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0edcf8d6926f4038443dbc24e319530177ca0353",
      "tree": "6010af62f73d01ab673d5106f310eaf4f4228e32",
      "parents": [
        "87b203079ed949de52f0d92aeae20e5e0116c12f",
        "40150d37be7f7949b2ec07d511244da856647d84"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 24 21:52:45 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 24 21:52:45 2009 +0100"
      },
      "message": "Merge branch \u0027tj-percpu\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into core/percpu\n\nConflicts:\n\tarch/x86/include/asm/pgtable.h\n"
    },
    {
      "commit": "313e458f81ec3852106c5a83830fe0d4f405a71a",
      "tree": "682cd5b6d7dc4e0e9eccdcc7915820dd33c87a34",
      "parents": [
        "b36128c830a8f5bd7d4981f5b0b69950f5928ee6"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Feb 20 16:29:08 2009 +0900"
      },
      "message": "alloc_percpu: add align argument to __alloc_percpu.\n\nThis prepares for a real __alloc_percpu, by adding an alignment argument.\nOnly one place uses __alloc_percpu directly, and that\u0027s for a string.\n\ntj: af_inet also uses __alloc_percpu(), update it.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "72c26c9a26ea7f2f3d14f162c2ebb07805f724ea",
      "tree": "bf1b4bc0b69f96c79474f9edb9cf0e811c95f2dc",
      "parents": [
        "37bd824a35a60abc73e5fa8816bd5f50c913d69b",
        "ba95fd47d177d46743ad94055908d22840370e06"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 09:00:35 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 19 09:00:35 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into tracing/blktrace\n\nConflicts:\n\tblock/blktrace.c\n\nSemantic merge:\n\tkernel/trace/blktrace.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "be987fdb55a4726e2fcbab7501f89276bdb57288",
      "tree": "bc92a402a4d710718883e67eeab6e0ced221e7ff",
      "parents": [
        "41b8c853a495438208faa5be03bbb0050859163b"
      ],
      "author": {
        "name": "Hannes Reinecke",
        "email": "hare@suse.de",
        "time": "Wed Feb 18 10:30:15 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Feb 18 10:34:16 2009 +0100"
      },
      "message": "block: fix deadlock in blk_abort_queue() for drivers that readd to timeout list\n\nblk_abort_queue() iterates the timeout list and aborts each request on the\nlist, but if the driver error handling readds a request to the timeout list\nduring this processing, we could be looping forever. Fix this by splicing\ncurrent entries to a local list and run over that list instead.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "41b8c853a495438208faa5be03bbb0050859163b",
      "tree": "912541723b38a52c68c46bdb1de567972e239594",
      "parents": [
        "78f707bfc723552e8309b7c38a8d0cc51012e813"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Wed Feb 18 10:33:59 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Feb 18 10:33:59 2009 +0100"
      },
      "message": "block: fix booting from partitioned md array\n\nHi Tejun,\n\n it looks like your commit:\n\n   block: don\u0027t depend on consecutive minor space\n   f331c0296f2a9fee0d396a70598b954062603015\n\n broke a particular case for booting from partitioned md/raid devices.\n That is the second time this has been broken recently.  The previous\n time was fixed by\n\n   block: do_mounts - accept root\u003d\u003cnon-existant partition\u003e\n   30f2f0eb4bd2c43d10a8b0d872c6e5ad8f31c9a0\n\n Because the data isn\u0027t available when an md device is first created\n (we add disks and set it up after creation), the initial partition\n scan finds nothing.  It is not until the device is opened that\n another partition scan happens and finds something.\n\n So at the point where the kernel parameter \"root\u003d/dev/md_d0p1\" is\n being parsed, md_d0 exists, but md_d0p1 does not.\n However if we let blk_lookup_devt return the correct device number\n even though the device doesn\u0027t exist, then the attempt to mount it\n will successfully find the partition.\n\n I have tried in the past to find a way to get the partition table to\n be read as soon as the array is assembled but that proved impossible\n (at the time).  I don\u0027t remember the details, and could possibly\n revisit it.  However it would be really nice if blk_lookup_devt\n could be adjusted to again accept non existant partitions.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "93dbb393503d53cd226e5e1f0088fe8f4dbaa2b8",
      "tree": "790365e207951cf6810e8995f3141ddc0b74519b",
      "parents": [
        "c1c201200a359cf3b6e2e36a4236cdca77a3cd8e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Feb 16 10:25:40 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Feb 18 10:32:00 2009 +0100"
      },
      "message": "block: fix bad definition of BIO_RW_SYNC\n\nWe can\u0027t OR shift values, so get rid of BIO_RW_SYNC and use BIO_RW_SYNCIO\nand BIO_RW_UNPLUG explicitly. This brings back the behaviour from before\n213d9417fec62ef4c3675621b9364a667954d4dd.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "c1c201200a359cf3b6e2e36a4236cdca77a3cd8e",
      "tree": "e214a2773f20b814cb8cc8c5509066cd9ec98a1a",
      "parents": [
        "5955c7a2cfb6a35429adea5dc480002b15ca8cfc"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Feb 03 07:47:29 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Feb 18 10:32:00 2009 +0100"
      },
      "message": "bsg: Fix sense buffer bug in SG_IO\n\nWhen submitting requests via SG_IO, which does a sync io, a\nbsg_command is not allocated. So an in-Kernel sense_buffer was not\nset. However when calling blk_execute_rq() with no sense buffer\none is provided from the stack. Now bsg at blk_complete_sgv4_hdr_rq()\nwould check if rq-\u003esense_len and a sense was requested by sg_io_v4\nthe rq-\u003esense was copy_user() back, but by now it is already mangled\nstack memory.\n\nI have fixed that by forcing a sense_buffer when calling bsg_map_hdr().\nThe bsg_command-\u003esense is provided in the write/read path like before,\nand on-the-stack buffer is provided when doing SG_IO.\n\nI have also fixed a dprintk message to print rq-\u003eerrors in hex because\nof the scsi bit-field use of this member. For other block devices it\ndoes not matter anyway.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nAcked-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2db270a80b8f2238e536876cfb3987af02684df8",
      "tree": "352bf63f9d48cf686a2a36c157707789a29fe7d1",
      "parents": [
        "44b0635481437140b0e29d6023f05e805d5e7620"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Feb 07 20:46:45 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Feb 09 10:51:02 2009 +0100"
      },
      "message": "tracing/blktrace: move the tracing file to kernel/trace\n\nImpact: cleanup\n\nMove blktrace.c to kernel/trace, also move its config entry.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b6f11df26fdc28324cf9c9e3b77f2dc985c1bb13",
      "tree": "e03b4b8b9dad8a2d3f81574c10aab8fb7a779cbb",
      "parents": [
        "51a763dd84253bab1d0a1e68e11a7753d1b702ca"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Feb 05 18:02:00 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 06 01:01:41 2009 +0100"
      },
      "message": "trace: Call tracing_reset_online_cpus before tracer-\u003einit()\n\nImpact: cleanup\n\nTo make it easy for ftrace plugin writers, as this was open coded in\nthe existing plugins\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nAcked-by: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "51a763dd84253bab1d0a1e68e11a7753d1b702ca",
      "tree": "2cc2cf0509db480391c585786285267e360c1338",
      "parents": [
        "0a9877514c4fed10a70720293b37213dd172ee3e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Feb 05 16:14:13 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 06 01:01:41 2009 +0100"
      },
      "message": "tracing: Introduce trace_buffer_{lock_reserve,unlock_commit}\n\nImpact: new API\n\nThese new functions do what previously was being open coded, reducing\nthe number of details ftrace plugin writers have to worry about.\n\nIt also standardizes the handling of stacktrace, userstacktrace and\nother trace options we may introduce in the future.\n\nWith this patch, for instance, the blk tracer (and some others already\nin the tree) can use the \"userstacktrace\" /d/tracing/trace_options\nfacility.\n\n$ codiff /tmp/vmlinux.before /tmp/vmlinux.after\nlinux-2.6-tip/kernel/trace/trace.c:\n  trace_vprintk              |   -5\n  trace_graph_return         |  -22\n  trace_graph_entry          |  -26\n  trace_function             |  -45\n  __ftrace_trace_stack       |  -27\n  ftrace_trace_userstack     |  -29\n  tracing_sched_switch_trace |  -66\n  tracing_stop               |   +1\n  trace_seq_to_user          |   -1\n  ftrace_trace_special       |  -63\n  ftrace_special             |   +1\n  tracing_sched_wakeup_trace |  -70\n  tracing_reset_online_cpus  |   -1\n 13 functions changed, 2 bytes added, 355 bytes removed, diff: -353\n\nlinux-2.6-tip/block/blktrace.c:\n  __blk_add_trace |  -58\n 1 function changed, 58 bytes removed, diff: -58\n\nlinux-2.6-tip/kernel/trace/trace.c:\n  trace_buffer_lock_reserve  |  +88\n  trace_buffer_unlock_commit |  +86\n 2 functions changed, 174 bytes added, diff: +174\n\n/tmp/vmlinux.after:\n 16 functions changed, 176 bytes added, 413 bytes removed, diff: -237\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nAcked-by: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0a9877514c4fed10a70720293b37213dd172ee3e",
      "tree": "7f21548126d448d96116f57f2c7927fa2b2c7ddd",
      "parents": [
        "dac74940289f350c2590bec92737833bad608541"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Feb 05 16:12:56 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 06 01:01:40 2009 +0100"
      },
      "message": "ring_buffer: remove unused flags parameter\n\nImpact: API change, cleanup\n\n\u003eFrom ring_buffer_{lock_reserve,unlock_commit}.\n\n$ codiff /tmp/vmlinux.before /tmp/vmlinux.after\nlinux-2.6-tip/kernel/trace/trace.c:\n  trace_vprintk              |  -14\n  trace_graph_return         |  -14\n  trace_graph_entry          |  -10\n  trace_function             |   -8\n  __ftrace_trace_stack       |   -8\n  ftrace_trace_userstack     |   -8\n  tracing_sched_switch_trace |   -8\n  ftrace_trace_special       |  -12\n  tracing_sched_wakeup_trace |   -8\n 9 functions changed, 90 bytes removed, diff: -90\n\nlinux-2.6-tip/block/blktrace.c:\n  __blk_add_trace |   -1\n 1 function changed, 1 bytes removed, diff: -1\n\n/tmp/vmlinux.after:\n 10 functions changed, 91 bytes removed, diff: -91\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nAcked-by: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7be421510b91491d5aa5a29fa1005712039b95af",
      "tree": "43c85cd688ea4e33b32816bb3f363215d572f052",
      "parents": [
        "97e5b191ae7dc0f4f5b82b9db29782928b103b4d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Feb 05 01:13:37 2009 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 05 14:35:47 2009 +0100"
      },
      "message": "trace: Remove unused trace_array_cpu parameter\n\nImpact: cleanup\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "268ccda0cb4d1292029d07ee3dbd07117baf6ecb",
      "tree": "7683e02758d3f768ad21414abf39b00773e87940",
      "parents": [
        "43769f10b4826376cbf4ce17af74a5b4e8dc4fcd"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Feb 04 20:16:39 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 05 14:35:46 2009 +0100"
      },
      "message": "trace: assign defaults at register_ftrace_event\n\nImpact: simplification of tracers\n\nAs all tracers are doing this we might as well do it in\nregister_ftrace_event and save one branch each time we call these\ncallbacks.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ae7462b4f1fe1f36b5d562dbd5202a2eba01f072",
      "tree": "ceb9db3c0e90d4a459dac695ca7b2e2fddf70b32",
      "parents": [
        "d9793bd8018f835c64b10f44e278c86cecb8e932"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Feb 03 22:05:50 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 04 20:48:39 2009 +0100"
      },
      "message": "trace: make the trace_event callbacks return enum print_line_t\n\nAs they actually all return these enumerators.\n\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d9793bd8018f835c64b10f44e278c86cecb8e932",
      "tree": "da5ad9bc8f3fc7b4eb4ecd398f7c52a6f112d544",
      "parents": [
        "ce70a0b472e06feae3a580ecb3fbef1e1e020a9b"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Feb 03 20:20:41 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 04 20:48:30 2009 +0100"
      },
      "message": "trace: judicious error checking of trace_seq results\n\nImpact: bugfix and cleanup\n\nSome callsites were returning either TRACE_ITER_PARTIAL_LINE if the\ntrace_seq routines (trace_seq_printf, etc) returned 0 meaning its buffer\nwas full, or zero otherwise.\n\nBut...\n\n/* Return values for print_line callback */\nenum print_line_t {\n        TRACE_TYPE_PARTIAL_LINE \u003d 0,    /* Retry after flushing the seq */\n        TRACE_TYPE_HANDLED      \u003d 1,\n        TRACE_TYPE_UNHANDLED    \u003d 2     /* Relay to other output functions */\n};\n\nIn other cases the return value was not being relayed at all.\n\nMost of the time it didn\u0027t hurt because the page wasn\u0027t get filled, but\nfor correctness sake, handle the return values everywhere.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "939b366977d29b5c0d53d1ea3b0b8cefb1e76202",
      "tree": "0fe79dcefcea4a899d8c5df355f2281670fa4398",
      "parents": [
        "08a06b83ff8b2779289f733348c669f31cb65d51"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Feb 03 11:58:29 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 03 16:21:34 2009 +0100"
      },
      "message": "blktrace: fix coding style in recent patches\n\nImpact: cleanup\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "08a06b83ff8b2779289f733348c669f31cb65d51",
      "tree": "c8d5c13361ff9aa8e45cd660fbcad264b8310100",
      "parents": [
        "2c9b238eb325895d3312dad64e2685783575e474"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Feb 02 20:30:40 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 03 14:03:53 2009 +0100"
      },
      "message": "blkftrace: binary tracing, synthesizing old format\n\nImpact: new feature\n\nWith this and a blkrawverify modified not to verify the sequence numbers\nwe can start using the userspace tools to verify that the data produced\nwith the ftrace plugin works as expected.\n\nExample:\n\n[root@f10-1 ~]# echo 1 \u003e /sys/block/sda/sda1/trace/enable\n[root@f10-1 ~]# echo bin \u003e /d/tracing/trace_options\n[root@f10-1 ~]# echo blk \u003e /d/tracing/current_tracer\n[root@f10-1 ~]# cat /d/tracing/trace_pipe \u003e sda1.blktrace.0\n^C\n[root@f10-1 ~]# ./blkrawverify --noseq sda1\nVerifying sda1\n    CPU 0\nWrote output to sda1.verify.out\n[root@f10-1 ~]# cat sda1.verify.out\n\n---------------\nVerifying sda1\n    ---------------------\n    Summary for cpu 0:\n          1349 valid +          0 invalid (100.0%) processed\n\n[root@f10-1 ~]#\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c9b238eb325895d3312dad64e2685783575e474",
      "tree": "1c64910c6084c53b9d9a458a34568ccb083419e8",
      "parents": [
        "c4a8e8be2d43cc22b371e8e9c05c253409759d94"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Feb 02 20:30:12 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 03 14:03:52 2009 +0100"
      },
      "message": "trace: Change struct trace_event callbacks parameter list\n\nImpact: API change\n\nThe trace_seq and trace_entry are in trace_iterator, where there are\nmore fields that may be needed by tracers, so just pass the\ntracer_iterator as is already the case for struct tracer-\u003eprint_line.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dc573f9b20c8710105ac35c08ed0fe1da5160ecd",
      "tree": "24db0a0f6364b78f9c74e62541d26155e785b8f9",
      "parents": [
        "b3a8c34886d0e3dd3a24a5b614ee025181da2f41",
        "ecf441b593ac41cb8cd8cd3695110167c42e098c",
        "b1792e367053968f2ddb48bc911d314143ce6242"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 03 06:25:38 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 03 06:25:38 2009 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/kmemtrace\u0027 and \u0027linus\u0027 into tracing/core\n"
    },
    {
      "commit": "fb8ec18c316d869271137c97320dbfd2def56569",
      "tree": "8cf6a84747e10f0cf78a1cb73b1ea69681da0d70",
      "parents": [
        "45c82b5a770be66845687a7d027c8b52946d59af"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Feb 02 08:42:32 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Feb 02 08:42:32 2009 +0100"
      },
      "message": "block: fix oops in blk_queue_io_stat()\n\nSome initial probe requests don\u0027t have disk-\u003equeue mapped yet, so we\ncan\u0027t rely on a non-NULL queue in blk_queue_io_stat(). Wrap it in\nblk_do_io_stat().\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "3a9a3f6cc55418dd1525e636dccbbe13c394f652",
      "tree": "b23c46b8ecec0a338e4e81454e482f7dcd3ded0c",
      "parents": [
        "bc58ba9468d94d62c56ab9b47173583ec140b165"
      ],
      "author": {
        "name": "Divyesh Shah",
        "email": "dpshah@google.com",
        "time": "Fri Jan 30 12:46:41 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jan 30 12:47:33 2009 +0100"
      },
      "message": "cfq-iosched: Allow RT requests to pre-empt ongoing BE timeslice\n\nThis patch adds the ability to pre-empt an ongoing BE timeslice when a RT\nrequest is waiting for the current timeslice to complete. This reduces the\nwait time to disk for RT requests from an upper bound of 4 (current value\nof cfq_quantum) to 1 disk request.\n\nApplied Jens\u0027 suggeested changes to avoid the rb lookup and use !cfq_class_rt()\nand retested.\n\nLatency(secs) for the RT task when doing sequential reads from 10G file.\n                       | only RT | RT + BE | RT + BE + this patch\nsmall (512 byte) reads | 143     | 163     | 145\nlarge (1Mb) reads      | 142     | 158     | 146\n\nSigned-off-by: Divyesh Shah \u003cdpshah@google.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    }
  ],
  "next": "bc58ba9468d94d62c56ab9b47173583ec140b165"
}
