)]}'
{
  "log": [
    {
      "commit": "9b24b42ef59d2e8015957db3dd70ffedb7ebcfe8",
      "tree": "b04355f2d977303274b31cbdac7778140c52cef2",
      "parents": [
        "ece6cc27ec8b809a0227a9b2aa3ab229883793a2"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:53:45 2025 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:53:45 2025 -0700"
      },
      "message": "Update git tree references\n\ngit.kernel.dk is not more (thanks AI), change the git locations to point\nto the git.kernel.org tree instead.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "ece6cc27ec8b809a0227a9b2aa3ab229883793a2",
      "tree": "fd4ff4b24299d573660f6685d16e2df659821701",
      "parents": [
        "a7cd5b1b05e790c93894a4f00c548d214602d9e7"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:52:06 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blktrace: support protocol version 8\n\nAlso support protocol version 8 in conjunction with protocol version 7.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "a7cd5b1b05e790c93894a4f00c548d214602d9e7",
      "tree": "d05a59f99dc678d742892f56d68a2e4f26d54486",
      "parents": [
        "614c58fc23934c77f6c54522a329637e00e72212"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:52:05 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blktrace: call BLKTRACESETUP2 ioctl per default to setup a trace\n\nCall BLKTRACESETUP2 ioctl per default and if the kernel does not support\nthis ioctl because it is too old, fall back to calling BLKTRACESETUP.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "614c58fc23934c77f6c54522a329637e00e72212",
      "tree": "36689bcde8d3c85f4609717ea89e4306dad792e4",
      "parents": [
        "d302cb7c8cfcbd9599ec266b68cbfdc5f755e646"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:52:04 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blkparse: add zoned commands to fill_rwbs()\n\nParse zoned commands in blkparse.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d302cb7c8cfcbd9599ec266b68cbfdc5f755e646",
      "tree": "390c92841ef09b2aa8322b0064ff8ebaa029340e",
      "parents": [
        "294b572943f6cfb355ea941af159fb1e8be5d503"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:52:03 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blkparse: parse zone (un)plug actions\n\nParse Zone Write Plugging plug and unplug actions in blkparse.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "294b572943f6cfb355ea941af159fb1e8be5d503",
      "tree": "a4e29205e980a777e8a8fc6584f8a6d9a842c6d1",
      "parents": [
        "7e0e7630d31925f412bf653112de4a3ebef4f169"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:52:02 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blkparse: natively parse blk_io_trace2\n\nNatively parse \u0027struct blk_io_trace2\u0027 from a blktrace binary.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7e0e7630d31925f412bf653112de4a3ebef4f169",
      "tree": "e84dd7997ba05e080c96a094225a8644f22541ee",
      "parents": [
        "c79c9cbe395891c64dbfd3c8814144e44058ef90"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:52:01 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blkparse: use blk_io_trace2 internally\n\nUse \u0027struct blk_io_trace2\u0027 as internal representation for a captured\nblktrace.\n\nThis implies the conversion of \u0027struct blk_io_trace\u0027 into \u0027struct\nblk_io_trace2\u0027 when reading the trace from the binary file.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "c79c9cbe395891c64dbfd3c8814144e44058ef90",
      "tree": "69da73008f7a744297db1ad446ac906443c94c47",
      "parents": [
        "4475f0f7212d543e54515acb1227504887ebc296"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:52:00 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blktrace: rename trace_to_cpu to bit_trace_to_cpu\n\nRename trace_to_cpu to bit_trace_to_cpu, as bit_trace_to_cpu operates on\n\u0027struct blk_io_trace\u0027 not on \u0027struct blk_io_trace2\u0027.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "4475f0f7212d543e54515acb1227504887ebc296",
      "tree": "95b4b082a9d6e15ac1a4fe65f9ca8da573958c24",
      "parents": [
        "5a4b378ef389584299664ead32185cc42e7eaeb2"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:59 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blktrace: pass magic to verify_trace\n\nPass magic to verify_trace(), this will enable verification of multiple\nsupported versions.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSinged-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "5a4b378ef389584299664ead32185cc42e7eaeb2",
      "tree": "ab4cd3902579975a8309cc58409bc1f3ae805700",
      "parents": [
        "b86ecea48bcb71406df046a1ad2f07a202ac0498"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:58 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blktrace: pass magic to CHECK_MAGIC macro\n\nPass only the magic number itself to the CHECK_MAGIC() macro.\n\nThis enables support for multiple versions.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "b86ecea48bcb71406df046a1ad2f07a202ac0498",
      "tree": "4ca1b11039862de27f856928926e1d4048bddb59",
      "parents": [
        "5653f26bba9e4969d59907a03853bac6ad29bb18"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:57 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blkiomon: read \u0027magic\u0027 first\n\nSimilar to blkparse, read the \u0027magic\u0027 portion of \u0027struct blk_io_trace\u0027\nfirst when reading the trace.\n\nThis is a preparation of supporting multiple trace protocol versions.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "5653f26bba9e4969d59907a03853bac6ad29bb18",
      "tree": "36851c8e253bfbb24838c442a685bd4d6f5b7bcd",
      "parents": [
        "c1b026f5a0d9f0a537f0e9bbc727893046515334"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:56 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blkparse: make get_pdulen() take the pdu_len\n\nDirectly pass in the pdu_len into get_pdulen() and only care about the\nbyte swapping in get_pdulen().\n\nThis enables us to use the function for different versions of the\nprotocol.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "c1b026f5a0d9f0a537f0e9bbc727893046515334",
      "tree": "2672b276353797387da27b3abb169c950b7f4b50",
      "parents": [
        "d627b9fd563dbee65a56745b27cd94ba2a5d89cd"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:55 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blkparse: skip unsupported protocol versions\n\nSkip unsupported protocol versions for now.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d627b9fd563dbee65a56745b27cd94ba2a5d89cd",
      "tree": "e736a1c6a9e6dc1f7706a841dd4e67565c50c49b",
      "parents": [
        "43da1fe08510a1c12c15b7a5829e62cf5a1186f4"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:54 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blkparse: factor out reading of a singe blk_io_trace event\n\nFactor out reading a single blk_io_trace event. This de-duplicates code\nand also prepares for expansion with new trace protocol versions.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "43da1fe08510a1c12c15b7a5829e62cf5a1186f4",
      "tree": "c680daf0c01a2d7d75042e0da5b970e32271b27a",
      "parents": [
        "a40c8fb0d1a56b0fb9bea1c45dfefb3d8376807f"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:53 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blkparse: read \u0027magic\u0027 first\n\nRead the \u0027magic\u0027 portion of \u0027struct blk_io_trace\u0027 first when reading the\ntracefile and only if all magic checks succeed, read the rest of the\ntrace.\n\nThis is a preparation of supporting multiple trace protocol versions.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "a40c8fb0d1a56b0fb9bea1c45dfefb3d8376807f",
      "tree": "21e41cef90e8b802ba1e9608dcbdc28c02f4f5ab",
      "parents": [
        "26281f82c94178e4cd776cfd83b7f6aae61323c0"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:52 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blkparse: pass magic to get_magic\n\nPass the magic value to get_magic() instead of the whole \u0027struct\nblk_io_trace\u0027.\n\nThis is a preparation for distinguishing between two different types of\nblktrace protocol versions in blkparse.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "26281f82c94178e4cd776cfd83b7f6aae61323c0",
      "tree": "fda6ec5003db2678a630ba86f9021694a628ee87",
      "parents": [
        "de7027a4c293112b58f27681d3aa2c1706f760ad"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:51 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blktrace: add definitions for blk_io_trace2\n\nAdd \u0027struct blk_io_trace2\u0027 which represents the extended version of the\nblktrace protocol.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "de7027a4c293112b58f27681d3aa2c1706f760ad",
      "tree": "0a0148ac9d60e41d02154cb5dddb199f7cf0c190",
      "parents": [
        "de46aab777ceb75c9742a09f687e27c602f588c4"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:50 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blktrace: change size of action to 64 bits\n\nIn order to add the zoned commands to blktrace\u0027s actions, the storage size\nneeds to be increased to 64bits.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "de46aab777ceb75c9742a09f687e27c602f588c4",
      "tree": "a41182fa13e7d5e875fe457f10bd33c7c31407a4",
      "parents": [
        "ab25c60d012adc83a21e2ba9f5b7fe977aed5a3a"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:49 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blktrace: add definitions for BLKTRACESETUP2\n\nAdd definitions for a new BLKTRACESETUP2 ioctl(2).\n\nThis new ioctl(2) will request a new, updated structure layout from the\nkernel which enhances the storage size of the \u0027action\u0027 field in order to\nstore additional tracepoints.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "ab25c60d012adc83a21e2ba9f5b7fe977aed5a3a",
      "tree": "d24e07d12a1e87c18bee8b015af8d3e2dcf10d02",
      "parents": [
        "7d93035f63e95a9ff211689a5ee5a9647fe4539d"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:48 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blkparse: fix compiler warning\n\nGCC (15.2.1) warns on about the following string truncation in blkparse.c\n\ngcc -o blkparse.o -c -Wall -O2 -g -W -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS\u003d64 blkparse.c\nblkparse.c: In function ‘main’:\nblkparse.c:2103:68: warning: ‘):’ directive output may be truncated writing 2 bytes into a region of size between 1 and 41 [-Wformat-truncation\u003d]\n 2103 |                         snprintf(line, sizeof(line) - 1, \"CPU%d (%s):\",\n      |                                                                    ^~\nIn function ‘show_device_and_cpu_stats’,\n    inlined from ‘show_stats’ at blkparse.c:3064:3,\n    inlined from ‘main’ at blkparse.c:3386:3:\nblkparse.c:2103:25: note: ‘snprintf’ output between 9 and 49 bytes into a destination of size 47\n 2103 |                         snprintf(line, sizeof(line) - 1, \"CPU%d (%s):\",\n      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n 2104 |                                  j, get_dev_name(pdi, name, sizeof(name)));\n      |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\ngcc -Wall -O2 -g -W -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS\u003d64  -o blkparse blkparse.o blkparse_fmt.o rbtree.o act_mask.o\n\nAdd two more bytes to the string in order to mitigate the compiler warning.\n\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7d93035f63e95a9ff211689a5ee5a9647fe4539d",
      "tree": "ca17a99c12449c74e77b3fe2383895b02caf3de8",
      "parents": [
        "f9bd00dfbd67ce62ca6df6f55d6275b523cd0b39"
      ],
      "author": {
        "name": "Johannes Thumshirn",
        "email": "johannes.thumshirn@wdc.com",
        "time": "Mon Nov 24 23:51:47 2025 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Dec 10 23:51:09 2025 -0700"
      },
      "message": "blktrace: fix comment for struct blk_trace_setup:\n\nFix a comment misnaming the ioctl(2) passing struct blk_trace_setup.\n\nReviewed-by: Chaitanya Kulkarni \u003ckch@nvidia.com\u003e\nReviewed-by: Damien Le Moal \u003cdlemoal@kernel.org\u003e\nReviewed-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Johannes Thumshirn \u003cjohannes.thumshirn@wdc.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f9bd00dfbd67ce62ca6df6f55d6275b523cd0b39",
      "tree": "05913f6b43d2e8173a739e2e8238389ab3a4429f",
      "parents": [
        "16b952f4ea2db052f7cc613474d15a76c91c93d2"
      ],
      "author": {
        "name": "Kou Wenqi",
        "email": "kouwenqi@kylinos.cn",
        "time": "Wed Mar 19 21:02:49 2025 +0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Mar 20 05:06:40 2025 -0600"
      },
      "message": "blkparse: Fix a potential coredump issue\n\nExecuting \"blkparse -t\" may cause coredump due to\naccessing uninitialized memory.\n\n8,16   0     6092     1.436280373 20685  Q   W 15356912 + 4096 [kworker/u256:2]\n8,16   0     6093     1.436282093 20685  X   W 15356912 / 15357936 [kworker/u256:2]\n8,16   0     6094     1.436282735 20685  G   W 15356912 + 1024 [kworker/u256:2]\n8,16   0     6099     1.436358617 20685  X   W 15357936 / 15358960 [kworker/u256:2]\n8,16   0     6100     1.436359418 20685  G   W 15357936 + 1024 [kworker/u256:2]\n8,16   0     6102     1.436359931 20685  I   W 15356912 + 1024 [kworker/u256:2]\n8,16   0     6103     1.436360874 20685  D   W 15356912 + 1024 [kworker/u256:2]\n8,16   0     6105     1.436436572 20685  X   W 15358960 / 15359984 [kworker/u256:2]\n8,16   0     6106     1.436437679 20685  G   W 15358960 + 1024 [kworker/u256:2]\n8,16   0     6108     1.436438205 20685  I   W 15357936 + 1024 [kworker/u256:2]\n8,16   0     6109     1.436439368 20685  D   W 15357936 + 1024 [kworker/u256:2]\n8,16   0     6111     1.436530404 20685  G   W 15359984 + 1024 [kworker/u256:2]\n8,16   0     6113     1.436530842 20685  I   W 15358960 + 1024 [kworker/u256:2]\n8,16   0     6114     1.436531748 20685  D   W 15358960 + 1024 [kworker/u256:2]\n8,16   0     6120     1.436755261 20685  I   W 15359984 + 1024 [kworker/u256:2]\n8,16   0     6121     1.436756476 20685  D   W 15359984 + 1024 [kworker/u256:2]\n8,16   0     6128     1.437120354     0  C   W 15356912 + 1024 [0]\n8,16   0     6129     1.437121875     0  C   W 15356912 + 2048 [0]\n\nBreakpoint 3, log_track_split (pdi\u003d0x430260, t\u003d0x711990) at blkparse.c:1076\n1076            iot \u003d find_track(pdi, t-\u003epid, t-\u003esector);\n(gdb) n\n1077            split \u003d malloc(sizeof(*iot));\n(gdb)\n1078            split-\u003ereq \u003d iot-\u003ereq;\n(gdb) p split\n$1 \u003d (struct io_track *) 0x69bdd0\n(gdb) p *split\n$2 \u003d {rb_node \u003d {rb_parent_color \u003d 6929360, rb_right \u003d 0x0, rb_left \u003d 0xe81bf0}, req \u003d 0x2000d00080000, next \u003d 0x800010000050cd, sector \u003d 2251799813685248}\n\nProgram received signal SIGSEGV, Segmentation fault.\n0x000000000040bcbc in rb_set_parent (rb\u003d0xe81bf0, p\u003d0x69bbd0) at rbtree.h:133\n133             rb-\u003erb_parent_color \u003d (rb-\u003erb_parent_color \u0026 3) | (unsigned long)p;\n(gdb) bt\n #0  0x000000000040bcbc in rb_set_parent (rb\u003d0xe81bf0, p\u003d0x69bbd0) at rbtree.h:133\n #1  0x000000000040c724 in rb_erase (node\u003d0x69bdd0, root\u003d0x430418) at rbtree.c:273\n #2  0x0000000000404810 in log_track_complete (pdi\u003d0x430260, t\u003d0x712810) at blkparse.c:1223\n #3  0x00000000004055e4 in log_complete (pdi\u003d0x430260, pci\u003d0x4bc100, t\u003d0x712810, act\u003d0x40cf60 \"C\") at blkparse.c:1518\n #4  0x0000000000405ea0 in dump_trace_fs (t\u003d0x712810, pdi\u003d0x430260, pci\u003d0x4bc100) at blkparse.c:1680\n #5  0x000000000040604c in dump_trace (t\u003d0x712810, pci\u003d0x4bc100, pdi\u003d0x430260) at blkparse.c:1722\n #6  0x00000000004090e8 in handle (msp\u003d0x433cf0) at blkparse.c:2639\n #7  0x000000000040931c in do_file () at blkparse.c:2712\n #8  0x000000000040a0cc in main (argc\u003d4, argv\u003d0xfffffffff438) at blkparse.c:3045\n(gdb) p rb\n$3 \u003d (struct rb_node *) 0xe81bf0\n(gdb) p *rb\nCannot access memory at address 0xe81bf0\n(gdb) up\n273                     rb_set_parent(child, parent);\n(gdb) p child\n$4 \u003d (struct rb_node *) 0xe81bf0\n(gdb) p node\n$5 \u003d (struct rb_node *) 0x69bdd0\n(gdb) p *node\n$6 \u003d {rb_parent_color \u003d 6929360, rb_right \u003d 0x0, rb_left \u003d 0xe81bf0}\n\nSigned-off-by: Kou Wenqi \u003ckouwenqi@kylinos.cn\u003e\nLink: https://lore.kernel.org/r/tencent_DE806EEE1852F9E79115172254B8A2789207@qq.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "16b952f4ea2db052f7cc613474d15a76c91c93d2",
      "tree": "c5c69d978b1106acbe050b26848abd3ee8d0fc17",
      "parents": [
        "f49e7ded6405bcecd10846a614f40061ca6301c8"
      ],
      "author": {
        "name": "Stefan Hajnoczi",
        "email": "stefanha@redhat.com",
        "time": "Tue Jan 28 14:05:44 2025 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Jan 30 09:54:59 2025 -0700"
      },
      "message": "doc: update RWBS descriptions\n\nNew RWBS flags have been added. Document them.\n\nSigned-off-by: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nLink: https://lore.kernel.org/r/20250128190544.113575-1-stefanha@redhat.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f49e7ded6405bcecd10846a614f40061ca6301c8",
      "tree": "cd4c50757c720df05cc20cf44ca5cddfd8ce2447",
      "parents": [
        "1836be5d99c9362f1e2b39206c95270f19cb7faa"
      ],
      "author": {
        "name": "Igor Pylypiv",
        "email": "ipylypiv@google.com",
        "time": "Mon Oct 07 21:12:43 2024 +0000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Oct 08 07:40:39 2024 -0600"
      },
      "message": "iowatcher: Calculate ios_in_flight per trace\n\nWhen multiple trace files are passed, the generated queue depth graph\nends up adding queue depths from previous traces.\n\niowatcher -t blktrace1 -t blktrace2\n\nAssuming blktrace1 has a queue depth of 8 and blktrace2 has a queue depth\nof 32, the resulting graph will display blktrace1 with a queue depth of 8\nand blktrace2 with a queue depth of 40 instead of 32.\n\nReplace global ios_in_flight with a per trace ios_in_flight to show\na correct queue depth for a given trace.\n\nSigned-off-by: Igor Pylypiv \u003cipylypiv@google.com\u003e\nLink: https://lore.kernel.org/r/20241007211243.1351143-1-ipylypiv@google.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "1836be5d99c9362f1e2b39206c95270f19cb7faa",
      "tree": "e3ad6192578acf9a3c745c11ae2edcebeec52e17",
      "parents": [
        "b9ea6e507e8849f01d06aa48c0c59c5cee4820be"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Jun 05 23:07:27 2024 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Jun 12 14:45:58 2024 -0600"
      },
      "message": "fix hang when BLKTRACESETUP fails and \"-o -\" is used\n\n# blktrace -o - /dev/sda /dev/sdb /dev/sdc\n\nhas to be SIGKILLed if BLKTRACESETUP fails for any or all of the devices\nlisted. (I simulated this by just catching one of the devices in\nsetup_buts(), skipping the ioctl, and doing ret++).\n\nThis seems to be because with \"-o -\" on the command line, use_tracer_devpaths()\nsees piped_output set, so we call process_trace_bufs which ends up waiting on\n(!done) and \"done\" is never set. i.e.\n\natexit(exit_tracing)\n\twait_tracers\n\t\tif (use_tracer_devpaths()) // true because \"-o -\"\n\t\t\tprocess_trace_bufs\n\t\t\t\twhile (wait_empty_entries())\n\t\t\t\t\twait_empty_entries\n\t\t\t\t\t\twhile (!done ... )\n\t\t\t\t\t\t\t\u003cloop forever\u003e\n\nI think this can be avoided by just setting \"done \u003d 1\" before returning\nwhen setup_buts() fails in run_tracers().\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nReviewed-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nLink: https://lore.kernel.org/r/f3204c9d-1384-40b5-a5fb-3bb967ca2bec@redhat.com\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "b9ea6e507e8849f01d06aa48c0c59c5cee4820be",
      "tree": "1f7eb17075e6f0fff30fbc20450e87340b38210f",
      "parents": [
        "7f5d2c5173d72018aa29c583c9291ef10abaf8df"
      ],
      "author": {
        "name": "Fukui Daichi",
        "email": "a.dog.will.talk@akane.waseda.jp",
        "time": "Wed Jan 17 08:36:51 2024 +0000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Jan 17 16:02:23 2024 -0700"
      },
      "message": "doc: btrace: fix wrong format on doc\n\nThe synopsis part of the btrace documentation gets highlighted with\nwrong format. Let\u0027s fix the format. There is no change to the contents.\n\nSigned-off-by: Fukui Daichi \u003ca.dog.will.talk@akane.waseda.jp\u003e\nLink: https://lore.kernel.org/r/20240117083651.954-1-a.dog.will.talk@akane.waseda.jp\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7f5d2c5173d72018aa29c583c9291ef10abaf8df",
      "tree": "67080ec79a2558d07a2ee245cf2967ca40214700",
      "parents": [
        "ac416ab67cd7add0089c3bc668427e6b909eb59e"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Oct 21 10:16:20 2021 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Oct 21 08:45:17 2021 -0600"
      },
      "message": "blkparse: fix incorrectly sized memset in check_cpu_map\n\nThe memset call in check_cpu_map always clears sizeof(unsigned long *)\nregardless of what size was allocated.  Use calloc instead to allocate\nthe map so it\u0027s zeroed properly regardless of the size requested.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "ac416ab67cd7add0089c3bc668427e6b909eb59e",
      "tree": "f38e155dbf743ebab22dfbac4ddeb037789b3480",
      "parents": [
        "3a1b1366d30375cdb0f5b299df4edda0c8ba3bcc"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Thu Oct 21 10:16:19 2021 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Oct 21 08:45:16 2021 -0600"
      },
      "message": "blkparse: skip check_cpu_map with pipe input\n\nWhen we\u0027re using pipe input, we don\u0027t track online CPUs and don\u0027t have a\ncpu_map.  When we start to show entries, check_sequence will be invoked.\nIf the first entry isn\u0027t sequence 1 (perhaps it\u0027s been dropped?), we\u0027ll\nproceed to check_cpu_map.  Since we haven\u0027t tracked online CPUs,\npdi-\u003ecpu_map_max will be 0 and we\u0027ll do a malloc(0).  Then we\u0027ll start\nsetting bits corresponding to CPU numbers in memory we don\u0027t own.  Since\nthere\u0027s nothing to check here, let\u0027s skip it on pipe input.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "3a1b1366d30375cdb0f5b299df4edda0c8ba3bcc",
      "tree": "3fa30366187790a1a9465d8150f1febcbd9d291b",
      "parents": [
        "366d30b9cdb20345c5d064af850d686da79b89eb"
      ],
      "author": {
        "name": "lijinlin",
        "email": "lijinlin3@huawei.com",
        "time": "Mon Jun 28 13:41:32 2021 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Jun 28 13:41:32 2021 -0600"
      },
      "message": "blktrace: exit directly when nthreads_running !\u003d ncpus in run_tracers()\n\nWe found blktrace got stuck when cgroup restricts blktrace to use cpu,\nthe messages and stack is:\n[root@localhost ~]# blktrace -w 10 -o- /dev/sda\nFAILED to start thread on CPU 1: 22/Invalid argument\nFAILED to start thread on CPU 2: 22/Invalid argument\n[root@localhost ~]# cat /proc/1385110/stack\n[\u003c0\u003e] __switch_to+0xe8/0x150\n[\u003c0\u003e] futex_wait_queue_me+0xd4/0x158\n[\u003c0\u003e] futex_wait+0xf4/0x230\n[\u003c0\u003e] do_futex+0x470/0x900\n[\u003c0\u003e] __arm64_sys_futex+0x13c/0x188\n[\u003c0\u003e] el0_svc_common+0x80/0x200\n[\u003c0\u003e] el0_svc_handler+0x78/0xe0\n[\u003c0\u003e] el0_svc+0x10/0x260\n[\u003c0\u003e] 0xffffffffffffffff\n\nBlktrace failed to start thread is caused by thread can\u0027t lock on the\nRestricted cpu. In this case, blktrace would\u0027t schedule an alarm after\ndefined time to set variable \u0027done\u0027 as 1.\nWe debug the code and found the call trace as bellow:\nmain()\n   \u003d\u003d\u003erun_tracers()\n      \u003d\u003d\u003ewait_tracers()\n         \u003d\u003d\u003eprocess_trace_bufs()\n            \u003d\u003d\u003ewait_empty_entries()\n               \u003d\u003d\u003et_pthread_cond_wait()\nBlktrace was set to piped output, so the process is stuck in\nwait_empty_entries() for wait variable \u0027done\u0027 have been set as 1.\n\nWe set variable \u0027done\u0027 as 1 when \u0027nthreads_running\u0027 is not equal to\n\u0027ncpus\u0027 in run_tracers() to fix the problem.\n\nSigned-off-by: lijinlin \u003clijinlin3@huawei.com\u003e\nSigned-off-by: Zhiqiang Liu \u003cliuzhiqiang26@huawei.com\u003e\nSigned-off-by: Lixiaokeng \u003clixiaokeng@huawei.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "366d30b9cdb20345c5d064af850d686da79b89eb",
      "tree": "879faf77567db10a1a21cbad15d1fe8ab61cf27c",
      "parents": [
        "dc24c67dfbbd11a3221034557548061e7d2c602f"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Jun 14 08:55:52 2021 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Jun 14 08:55:52 2021 -0600"
      },
      "message": "blktrace 1.3.0\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "dc24c67dfbbd11a3221034557548061e7d2c602f",
      "tree": "6d674163736b7b54bc612d92974e2b6ec184e727",
      "parents": [
        "2ec0bb0b725305025dcc3e3f195894040e2dab90"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Jan 13 12:26:43 2021 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Apr 19 11:55:04 2021 -0600"
      },
      "message": "blkparse: Print time when trace was started\n\nFor correlating blktrace data with other information, it is useful to\nknow when the trace has been captured. Since the absolute timestamp\nis contained in the blktrace file, just output it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nReviewed-by: Chaitanya Kulkarni \u003cchaitanya.kulkarni@wdc.com\u003e\nLink: https://lore.kernel.org/r/20210113112643.12893-1-jack@suse.cz\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "2ec0bb0b725305025dcc3e3f195894040e2dab90",
      "tree": "0343ffe3b204753595d3648b6509f83c9c5d83d6",
      "parents": [
        "a021a33b405b5101eec6c389e1dacd7934fdd35e"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Feb 19 10:36:08 2021 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Feb 19 09:42:41 2021 -0700"
      },
      "message": "blktrace: inclusive terminology\n\nUse more inclusive terminology in a couple places.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "a021a33b405b5101eec6c389e1dacd7934fdd35e",
      "tree": "b9fba44fdafc7774a8a834a1da3721cb11f81865",
      "parents": [
        "f442a044c0c2752d6fa916dd1e0366ba83eef998"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed May 13 18:04:02 2020 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed May 20 07:38:26 2020 -0600"
      },
      "message": "blkparse: Print PID information for TN_MESSAGE events\n\nThe kernel now provides PID information for TN_MESSAGE events. Print it.\nOld kernels fill 0 there so the behavior is unaffected for them.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f442a044c0c2752d6fa916dd1e0366ba83eef998",
      "tree": "37b2a9ed34c7ff0d9e9dcca45c3e0b7e2036d7ca",
      "parents": [
        "2d6a688904d809ff65ef5582b1caab3776aa6e74"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed May 06 15:39:33 2020 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed May 20 07:37:56 2020 -0600"
      },
      "message": "iowatcher: Handle cgroup information\n\nSince Linux kernel commit 35fe6d763229 \"block: use standard blktrace API\nto output cgroup info for debug notes\" the kernel can pass\n__BLK_TA_CGROUP flag in the action field of generated events. Teach\niowatcher to ignore this information.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "2d6a688904d809ff65ef5582b1caab3776aa6e74",
      "tree": "c8d1ca0fac63b6943c59fc0879fa690ffa16a3a1",
      "parents": [
        "7238673f3fd6a02812c7a35d1d55cf6f724ac001"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed May 06 15:39:32 2020 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed May 20 07:37:55 2020 -0600"
      },
      "message": "iowatcher: Use blktrace_api.h\n\nUse blktrace_api.h header instead of redefining the constants once more\nin blkparse.c.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7238673f3fd6a02812c7a35d1d55cf6f724ac001",
      "tree": "e3987c7942a0f066a1c45555697b9462e1ee50af",
      "parents": [
        "e81829a565162d41e2f551dc5e0f74f22f319554"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed May 06 15:39:31 2020 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed May 20 07:37:53 2020 -0600"
      },
      "message": "blkparse: Handle cgroup information\n\nSince Linux kernel commit 35fe6d763229 \"block: use standard blktrace API\nto output cgroup info for debug notes\" the kernel can pass\n__BLK_TA_CGROUP flag in the action field of generated events. blkparse\ndoes not count with this and so it will get confused by such events and\neither ignore them or misreport them. Teach blkparse how to properly\nprocess events with __BLK_TA_CGROUP flag.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "e81829a565162d41e2f551dc5e0f74f22f319554",
      "tree": "6bd9e08703df0f745cb4f5dd3e5066d98d928a2d",
      "parents": [
        "a61c06774d03fb768fa9fb021e94599822848c8a"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruenba@redhat.com",
        "time": "Mon Apr 13 21:01:52 2020 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 07 12:22:37 2020 -0600"
      },
      "message": "blkparse: Fix up the sector and length of split completions\n\nWhen a split io completes, the sector and length of the completion event refer\nto the last part of the original request.  This is in conflict with the\nblkparse manual page, makes the blkparse output difficult to read, and leads to\nincorrect statistics.  Fix up the sector and length of split completion events\nto match the original request.\n\nTo achieve that, slightly extend the existing event tracking infrastructure to\ntrack all parts of a split request.  We could almost get by tracking only the\nlast part of a split, but that wouldn\u0027t quite work correctly for splits of\nsplits.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruenba@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "a61c06774d03fb768fa9fb021e94599822848c8a",
      "tree": "ce455ded2cb22beaa3bad32248009bc5e7ff764e",
      "parents": [
        "9cd3ca7cd32bd73d7ce787ec733221f4b818bb03"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruenba@redhat.com",
        "time": "Mon Apr 13 21:01:51 2020 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 07 12:22:35 2020 -0600"
      },
      "message": "blkparse: Initialize and test for undefined request tracking timestamps\n\nCurrently, event tracking timestamps aren\u0027t initialized at all even though some\nplaces in the code assume that a value of 0 indicates \u0027undefined\u0027.  However, 0\nis the timestamp of the first event, so use -1ULL for \u0027undefined\u0027 instead.\n\nIn addition, make sure timestamps are only initialized once, and always check\nif timestamps are defined before using them.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruenba@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "9cd3ca7cd32bd73d7ce787ec733221f4b818bb03",
      "tree": "84f9b1ad2f7a1ce2b80cdc4fe16bae44ce937271",
      "parents": [
        "3c667f3c92f0daa58d7d77cb52de3a1b5f283bc6"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruenba@redhat.com",
        "time": "Mon Apr 13 21:01:50 2020 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 07 12:22:34 2020 -0600"
      },
      "message": "blkparse: Allow request tracking on non md/dm devices\n\nFix queue to completion tracking on devices other than md/dm: without this fix,\nenabling tracking with the -t option on a non-md/dm device leads to \"complete\nnot found\" errors.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruenba@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "3c667f3c92f0daa58d7d77cb52de3a1b5f283bc6",
      "tree": "07c4647c11628aad64aa1c4f37b84bc91541d5fb",
      "parents": [
        "db4f6340e04716285ea56fe26d76381c3adabe58"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruenba@redhat.com",
        "time": "Mon Apr 13 21:01:49 2020 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu May 07 12:22:32 2020 -0600"
      },
      "message": "blkparse: Fix device in event tracking error messages\n\nFor some reason, dev in struct per_dev_info isn\u0027t set in the log_track_\nfunctions, and so the error messages report (0,0) as the device.  Fix by using\ndevice in struct blk_io_trace instead.\n\nSigned-off-by: Andreas Gruenbacher \u003cagruenba@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "db4f6340e04716285ea56fe26d76381c3adabe58",
      "tree": "82f6f687efb145512f49a5c15cb6861b11ef3a74",
      "parents": [
        "7b2525ab235a38cfce57c44f54730086b66e7765"
      ],
      "author": {
        "name": "Vincent Legoll",
        "email": "vincent.legoll@gmail.com",
        "time": "Fri Mar 20 22:44:59 2020 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 20 15:53:50 2020 -0600"
      },
      "message": "btt_plot.py: Use `with open() as ...` context manager\n\nto automatically handle close()\n\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "7b2525ab235a38cfce57c44f54730086b66e7765",
      "tree": "a75f306a6e0b0478702906acae962b9ecd9cc811",
      "parents": [
        "9bf5f88c1179c84c8072ecffc7026e77acb3641b"
      ],
      "author": {
        "name": "Vincent Legoll",
        "email": "vincent.legoll@gmail.com",
        "time": "Fri Mar 20 22:44:58 2020 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 20 15:53:50 2020 -0600"
      },
      "message": "bno_plot.py: Fix pylint: singleton-comparison\n\nComparison to None should be \u0027expr is None\u0027\n\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "9bf5f88c1179c84c8072ecffc7026e77acb3641b",
      "tree": "8650d7a352fd71fed754ebb0563afbfe1ee57d5f",
      "parents": [
        "af756d5782a08cc746aa94a1237c2a596ac92af2"
      ],
      "author": {
        "name": "Vincent Legoll",
        "email": "vincent.legoll@gmail.com",
        "time": "Fri Mar 20 22:44:57 2020 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 20 15:53:50 2020 -0600"
      },
      "message": "bno_plot.py: Fix pylint: len-as-condition\n\nDo not use `len(SEQUENCE)` to determine if a sequence is empty\n\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "af756d5782a08cc746aa94a1237c2a596ac92af2",
      "tree": "5a148735e63e82ce2355401f771e272c39f200ca",
      "parents": [
        "e984bd6d2c142ea2cc0d672c428db061f77a802c"
      ],
      "author": {
        "name": "Vincent Legoll",
        "email": "vincent.legoll@gmail.com",
        "time": "Fri Mar 20 22:44:56 2020 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 20 15:53:50 2020 -0600"
      },
      "message": "btt_plot.py: Fix pylint: no-else-return\n\nUnnecessary \"elif\" after \"return\"\n\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "e984bd6d2c142ea2cc0d672c428db061f77a802c",
      "tree": "82455b615d5234129167f5f2a2fc8cea9d96d961",
      "parents": [
        "592c70d05da4658571534544acfbbcb679cdd935"
      ],
      "author": {
        "name": "Vincent Legoll",
        "email": "vincent.legoll@gmail.com",
        "time": "Fri Mar 20 22:44:55 2020 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 20 15:53:50 2020 -0600"
      },
      "message": "btt_plot.py: Fix pylint: singleton-comparison\n\nComparison to None should be \u0027expr is None\u0027\n\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "592c70d05da4658571534544acfbbcb679cdd935",
      "tree": "8f0095f76b22f9a67727714bc7e17eec1ce826fe",
      "parents": [
        "fd3766eb198bc2e6761f04a7e34f61fd7b5ccbad"
      ],
      "author": {
        "name": "Vincent Legoll",
        "email": "vincent.legoll@gmail.com",
        "time": "Fri Mar 20 22:44:54 2020 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 20 15:53:50 2020 -0600"
      },
      "message": "btt_plot.py: Fix pylint: len-as-condition\n\nDo not use `len(SEQUENCE)` to determine if a sequence is empty\n\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "fd3766eb198bc2e6761f04a7e34f61fd7b5ccbad",
      "tree": "99d066a05dc8949a0c9f0e723c45465dc70720eb",
      "parents": [
        "0d7a3774566e9e1b476ada4bcf4bc4158158e7f8"
      ],
      "author": {
        "name": "Vincent Legoll",
        "email": "vincent.legoll@gmail.com",
        "time": "Fri Mar 20 22:44:53 2020 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 20 15:53:50 2020 -0600"
      },
      "message": "btt_plot.py: Fix pylint: wrong-import-order\n\nC0411: standard import \"import getopt, glob, os, sys\" should be placed\nbefore \"import six\"\n\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "0d7a3774566e9e1b476ada4bcf4bc4158158e7f8",
      "tree": "532ea16b9079b40065f9ff8dbc41466ccc3c43ff",
      "parents": [
        "edb0360a20a18c0244909dc1a39015f05710c5f5"
      ],
      "author": {
        "name": "Vincent Legoll",
        "email": "vincent.legoll@gmail.com",
        "time": "Fri Mar 20 22:44:52 2020 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 20 15:53:50 2020 -0600"
      },
      "message": "bno_plot.py: Use `with open() as ...` context manager to automatically handle close()\n\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "edb0360a20a18c0244909dc1a39015f05710c5f5",
      "tree": "70b8549578ea507c56a412b164600a7a59301abe",
      "parents": [
        "86c6ec280c38df9a68a2061eed2ec659e0a0f7c7"
      ],
      "author": {
        "name": "Vincent Legoll",
        "email": "vincent.legoll@gmail.com",
        "time": "Fri Mar 20 22:44:51 2020 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 20 15:53:50 2020 -0600"
      },
      "message": "bno_plot.py: Use shutil.rmtree() instead of os.system(\u0027/bin/rm\u0027)\n\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "86c6ec280c38df9a68a2061eed2ec659e0a0f7c7",
      "tree": "c6ee4b4bab421a7a909a4db10f6776a820bb4600",
      "parents": [
        "f4f8ef7cdea138cfaa2f3ca0ee31fa23d3bcf1cc"
      ],
      "author": {
        "name": "Vincent Legoll",
        "email": "vincent.legoll@gmail.com",
        "time": "Fri Mar 20 22:44:50 2020 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Mar 20 15:53:50 2020 -0600"
      },
      "message": "btt_plot.py: Use sum() instead of open-coding it to compute list average\n\nSigned-off-by: Vincent Legoll \u003cvincent.legoll@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f4f8ef7cdea138cfaa2f3ca0ee31fa23d3bcf1cc",
      "tree": "a485cffc0fd78c6fb0846c4d63cf5e2fa4670049",
      "parents": [
        "9c73da91540b27adaaf56065629e831cc50c5a3d"
      ],
      "author": {
        "name": "Gwendal Grignou",
        "email": "gwendal@chromium.org",
        "time": "Thu Jan 16 12:33:26 2020 -0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Jan 16 13:33:59 2020 -0700"
      },
      "message": "fix parallel build of btt and blkiomon\n\nrbtree.c is used by both binaries. It is possible that when make -C btt\nis invoked rbtree.o does not exist yet, but is already schedule by the\ncompilation of blkiomon. That could result in recompiling rbtree.o again\nfor btt/btt.\nIn that case, at install time, make will recompile blkiomon which can\nfail in gentoo, because CC variable is not overriden by ebuild script at\ninstall time. (see https://bugs.gentoo.org/705594)\n\nAdd a dependency on SUBDIRS to wait for all binary in . to be compiled.\nIt will guarante rbtree.o exists.\n\nSigned-off-by: Gwendal Grignou \u003cgwendal@chromium.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "9c73da91540b27adaaf56065629e831cc50c5a3d",
      "tree": "6784ff1d51e367ad5f3fccc3a235bcf77dbe96d3",
      "parents": [
        "918e9797772bec65d83cf6c573042fc71fd8dfbd"
      ],
      "author": {
        "name": "Hiroaki Mihara",
        "email": "hmihara@redhat.com",
        "time": "Wed Sep 25 07:33:11 2019 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Sep 25 00:22:13 2019 -0600"
      },
      "message": "doc: tex: add absolute timestamp printing option\n\nThe functionality of printing out absolute timestamps has been\nimplemented in code but not documented in doc/blktrace.tex.\n\nSigned-off-by: Hiroaki Mihara \u003chmihara@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "918e9797772bec65d83cf6c573042fc71fd8dfbd",
      "tree": "30d0c262beab3b190708dc5c941e4f4cb77d3d54",
      "parents": [
        "d025d6c67760a52e34e6c7352f33ad5dbbb4f6f4"
      ],
      "author": {
        "name": "Hiroaki Mihara",
        "email": "hmihara@redhat.com",
        "time": "Wed Sep 25 07:32:50 2019 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Sep 25 00:22:13 2019 -0600"
      },
      "message": "blkparse: fix absolute timestamp when reading from file\n\nThis patch fixes the wrong absolute timestamps when blkparse reads\ndata from files.\n\nThe blkparse command prints out wrong timestamps if all the following\nconditions are met,\n\n* The blkparse command reads data from files created by blktrace.\n* \"z\" format option is set as OUTPUT DESCRIPTION.\n  ex.) blkparse xxx.blktrace.0 -f \"%z\\n\"\n* start_timestamp(\u003dblktrace command started) !\u003d genesis_time(\u003dfirst\n  I/O traced)\n\nWhen blkparse reads data from pipe instead, it yields correct\ntimestamps.\n\nThe root cause of this issue comes from the fact that the time\ndifference between start_timestamp and genesis_time is not added when\nblkparse reads data from files. When blkparse reads data from pipe,\nthe time-difference is added through find_genesis() function.\n\nThe following test cases show the contradictions in absolute\ntimestams. Also the Step 4 shows that the issue is fixed with the\nblkparse command with the suggesting patch.\n\n* Step 1: After invoking blktrace command, test I/O traffic was\n  generated by dd command as follows,\n\n  # date +%Y%m%d_%H%M%S_%N; dd if\u003d/dev/sda3 of\u003d/dev/null count\u003d1 iflag\u003ddirect\n     20190919_092726_077032490\n     1+0 records in\n     1+0 records out\n     512 bytes copied, 0.00122329 s, 419 kB/s\n\n  The timestamp was recorded just before executing dd command.  The\n  test I/O would have been traced right after 09:27:26.077032490 .\n\n* Step 2: The blkparse command reads data from \"pipe\".\n\n  $ cat test.blktrace.* | blkparse - -f \"%T.%t %z %C\\n\"\n  0.000000000 09:27:22.427592 kworker/0:0\n  0.000002080 09:27:22.427594 kworker/0:0\n  .\n  .\n  3.652263118 09:27:26.079855 dd\n  3.652265818 09:27:26.079857 dd\n  3.652274742 09:27:26.079866 dd\n  3.652277266 09:27:26.079869 dd\n\n  The first I/O by dd command showed the relative timestamp as\n  3.652263118 and the absolute timestamp as 09:27:26.079855, which is\n  right after the timestamp shown in the Step 1.\n\n* Step 3: The blkparse command reads from the trace \"file\" created in\n  the Step 1.\n\n  $ blkparse test -f \"%T.%t %z %C\\n\"\n  Input file test.blktrace.0 added\n  Input file test.blktrace.1 added\n  Input file test.blktrace.2 added\n  Input file test.blktrace.3 added\n  0.000000000 09:27:21.187304 kworker/0:0\n  0.000002080 09:27:21.187306 kworker/0:0\n  .\n  .\n  3.652263118 09:27:24.839567 dd\n  3.652265818 09:27:24.839570 dd\n  3.652274742 09:27:24.839578 dd\n  3.652277266 09:27:24.839581 dd\n\n  In the previous step (Step 2), the data was passed via pipe. In this\n  case, the blkparse command reads data from the same file, instead.\n\n  The first I/O by dd command showed the relative timestamp as\n  3.652263118 and the absolute timestamp as 09:27:24.839567, which is\n  a few seconds earlier than the absolute timestamp recorded in the\n  Step 1. The order of events and the absolute timestamps contradict.\n\n* Step 4: The blkparse command with the suggesting patch\n  (./blkparse_with_patch) reads data from the trace file created in\n  the Step 1.\n\n  $ ./blkparse_with_patch test -f \"%T.%t %z %C\\n\"\n  Input file test.blktrace.0 added\n  Input file test.blktrace.1 added\n  Input file test.blktrace.2 added\n  Input file test.blktrace.3 added\n  0.000000000 09:27:22.427592 kworker/0:0\n  0.000002080 09:27:22.427594 kworker/0:0\n  .\n  .\n  3.652263118 09:27:26.079855 dd\n  3.652265818 09:27:26.079857 dd\n  3.652274742 09:27:26.079866 dd\n  3.652277266 09:27:26.079869 dd\n\n  In this case, the absolute timestamps showed the same value as shown\n  in the Step 2(the case with pipe).\n  The time gap between the genesis_ time and the start_timestamp was\n  corrected even if the blkparse reads data from files.\n\nSigned-off-by: Hiroaki Mihara \u003chmihara@redhat.com\u003e\n\nthe#\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d025d6c67760a52e34e6c7352f33ad5dbbb4f6f4",
      "tree": "89b4beef5556de2e3bb03309956c161b18c5866d",
      "parents": [
        "09feee843ec1f5e00db56da5f4ff91847c3cd958"
      ],
      "author": {
        "name": "Hiroaki Mihara",
        "email": "hmihara@redhat.com",
        "time": "Wed Sep 25 07:32:06 2019 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Sep 25 00:22:13 2019 -0600"
      },
      "message": "blkparse: split off the timestamp correction code in to a separate function\n\nfind_genesis() function has code to correct abs_start_time, which is\nlater used to calculate the absolute timestamps of each traced\nrecords.\n\nPut this code in a separate function, so that it can be used later by\nthe blkparse code. No functional change.\n\nSigned-off-by: Hiroaki Mihara \u003chmihara@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "09feee843ec1f5e00db56da5f4ff91847c3cd958",
      "tree": "87b4b2ff3181a7f881dacbb264f016c5fbc45923",
      "parents": [
        "667ac92a1a72b6038f0fae4acfc6a280fd69697b"
      ],
      "author": {
        "name": "Hiroaki Mihara",
        "email": "hmihara@redhat.com",
        "time": "Fri Sep 20 14:03:36 2019 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Sep 24 15:28:51 2019 -0600"
      },
      "message": "blkparse: man: add absolute timestamp printing option\n\nThe functionality of printing out absolute timestamps has been\nimplemented in code but not documented in man pages.\n\nWhen comparing the timings of related events with block I/O traces,\nthe absolute timestams play a key role.  I think that the\ndocumentation of this might be beneficial to blktrace users.\n\nThe related commit was done in 2006 as follows,\n\n\u003e commit 7bd4fd0a4fca645bb50a641afac1e460a4e32dfd\n\u003e Author: Olaf Kirch \u003cokir@lst.de\u003e\n\u003e Date:   Fri Dec 1 10:34:11 2006 +0100\n\u003e\n\u003e     [PATCH] Add timestamp support\n\u003e\n\u003e     Signed-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n\u003e\n\nURL of the above patch,\nhttps://git.kernel.org/pub/scm/linux/kernel/git/axboe/blktrace.git/commit/?id\u003d7bd4fd0a4fca645bb50a641afac1e460a4e32dfd\n\nAcked-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Hiroaki Mihara \u003chmihara@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "667ac92a1a72b6038f0fae4acfc6a280fd69697b",
      "tree": "2a5e5280e1ad47ee17fc958979ae2e2d74675de9",
      "parents": [
        "a7263b8fb22f07f4f1a3ec54f0c37193c5908b22"
      ],
      "author": {
        "name": "Ignat Korchagin",
        "email": "ignat@cloudflare.com",
        "time": "Mon Sep 16 10:30:23 2019 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Sep 16 10:30:23 2019 -0600"
      },
      "message": "btreplay: fix device IO remap functionality\n\nCommit dd093eb1c48e (\"Fix warnings on newer gcc\") moved string buffers holding\ndevice names during map file parse stage to stack. However, only pointers to\nthem are being stored in the allocated \"struct map_dev\" structure. These\npointers are invalid outside of scope of this function and in a different\nthread context. Also \"release_map_devs\" function still tries to \"free\" them\nlater as if they were allocated on the heap.\n\nMoving the buffers back to the heap by instructing \"fscanf\" to allocate them\nwhile parsing the file.\n\nAlternatively, we could redefine the \"struct map_dev\" to include the whole\nbuffers instead of just pointers to them and free them as part of releasing the\nwhole \"struct map_dev\".\n\nFixes: dd093eb1c48e (\"Fix warnings on newer gcc\")\nSigned-off-by: Ignat Korchagin \u003cignat@cloudflare.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "a7263b8fb22f07f4f1a3ec54f0c37193c5908b22",
      "tree": "ad31a3832b367d3c81b3d5766aaa6f0c13b84790",
      "parents": [
        "10df4b691a68dd440547e393b6d241fc54fd2fad"
      ],
      "author": {
        "name": "Weiping Zhang",
        "email": "zhangweiping@didiglobal.com",
        "time": "Tue May 21 21:29:13 2019 +0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue May 21 08:06:08 2019 -0600"
      },
      "message": "blkparse: add support sort program by io event\n\nDisplays each program\u0027s data sorted by program name or io event, like\nQueued, Read, Write and Complete. When -S is specified the -s will be ignored.\nThe capital letters Q,R,W,C stand for KB, then q/r/w/c stand for IO.\nThe N is used for sorting programs by name, same to -s.\n\nIf you want to sort programs by how many data they queued, you can use:\n\nblkparse -i sda.blktrace. -q -S Q -o sda.parse\n\nSigned-off-by: Weiping Zhang \u003czhangweiping@didiglobal.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "10df4b691a68dd440547e393b6d241fc54fd2fad",
      "tree": "ce23a7ac6be6e7105b3cb23bd10a2cd85d129485",
      "parents": [
        "f011d96f260a2be5dcc2ad9f4d1bf2d591946723"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Fri Aug 31 16:01:34 2018 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Fri Aug 31 14:57:57 2018 -0600"
      },
      "message": "iowatcher: spawn NPROCESSORS_ONLN for rsvg-convert-s\n\niowatcher currently always spawns 8 rsvg-convert processes, no matter\nhow many CPUs a system has.  I did some limited testing of different\nnumbers of rsvg-convert processes.  Here are the results:\n\n8 processes:\nreal\t4m2.194s\nuser\t23m36.665s\nsys\t0m38.523s\n\n20 processes:\nreal\t2m28.935s\nuser\t24m51.817s\nsys\t0m49.227s\n\n40 processes:\nreal\t2m28.150s\nuser\t24m56.994s\nsys\t0m49.621s\n\nNote that this is the time it takes for a full run of iowatcher -- I\ndidn\u0027t separate out just the rsvg-convert portion.\n\nGiven the above results, it seems like a reasonable thing to spawn one\nrsvg-convert process per cpu.\n\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f011d96f260a2be5dcc2ad9f4d1bf2d591946723",
      "tree": "6cbe2e24374b01de9efc1ba14aa48ce483bde571",
      "parents": [
        "70d5ca2d5f3d6b97c11c641b7e0c5836983219a0"
      ],
      "author": {
        "name": "Jeff Moyer",
        "email": "jmoyer@redhat.com",
        "time": "Thu Aug 30 18:14:20 2018 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Aug 30 20:57:53 2018 -0600"
      },
      "message": "iowatcher: don\u0027t add Q events to the io hash\n\nHi,\n\nBryan Gurney reported iowatcher taking a *really* long time to generate\na movie for 16GiB worth of trace data.  I took a look, and the io hash\nwas growing without bounds.  The reason was that the I/O pattern looks\nlike this:\n\n259,0    5        8     0.000208501 31708  A   W 5435592 + 8 \u003c- (259,1) 5433544\n259,1    5        9     0.000209537 31708  Q   W 5435592 + 8 [kvdo30:bioQ0]\n259,1    5       10     0.000209880 31708  G   W 5435592 + 8 [kvdo30:bioQ0]\n259,0    5       11     0.000211064 31708  A   W 5435600 + 8 \u003c- (259,1) 5433552\n259,1    5       12     0.000211347 31708  Q   W 5435600 + 8 [kvdo30:bioQ0]\n259,1    5       13     0.000212957 31708  M   W 5435600 + 8 [kvdo30:bioQ0]\n259,0    5       14     0.000213379 31708  A   W 5435608 + 8 \u003c- (259,1) 5433560\n259,1    5       15     0.000213629 31708  Q   W 5435608 + 8 [kvdo30:bioQ0]\n259,1    5       16     0.000213937 31708  M   W 5435608 + 8 [kvdo30:bioQ0]\n...\n259,1    5      107     0.000246274 31708  D   W 5435592 + 256 [kvdo30:bioQ0]\n\nFor each of those Q events, an entry was created in the io_hash.  Then,\nupon I/O completion, only the first event (with the right starting\nsector) was removed!  The runtime overhead of just iterating the hash\nchains was enormous.\n\nThe solution is to simply ignore the Q events, so long as there are D\nevents in the trace.  If there are no D events, then go ahead and hash\nthe Q events as before.  I\u0027m hoping that if we only have Q and C, that\nthey will actually be aligned.  If that\u0027s an incorrect assumption, we\ncould account merges in an rbtree.  I\u0027ll defer that work until someone\ncan show me blktrace data that needs it.\n\nThe comments should be self explanatory.  Review would be appreciated\nas the code isn\u0027t well documented, and I don\u0027t know if I\u0027m missing some\nhidden assumption about the data.\n\nBefore applying this patch, iowatcher would take more than 12 hours to\ncomplete.  After the patch:\n\nreal\t9m44.476s\nuser\t41m35.426s\nsys\t3m29.106s\n\n\u0027nuf said.\n\nCheers,\nJeff\n\nReviewed-by: Chris Mason \u003cclm@fb.com\u003e\nSigned-off-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "70d5ca2d5f3d6b97c11c641b7e0c5836983219a0",
      "tree": "cb700221fe983b09fc197006c4a4132247e73d1c",
      "parents": [
        "d61ff409cb4dda31386373d706ea0cfb1aaac5b7"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed Mar 28 15:26:36 2018 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed May 16 13:09:58 2018 -0600"
      },
      "message": "make btt scripts python3-ready\n\nMany distributions are moving to python3 by default.  Here\u0027s\nan attempt to make the python scripts in blktrace python3-ready.\n\nMost of this was done with automated tools.  I hand fixed some\nspace-vs tab issues, and cast an array index to integer.  It\npasses rudimentary testing when run under python2.7 as well\nas python3.\n\nThis doesn\u0027t do anything with the shebangs, it leaves them both\ninvoking whatever \"env python\" coughs up on the system.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d61ff409cb4dda31386373d706ea0cfb1aaac5b7",
      "tree": "1ff8a77be6bb4c144344dacb0f31c25bf7a2a72b",
      "parents": [
        "93d9e5b5082258f3570dbc56202276284575fc11"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed May 02 10:24:17 2018 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed May 02 10:24:17 2018 -0600"
      },
      "message": "btt: make device/devno use PATH_MAX to avoid overflow\n\nHerbo Zhang reports:\n\nI found a bug in blktrace/btt/devmap.c. The code is just as follows:\n\nhttps://git.kernel.org/pub/scm/linux/kernel/git/axboe/blktrace.git/tree/btt/devmap.c?id\u003d8349ad2f2d19422a6241f94ea84d696b21de4757\n\n       struct devmap {\n\nstruct list_head head;\nchar device[32], devno[32];    // #1\n};\n\nLIST_HEAD(all_devmaps);\n\nstatic int dev_map_add(char *line)\n{\nstruct devmap *dmp;\n\nif (strstr(line, \"Device\") !\u003d NULL)\nreturn 1;\n\ndmp \u003d malloc(sizeof(struct devmap));\nif (sscanf(line, \"%s %s\", dmp-\u003edevice, dmp-\u003edevno) !\u003d 2) {  //#2\nfree(dmp);\nreturn 1;\n}\n\nlist_add_tail(\u0026dmp-\u003ehead, \u0026all_devmaps);\nreturn 0;\n}\n\nint dev_map_read(char *fname)\n{\nchar line[256];   // #3\nFILE *fp \u003d my_fopen(fname, \"r\");\n\nif (!fp) {\nperror(fname);\nreturn 1;\n}\n\nwhile (fscanf(fp, \"%255[a-zA-Z0-9 :.,/_-]\\n\", line) \u003d\u003d 1) {\nif (dev_map_add(line))\nbreak;\n}\n\nfclose(fp);\nreturn 0;\n}\n\n The line length is 256, but the dmp-\u003edevice, dmp-\u003edevno  max length\nis only 32. We can put strings longer than 32 into dmp-\u003edevice and\ndmp-\u003edevno , and then they will be overflowed.\n\n we can trigger this bug just as follows:\n\n $ python -c \"print \u0027A\u0027*256\" \u003e ./test\n    $ btt -M ./test\n\n    *** Error in btt\u0027: free(): invalid next size (fast): 0x000055ad7349b250 ***\n    \u003d\u003d\u003d\u003d\u003d\u003d\u003d Backtrace: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f7f158ce7e5]\n    /lib/x86_64-linux-gnu/libc.so.6(+0x7fe0a)[0x7f7f158d6e0a]\n    /lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f7f158da98c]\n    btt(+0x32e0)[0x55ad7306f2e0]\n    btt(+0x2c5f)[0x55ad7306ec5f]\n    btt(+0x251f)[0x55ad7306e51f]\n    /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f7f15877830]\n    btt(+0x26b9)[0x55ad7306e6b9]\n    \u003d\u003d\u003d\u003d\u003d\u003d\u003d Memory map: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    55ad7306c000-55ad7307f000 r-xp 00000000 08:14 3698139\n      /usr/bin/btt\n    55ad7327e000-55ad7327f000 r--p 00012000 08:14 3698139\n      /usr/bin/btt\n    55ad7327f000-55ad73280000 rw-p 00013000 08:14 3698139\n      /usr/bin/btt\n    55ad73280000-55ad73285000 rw-p 00000000 00:00 0\n    55ad7349a000-55ad734bb000 rw-p 00000000 00:00 0\n      [heap]\n    7f7f10000000-7f7f10021000 rw-p 00000000 00:00 0\n    7f7f10021000-7f7f14000000 ---p 00000000 00:00 0\n    7f7f15640000-7f7f15656000 r-xp 00000000 08:14 14942237\n      /lib/x86_64-linux-gnu/libgcc_s.so.1\n    7f7f15656000-7f7f15855000 ---p 00016000 08:14 14942237\n      /lib/x86_64-linux-gnu/libgcc_s.so.1\n    7f7f15855000-7f7f15856000 r--p 00015000 08:14 14942237\n      /lib/x86_64-linux-gnu/libgcc_s.so.1\n    7f7f15856000-7f7f15857000 rw-p 00016000 08:14 14942237\n      /lib/x86_64-linux-gnu/libgcc_s.so.1\n    7f7f15857000-7f7f15a16000 r-xp 00000000 08:14 14948477\n      /lib/x86_64-linux-gnu/libc-2.23.so\n    7f7f15a16000-7f7f15c16000 ---p 001bf000 08:14 14948477\n      /lib/x86_64-linux-gnu/libc-2.23.so\n    7f7f15c16000-7f7f15c1a000 r--p 001bf000 08:14 14948477\n      /lib/x86_64-linux-gnu/libc-2.23.so\n    7f7f15c1a000-7f7f15c1c000 rw-p 001c3000 08:14 14948477\n      /lib/x86_64-linux-gnu/libc-2.23.so\n    7f7f15c1c000-7f7f15c20000 rw-p 00000000 00:00 0\n    7f7f15c20000-7f7f15c46000 r-xp 00000000 08:14 14948478\n      /lib/x86_64-linux-gnu/ld-2.23.so\n    7f7f15e16000-7f7f15e19000 rw-p 00000000 00:00 0\n    7f7f15e42000-7f7f15e45000 rw-p 00000000 00:00 0\n    7f7f15e45000-7f7f15e46000 r--p 00025000 08:14 14948478\n      /lib/x86_64-linux-gnu/ld-2.23.so\n    7f7f15e46000-7f7f15e47000 rw-p 00026000 08:14 14948478\n      /lib/x86_64-linux-gnu/ld-2.23.so\n    7f7f15e47000-7f7f15e48000 rw-p 00000000 00:00 0\n    7ffdebe5c000-7ffdebe7d000 rw-p 00000000 00:00 0\n      [stack]\n    7ffdebebc000-7ffdebebe000 r--p 00000000 00:00 0\n      [vvar]\n    7ffdebebe000-7ffdebec0000 r-xp 00000000 00:00 0\n      [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0\n      [vsyscall]\n    [1]    6272 abort      btt -M test\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "93d9e5b5082258f3570dbc56202276284575fc11",
      "tree": "26ce9f30d4b6d01864abfbe52e98483c64016a43",
      "parents": [
        "8349ad2f2d19422a6241f94ea84d696b21de4757"
      ],
      "author": {
        "name": "Weiping Zhang",
        "email": "zhangweiping@didichuxing.com",
        "time": "Sat Apr 07 17:12:18 2018 +0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Apr 09 08:36:43 2018 -0600"
      },
      "message": "blkparse: add documetation for \u0027R\u0027 requeue request\n\nSigned-off-by: Weiping Zhang \u003czhangweiping@didichuxing.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "8349ad2f2d19422a6241f94ea84d696b21de4757",
      "tree": "09021275b0a61024a91544e0367c1fec44ee261e",
      "parents": [
        "e63098f39398bde67be9b64a49deece1c60614df"
      ],
      "author": {
        "name": "Weiping Zhang",
        "email": "zhangweiping@didichuxing.com",
        "time": "Sat Apr 07 17:12:00 2018 +0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Apr 09 08:36:41 2018 -0600"
      },
      "message": "blkparse: remove duplicated entry for flag M\n\nremove dupliated entry \u0027M\u0027 for man page of blkparse.\n\nReviewed-by: Steffen Maier \u003cmaier@linux.ibm.com\u003e\nSigned-off-by: Weiping Zhang \u003czhangweiping@didichuxing.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "e63098f39398bde67be9b64a49deece1c60614df",
      "tree": "f120ac537bcbedc3d5b942f6d48f627145cb12af",
      "parents": [
        "519fd9a5d08d85f3d9cb4192d624fe8351e40232"
      ],
      "author": {
        "name": "weiping zhang",
        "email": "zhangweiping@didichuxing.com",
        "time": "Mon Jan 15 23:53:42 2018 +0800"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Jan 24 08:40:52 2018 -0700"
      },
      "message": "blktrace: don\u0027t stop tracer if not setup trace successfully\n\nif we run blktrace on same device twice, the second time will failed\nto ioctl(BLKTRACESETUP), then it will call __stop_tracer, which lead\nthe first blktrace failed to access debugfs entries. So this patch add\na check to handle this case, to avoid stop tracer uncondionally.\n\nSigned-off-by: weiping zhang \u003czhangweiping@didichuxing.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "519fd9a5d08d85f3d9cb4192d624fe8351e40232",
      "tree": "6dbeff81198e3c6eb8a465fff8ce60a7dfabe2c5",
      "parents": [
        "d1398e339585f6750f7158c50c98861b68dddc8b"
      ],
      "author": {
        "name": "Robin H. Johnson",
        "email": "robbat2@gentoo.org",
        "time": "Tue Jan 23 17:57:55 2018 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jan 23 15:59:13 2018 -0700"
      },
      "message": "fix parallel build failures\n\nWhen building in parallel, the btreplay/btrecord and btreplay/btreplay\ntargets cause make to kick off two jobs for `make -C btreplay` and they\nsometimes end up clobbering each other.  We could fix this by making one\na dependency of the other, but it\u0027s a bit cleaner to refactor things to\nbe based on subdirs.  This way changes in subdirs also get noticed:\n  $ touch btreplay/*.[ch]\n  $ make\n  \u003cbtreplay is now correctly updated\u003e\n\nSigned-off-by: Robin H. Johnson \u003crobbat2@gentoo.org\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d1398e339585f6750f7158c50c98861b68dddc8b",
      "tree": "6b699b3b472ac84a90adc67a8fa49b544eecd36a",
      "parents": [
        "8fc451c6b0b9a7db7c376ea6865c35321e561f00"
      ],
      "author": {
        "name": "Robin H. Johnson",
        "email": "robbat2@gentoo.org",
        "time": "Tue Jan 23 17:47:19 2018 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jan 23 15:56:12 2018 -0700"
      },
      "message": "respect LDFLAGS when linking programs\n\nSigned-off-by: Robin H. Johnson \u003crobbat2@gentoo.org\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "8fc451c6b0b9a7db7c376ea6865c35321e561f00",
      "tree": "ecbc1551e497e0b60e3ddf88b106e2fc9df4815c",
      "parents": [
        "07d76e12aa46fa0bad4b736d581ec5aca62264f7"
      ],
      "author": {
        "name": "Gwendal Grignou",
        "email": "gwendal@chromium.org",
        "time": "Fri Aug 18 15:00:22 2017 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Nov 07 11:25:38 2017 -0700"
      },
      "message": "btt: Fix overlapping IO stats.\n\nKeep scanning the tree for overlapping IO otherwise Q2G and process\ntraces will be incorrect.\n\nLet assume we have 2 IOs:\n\nA                                      A+a\n|---------------------------------------|\n       B                B+b\n       |-----------------|\n\nIn the red/black tree we have:\n\n                    o -\u003e [A,A+a]\n                   / \\\n                left right\n                 /    \\\n           [...]o      o -\u003e [B, B+b]\n\nIn the current code, if we would not be able to find [B+b] in the tree:\nB is greater than A, so we won\u0027t go left\nB+b is smaller than A+a, so we are not going right either.\n\nWhen we have a [X, X+x] IO to look for:\nWe need to check for right when either:\n X+x \u003e\u003d A+a (for merged IO)\nand\n X \u003e A (for overlapping IO)\n\nTEST\u003dCheck with a trace with overlapping IO: Q2C and Q2G are expected.\n\nSigned-off-by: Gwendal Grignou \u003cgwendal@chromium.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "07d76e12aa46fa0bad4b736d581ec5aca62264f7",
      "tree": "ab4562e7ddde20d740abcdc24c819706a17c1b48",
      "parents": [
        "dae2f95b38eeaaa3c4c5b350dd759f482802c2c9"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Nov 05 08:54:41 2017 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Nov 05 08:54:41 2017 -0700"
      },
      "message": "btt/devs: silence warning on sprintf overflow\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "dae2f95b38eeaaa3c4c5b350dd759f482802c2c9",
      "tree": "4b55287f760a1c18d13054121341859a80a07c3f",
      "parents": [
        "cca113f2fe0759b91fd6a0e10fdcda2c28f18a7e"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Nov 05 08:52:21 2017 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sun Nov 05 08:52:21 2017 -0700"
      },
      "message": "jhash: fix annoying gcc fall through warnings\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "cca113f2fe0759b91fd6a0e10fdcda2c28f18a7e",
      "tree": "4ae5c3288b8071e42f3dcaf6d420a29038b52994",
      "parents": [
        "ab6809de8aa6c1e2bac1e2d9167e5232f0cccfeb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Nov 04 22:13:06 2017 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Nov 04 22:13:06 2017 -0600"
      },
      "message": "Blktrace 1.2.0\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "ab6809de8aa6c1e2bac1e2d9167e5232f0cccfeb",
      "tree": "645e1072f43b6fbd3e543056dc4526a18773b4d5",
      "parents": [
        "8772bc4fb049bdd879de5952d6f291a34112fae0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Nov 04 22:10:00 2017 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Sat Nov 04 22:10:00 2017 -0600"
      },
      "message": "blktrace: abort if device ioctl setup fails\n\nIf we fail doing the BLKTRACESETUP ioctl, blktrace still marches on\nand sets up the rest. This results in errors like the below:\n\nblktrace /dev/sdf\nBLKTRACESETUP(2) /dev/sdf failed: 5/Input/output error\nThread 1 failed open /sys/kernel/debug/block/(null)/trace1: 2/No such file or directory\nThread 3 failed open /sys/kernel/debug/block/(null)/trace3: 2/No such file or directory\nThread 2 failed open /sys/kernel/debug/block/(null)/trace2: 2/No such file or directory\n[...]\nFAILED to start thread on CPU 0: 1/Operation not permitted\nFAILED to start thread on CPU 1: 1/Operation not permitted\nFAILED to start thread on CPU 2: 1/Operation not permitted\n\nand blktrace continues to run, though it can\u0027t do anything in this\nstate.\n\nIf the ioctl setup fails, just abort.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "8772bc4fb049bdd879de5952d6f291a34112fae0",
      "tree": "dfa287a67374349820f7b666effae2cace0a2866",
      "parents": [
        "d7a1f72671eb67a7d0cd261ea4520b9551c51f5f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jan 26 11:23:55 2017 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu Jan 26 10:06:05 2017 -0700"
      },
      "message": "blktrace: Create empty output files for non-existent cpus\n\nWhen CPU number space is sparse, we don\u0027t start threads for non-existent\nCPUs. As a result, there are no output files created for these CPUs\nwhich confuses tools like blkparse which expect that CPU numbers are\ncontiguous. Create fake empty files for non-existent CPUs so that other\ntools don\u0027t have to bother.\n\nNote that in network mode, the server will create all files in the range\n0..max_cpus automatically.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "d7a1f72671eb67a7d0cd261ea4520b9551c51f5f",
      "tree": "eaaf30944b6ee280dc17e5f1ac895936f5b4117e",
      "parents": [
        "d045a704a378b9041ebe3d60c497a5656a79d439"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jan 26 11:23:54 2017 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu Jan 26 10:06:04 2017 -0700"
      },
      "message": "blktrace: Reorganize creation of output file name\n\nWe would like to generate output file name without having corresponding\niop structure. Reorganize the function to allow that. Also fix couple of\noverflows possible when generating the file name when we are modifying\nthe code anyway.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "d045a704a378b9041ebe3d60c497a5656a79d439",
      "tree": "4fe14f6b5067fc602e373f62ffdc327b701a1d12",
      "parents": [
        "d1ab783430f5a832e973ed9a293da146c04c6702"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Jan 26 11:23:53 2017 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu Jan 26 10:06:02 2017 -0700"
      },
      "message": "blktrace: Add support for sparse CPU numbers\n\nOn some machines CPU numbers do not form a contiguous interval. In such\ncases blktrace will fail to start threads for missing CPUs and exit\neffectively rendering itself unusable.\n\nAdd support into blktrace to handle systems with sparse CPU numbers.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "d1ab783430f5a832e973ed9a293da146c04c6702",
      "tree": "1ed81dd33db97efd1b286dd6a40b28c5b827ae09",
      "parents": [
        "86596c7579c6e374e6e24c2b14398b0808a93f18"
      ],
      "author": {
        "name": "Thomas Petazzoni",
        "email": "thomas.petazzoni@free-electrons.com",
        "time": "Tue Aug 23 16:41:21 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Tue Aug 23 08:45:45 2016 -0600"
      },
      "message": "iowatcher: link with -lrt\n\nSome C libraries (notably uClibc) have the posix_spawn*() functions in\nlibrt, so let\u0027s link iowatcher with -lrt.\n\nSigned-off-by: Thomas Petazzoni \u003cthomas.petazzoni@free-electrons.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "86596c7579c6e374e6e24c2b14398b0808a93f18",
      "tree": "98a9cf4a1766840c612ac812c35eb073eda6ebf9",
      "parents": [
        "7644909627859a9d9d837df8b2ecf21a169f0ff0"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Wed May 18 11:15:07 2016 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu May 19 15:57:22 2016 -0600"
      },
      "message": "blktrace: remove -k from manpage synopsis\n\nAn earlier commit:\n\n  fb7f8667 blktrace: disable kill option - take 2\n\nremoved the \"-k\" option documentation, but left\nit in the synopsis.\n\nThis is a bit unusual and unhelpful and probably\nunintended; remove it from the synopsis as well.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "7644909627859a9d9d837df8b2ecf21a169f0ff0",
      "tree": "a40015a33561e3244a1c3538bb0b2c2352fc4e1c",
      "parents": [
        "765676b7ddd4cb20a7b0038cd051d44c3bb87f22"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.com",
        "time": "Thu May 05 17:17:12 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu May 05 09:20:18 2016 -0600"
      },
      "message": "Fixup graph name in help text\n\nProper graph name is queue-depth, not queue_depth.\n\nSigned-off-by: Jan Kara \u003cjack@suse.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "765676b7ddd4cb20a7b0038cd051d44c3bb87f22",
      "tree": "0246e67023c96b42f191220a4593ad6c044bb06f",
      "parents": [
        "8a544092665186e483d55c57adc66d033dbb3bd3"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 05 17:17:11 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu May 05 09:20:18 2016 -0600"
      },
      "message": "Separate prefix in legend with space\n\nTrace label isn\u0027t properly separated with space from suffix (Read /\nWrite). Fix it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "8a544092665186e483d55c57adc66d033dbb3bd3",
      "tree": "0f57508b2ede20dd37eea555c4dea7a19853d418",
      "parents": [
        "ca215e985fadd8de53605ece5d31f924e0f8fde0"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 05 17:17:10 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu May 05 09:20:18 2016 -0600"
      },
      "message": "Don\u0027t prepend blktrace destination dir if we didn\u0027t run blktrace\n\nWhen user specifies trace files directly via -t option, it doesn\u0027t make\nsense to prepend blktrace destination directory to them (it is\nespecially confusing if you specify absolute path names with -t option\nand this logic breaks the path names). So avoid that.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "ca215e985fadd8de53605ece5d31f924e0f8fde0",
      "tree": "7c610887309aa749509b7a8a2b24fd4fe218dbfe",
      "parents": [
        "1200fd07bb6f71be72749b306bd7647fe8009af5"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 05 17:17:09 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu May 05 09:20:18 2016 -0600"
      },
      "message": "Zero sectors are strange\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "1200fd07bb6f71be72749b306bd7647fe8009af5",
      "tree": "bca5f763d17a8cfd2397f35df7f723f8e3a4f973",
      "parents": [
        "4019edfffaf17b72d75ed14b44105aec6eb254e2"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 05 17:17:08 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu May 05 09:20:18 2016 -0600"
      },
      "message": "btt: Replace overlapping IO\n\nCurrently btt keeps the original IO in its RB-tree even if it sees new\nIO that is beginning at the same sector. However such IO most likely\nmeans that we have just lost the completion event for the IO that is\nstill in the tree. So in such case replacing the IO in RB-tree makes\nmore sense to avoid bogus IOs being reported as taking huge amount of\ntime.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "4019edfffaf17b72d75ed14b44105aec6eb254e2",
      "tree": "0c203f7d60f3244e859a994eb4bcb1dd513fd9a0",
      "parents": [
        "f53e6d27eabe09adcb5ec04549d8442b447f6104"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu May 05 17:17:07 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu May 05 09:20:18 2016 -0600"
      },
      "message": "iowatcher: Use queue events if issue not available\n\nCurrently queue depth and latency graphs are generated from ISSUE and\nCOMPLETE events. For traces which miss the ISSUE events (e.g. from\ndevice mapper) use QUEUE events instead. The result won\u0027t be as great\nbut it still conveys some useful information.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "f53e6d27eabe09adcb5ec04549d8442b447f6104",
      "tree": "36232b1e5460a92a110cc8049e04e7f0a21c70cc",
      "parents": [
        "5122a87b22ade9cf2920dc6f9e24ce1a745f3ff6"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.com",
        "time": "Thu May 05 17:17:06 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu May 05 09:20:18 2016 -0600"
      },
      "message": "Process notify events outside of given interval\n\nWhen parsing blktrace data, process notify events even outside the\nspecified interval. This way we can learn about time stamps, process\nnames etc.\n\nSigned-off-by: Jan Kara \u003cjack@suse.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "5122a87b22ade9cf2920dc6f9e24ce1a745f3ff6",
      "tree": "6879e556dd39e23ae542978c63ce0a967e4f38fa",
      "parents": [
        "b18f4c129dde9783be64d699e2f261bb6729f732"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.com",
        "time": "Thu May 05 17:17:05 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu May 05 09:20:18 2016 -0600"
      },
      "message": "Use maximum over all traces for queue depth\n\nSo far we used maximum of the first trace for the maximum range of the\nqueue depth graph. Use maximum over all traces similarly as for other\nline graphs.\n\nSigned-off-by: Jan Kara \u003cjack@suse.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "b18f4c129dde9783be64d699e2f261bb6729f732",
      "tree": "a7e2d779b76eeface3ffb10efbeb4c29860ecbaa",
      "parents": [
        "d1422556dbff03e982aeb2faf5893b4363621bee"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.com",
        "time": "Thu May 05 17:17:04 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu May 05 09:20:18 2016 -0600"
      },
      "message": "Better max estimate for line graphs\n\nUse maximum of rolling average as the upper range end for the line graph\nto use better the available space in the plot.\n\nSigned-off-by: Jan Kara \u003cjack@suse.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "d1422556dbff03e982aeb2faf5893b4363621bee",
      "tree": "c0b002d6328d751940f0183126416296011705c9",
      "parents": [
        "cbd4bc0a3f6386cd000cb842b9f1f6325e301623"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Tue May 03 08:34:50 2016 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Tue May 03 08:34:50 2016 -0600"
      },
      "message": "btt/unplug_hist: fix bad memset\n\nJust replace the malloc/memset with a calloc().\n\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "cbd4bc0a3f6386cd000cb842b9f1f6325e301623",
      "tree": "e4c21fc6b30580e45df0a59780c752f65d67fcb0",
      "parents": [
        "747f0e2870e6672c6af832226e10cfa8a39ff109"
      ],
      "author": {
        "name": "Olaf Hering",
        "email": "olaf@aepfle.de",
        "time": "Fri Feb 20 09:06:39 2015 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Mon Apr 25 08:54:34 2016 -0600"
      },
      "message": "btreplay: remove timestamps\n\nUsing __DATE__ and __TIME__ will break reproducible builds. The\nresulting binary will change with each rebuild even if the source and\ntoolchain is identical.\n\nSigned-off-by: Olaf Hering \u003colaf@aepfle.de\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "747f0e2870e6672c6af832226e10cfa8a39ff109",
      "tree": "816ed121a5962111f20180a4b6cfd7531dc09ddc",
      "parents": [
        "7338236ab386515bbcecf5c05bca6a034c12d0b9"
      ],
      "author": {
        "name": "Roman Pen",
        "email": "r.peniaev@gmail.com",
        "time": "Sat Apr 23 13:44:10 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Mon Apr 25 08:53:20 2016 -0600"
      },
      "message": "btreplay: make Ctrl-C work\n\nis_reap_done() must also check that SIGINT or SIGTERM have come, or\nwe hang forever with such backtraces after Ctrl-C:\n\n (gdb) thr a a bt\n\n Thread 3 (Thread 0x7fbff8ff9700 (LWP 12607)):\n #0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185\n #1  0x0000000000402698 in replay_rec () at btreplay.c:1035\n #2  0x00007fc001fe5454 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0\n #3  0x00007fc001d1eecd in ?? () from /lib/x86_64-linux-gnu/libc.so.6\n #4  0x0000000000000000 in ?? ()\n\n Thread 2 (Thread 0x7fbfea7fc700 (LWP 12611)):\n #0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185\n #1  0x0000000000402698 in replay_rec () at btreplay.c:1035\n #2  0x00007fc001fe5454 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0\n #3  0x00007fc001d1eecd in ?? () from /lib/x86_64-linux-gnu/libc.so.6\n #4  0x0000000000000000 in ?? ()\n\n Thread 1 (Thread 0x7fc00282e700 (LWP 12597)):\n #0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185\n #1  0x0000000000402303 in __wait_cv () at btreplay.c:413\n #2  0x0000000000401ae8 in main () at btreplay.c:426\n\nSigned-off-by: Roman Pen \u003cr.peniaev@gmail.com\u003e\nCc: Jens Axboe \u003caxboe@fb.com\u003e\nCc: \u003clinux-btrace@vger.kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "7338236ab386515bbcecf5c05bca6a034c12d0b9",
      "tree": "461034e37be148ddd0a8ef0676b4a7b0635eb5dd",
      "parents": [
        "f6541f75f2822252b057f08e9f5f0c40d4079a8c"
      ],
      "author": {
        "name": "Roman Pen",
        "email": "r.peniaev@gmail.com",
        "time": "Sat Apr 23 13:44:09 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Mon Apr 25 08:53:18 2016 -0600"
      },
      "message": "btreplay: fix sched_{set|get}affinity\n\ngetpid() is a pid of a process, at least tid must be provided.\nBut if zero is passed, then calling thread will be used.\nThat exactly what is needed.\n\nSigned-off-by: Roman Pen \u003cr.peniaev@gmail.com\u003e\nCc: Jens Axboe \u003caxboe@fb.com\u003e\nCc: \u003clinux-btrace@vger.kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "f6541f75f2822252b057f08e9f5f0c40d4079a8c",
      "tree": "95fbcb4026f6fb812f638c3d8a02605a426446e2",
      "parents": [
        "80c4041b2e7a7d5afb75df563bf51bb27773c095"
      ],
      "author": {
        "name": "Roman Pen",
        "email": "r.peniaev@gmail.com",
        "time": "Sat Apr 23 13:44:08 2016 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Mon Apr 25 08:53:16 2016 -0600"
      },
      "message": "btreplay: fix memory corruption caused by CPU_ZERO_S\n\nSize should be provided, not cpus number.\n\nSigned-off-by: Roman Pen \u003cr.peniaev@gmail.com\u003e\nCc: Jens Axboe \u003caxboe@fb.com\u003e\nCc: \u003clinux-btrace@vger.kernel.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "80c4041b2e7a7d5afb75df563bf51bb27773c095",
      "tree": "24269d0849176846ed7161b28c3cf7b97ce76029",
      "parents": [
        "8a1209713563b4dedea962909c18b941fb09d01a"
      ],
      "author": {
        "name": "Abutalib Aghayev",
        "email": "agayev@gmail.com",
        "time": "Tue Feb 09 08:17:50 2016 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Tue Feb 09 08:17:50 2016 -0700"
      },
      "message": "blktrace: Use number of online CPUs\n\nCurrently, blktrace uses _SC_NPROCESSORS_CONF to find out the number of\nCPUs.  This is a problem, because if you reduce the number of online\nCPUs by passing kernel parameter maxcpus, then blktrace fails to start\nwith the error:\n\nFAILED to start thread on CPU 4: 22/Invalid argument\nFAILED to start thread on CPU 5: 22/Invalid argument\n...\n\nThe attached patch fixes it to use _SC_NPROCESSORS_ONLN.\n\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "8a1209713563b4dedea962909c18b941fb09d01a",
      "tree": "aa1134b922a62f7d465f19f5deac52d3c10f2823",
      "parents": [
        "dd093eb1c48e0d86b835758b96a9886fb7773aa4"
      ],
      "author": {
        "name": "John Groves",
        "email": "John@groves.ne",
        "time": "Fri Jan 08 11:46:03 2016 -0700"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Fri Jan 08 11:46:03 2016 -0700"
      },
      "message": "Add the \"-a discard\" filter option to the blktrace.8 man page\n\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "dd093eb1c48e0d86b835758b96a9886fb7773aa4",
      "tree": "a41be488eb9c77e2236d6c39b0b653d730afd64d",
      "parents": [
        "f55e6d10cf797a0418a26d59f8bd40d50753b153"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Tue Sep 15 08:48:06 2015 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Tue Sep 15 08:48:06 2015 -0600"
      },
      "message": "Fix warnings on newer gcc\n\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "f55e6d10cf797a0418a26d59f8bd40d50753b153",
      "tree": "db6f683aab46bb6f91e6bbf916be688f4ca4c886",
      "parents": [
        "2564a6029e55d6a0507ebb28a5a01f5dffb0bd56"
      ],
      "author": {
        "name": "Khem Raj",
        "email": "raj.khem@gmail.com",
        "time": "Tue Sep 15 00:05:21 2015 +0000"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Tue Sep 15 08:44:05 2015 -0600"
      },
      "message": "include sys/types.h for dev_t definition\n\nAvoids the build failures when sys/types.h does not get included\nindirectly through other headers.\n\nSigned-off-by: Khem Raj \u003craj.khem@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "2564a6029e55d6a0507ebb28a5a01f5dffb0bd56",
      "tree": "6795fe80baef6274e55616d02215fec79a928a77",
      "parents": [
        "88d38b4d0a5b33332fa80d7028a87c0717bb5d75"
      ],
      "author": {
        "name": "Josef Cejka",
        "email": "jcejka@suse.com",
        "time": "Thu Aug 20 11:52:51 2015 -0400"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu Aug 20 08:58:08 2015 -0700"
      },
      "message": "btreplay: Fix typo in scaling up the dynamic cpu set size.\n\nIn get_ncpus, we default to using 4096 CPUs if _SC_NPROCESSORS_CONF isn\u0027t\nenabled.  If that is insufficient, sched_getaffinity will fail and we\nretry after doubling the size of the cpu_set_t allocation.  There\u0027s a typo\nin there that means we don\u0027t actually double the size and will loop\nforever allocating the same sized cpu_set_t instead.\n\nSigned-off-by: Josef Cejka \u003cjcejka@suse.com\u003e\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "88d38b4d0a5b33332fa80d7028a87c0717bb5d75",
      "tree": "50dc62fa270918b9ca1a628719108daac5872247",
      "parents": [
        "2cf87e6092da7b36d5ef10c830ddf12d9e18121d"
      ],
      "author": {
        "name": "Olaf Hering",
        "email": "olaf@aepfle.de",
        "time": "Wed Feb 18 13:03:55 2015 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Wed Feb 18 08:50:02 2015 -0800"
      },
      "message": "Refer to sda instead of hda in man pages\n\nSigned-off-by: Olaf Hering \u003colaf@aepfle.de\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "2cf87e6092da7b36d5ef10c830ddf12d9e18121d",
      "tree": "7d2a8924cf98fddf8136fcf268f060169c3fd5da",
      "parents": [
        "558a088d485c530027b369c77de5cd555b6b2cec"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu Sep 25 15:17:06 2014 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu Sep 25 15:17:06 2014 -0600"
      },
      "message": "iowatcher: wrap system() in a checker function\n\nKills the errors on unchecked return of system()\n\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "558a088d485c530027b369c77de5cd555b6b2cec",
      "tree": "21b6637033fdec3af023e0a0d11b420a19fc014f",
      "parents": [
        "f15d76095e46223a70964136a9d13bc274814b8b",
        "a92868dc2a78b394a27925991bb7845a68d5c27d"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu Sep 25 15:11:24 2014 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu Sep 25 15:11:24 2014 -0600"
      },
      "message": "Merge branch \u0027for-upstream\u0027 of https://github.com/andyprice/blktrace\n\nAndrew says:\n\nHere are some trivial tweaks which I found were needed or desirable while\nadding iowatcher to the blktrace packaging in Fedora. They improve the\nintegration of iowatcher into the tree and reduce duplication of docs.\n"
    },
    {
      "commit": "f15d76095e46223a70964136a9d13bc274814b8b",
      "tree": "104d8c7f0becd124e69a3b602866b80f3a8da0c1",
      "parents": [
        "fe311e7c01593444f397d6d012ec212c4b22f514",
        "3d523ea3e426c8363cb6c78308ce6a85f3e8aa15"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu Sep 25 15:11:06 2014 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Thu Sep 25 15:11:06 2014 -0600"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/blktrace\n\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n\nConflicts:\n\tiowatcher/Makefile\n"
    },
    {
      "commit": "a92868dc2a78b394a27925991bb7845a68d5c27d",
      "tree": "d9cffac3a7021531df6403f66aa4e8142e77c30d",
      "parents": [
        "cb42a6ee1ad1c744b0dca744556bc5d15664b2cb"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Thu Sep 25 21:00:31 2014 +0100"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Thu Sep 25 21:18:25 2014 +0100"
      },
      "message": "Add iowatcher requirements to README\n\nMerge the requirements bits of iowatcher/README into README\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    }
  ],
  "next": "3d523ea3e426c8363cb6c78308ce6a85f3e8aa15"
}
