)]}'
{
  "log": [
    {
      "commit": "3d523ea3e426c8363cb6c78308ce6a85f3e8aa15",
      "tree": "4be4a12e28bce7213baea96414b862a7661f7963",
      "parents": [
        "40e637347cb326f6f699542558119a716f55d74a"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Thu Sep 25 16:13:17 2014 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Thu Sep 25 16:13:17 2014 -0400"
      },
      "message": "iowatcher: check the return value from write()\n\nSigned-off-by: Chris Mason \u003cclm@fb.com\u003e\n"
    },
    {
      "commit": "40e637347cb326f6f699542558119a716f55d74a",
      "tree": "7d1592507af0493dc1c05c26cb4d75e38d829323",
      "parents": [
        "4eb0e11db526a9017fc609c6728bbdf9eb2b39ba"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Thu Sep 25 16:12:21 2014 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Thu Sep 25 16:12:21 2014 -0400"
      },
      "message": "iowatcher: fixup the Makefile\n\nWe were setting C\u003dgcc instead of CC\u003dgcc, and using -O0.  Fix both.\n\nSigned-off-by: Chris Mason \u003cclm@fb.com\u003e\n"
    },
    {
      "commit": "4eb0e11db526a9017fc609c6728bbdf9eb2b39ba",
      "tree": "f05fa0c5bde79f9a5d6d74fead989edbeb2c4613",
      "parents": [
        "5146fd4879fab6c791814e1c1e4e994f6449000d"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:09:51 2014 -0700"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:09:51 2014 -0700"
      },
      "message": "iowatcher: add iowatcher to the main blktrace Makefile\n\nSigned-off-by: Chris Mason \u003cclm@fb.com\u003e\n"
    },
    {
      "commit": "5146fd4879fab6c791814e1c1e4e994f6449000d",
      "tree": "8c1a69eb9d41d07ccf843a2af59e39c7e9b26849",
      "parents": [
        "838361c6cfb1319eadd59daaf9074dcdb92746e6",
        "265fabd8ce3a91436e060b1884d00e46d6a96d6f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:03:35 2014 -0700"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:03:35 2014 -0700"
      },
      "message": "Merge the iowatcher repository\n"
    },
    {
      "commit": "265fabd8ce3a91436e060b1884d00e46d6a96d6f",
      "tree": "0ca41e3b933abdeb0cdb64ef2273e5d0ccb0017a",
      "parents": [
        "177d648bdd959ad4de02ca07aece5e6053682816"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 09:44:45 2014 -0700"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Properly initialize trace.name in find_trace_file\n\nSigned-off-by: Chris Mason \u003cclm@fb.com\u003e\n"
    },
    {
      "commit": "177d648bdd959ad4de02ca07aece5e6053682816",
      "tree": "fac43ae29792cb4f35fd3089babff6709d6a7a11",
      "parents": [
        "5d9d4f4c13fc6db392ffb77f4f2ccca0454275de"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 06:16:01 2014 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Fix up some strcpy and strcat usage\n\nFix an unchecked strcpy and strcat in plot_io_movie():\n\n  $ ./iowatcher -t foo --movie -o foo.ogv -l $(printf \u0027x%.0s\u0027 {1..300})\n  [...]\n  *** buffer overflow detected ***: ./iowatcher terminated\n\nThere was also very similar code in plot_io() so a new function\nplot_io_legend() was added to factor out the common string building code\nand replace the buggy code with asprintf().\n\nAlso add a closedir() call to an error path in traces_list() to plug a\nresource leak and make iowatcher Coverity-clean (ignoring some\nfalse-positives).\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "5d9d4f4c13fc6db392ffb77f4f2ccca0454275de",
      "tree": "b8c6c2c65f66d1c5d5848f5a74cbe5ed77f1aac6",
      "parents": [
        "1775e06be69a946feec4a4d1049648c381dc2e72"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 03:58:40 2014 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Clean up some unused functions, make others static\n\nAdding -Wmissing-prototypes showed some functions could be made static\nand my \u0027findunused\u0027 script showed some functions weren\u0027t being called.\n\nThis patch was tested by building from scratch and running with various\ncombinations of options.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "1775e06be69a946feec4a4d1049648c381dc2e72",
      "tree": "ee46b600438eb590b1d2630388587925d07ca1e1",
      "parents": [
        "49559b611256ea542f3f9f74951bb787c418fbf8"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 03:32:17 2014 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Update usage info and improve man page\n\nBring the man page and usage string up-to-date with the new -p behaviour\nand improve the formatting and content of the man page.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "49559b611256ea542f3f9f74951bb787c418fbf8",
      "tree": "9e9ee4e93c410c088478c9d76d3a3834e9cafd4c",
      "parents": [
        "30420b587db62a3d919d7bc68ef2dd07df5c75fd"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 01:55:57 2014 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Convert start_mpstat to run_program\n\nFor consistency and deduplication, use run_program in start_mpstat.  Add\nthe ability to pass a path to run_program, which will be opened in the\nspawned process and used as stdout, in order to capture mpstat output.\nThis fixes a tricky descriptor leak in start_mpstat which could have\ncaused a race condition if it was fixed with close().\n\nSome output formatting tweaks have also been added and a bug from a\nprevious patch, where tracers were killed immediately when -p wasn\u0027t\nspecified, has been fixed.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "30420b587db62a3d919d7bc68ef2dd07df5c75fd",
      "tree": "47f5a61de3d1022b252d0a81a9b22d8e0a7f26dc",
      "parents": [
        "ce225d502b505e189c4c138224a3bc50d0e05be5"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 23:00:58 2014 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Convert start_blktrace to run_program\n\nRework start_blktrace and use run_program to launch blktrace. Move the\nargv-building into the function so that it\u0027s easier to work with and\nclean it up a bit. Add a signal parameter to wait_program to optionally\nkill the pid with a given signal before waiting for it.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "ce225d502b505e189c4c138224a3bc50d0e05be5",
      "tree": "8bcfbef9d28e041ea697265b1b0d3424f9f16823",
      "parents": [
        "33e3face4ae0c7e0f67e3a92edc8d1e818ef6515"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 18:22:53 2014 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Rework --prog to make arg processing safer\n\nPreviously the --prog option required the program-to-be-run to be\nspecified as a single string. This meant that shell escaping would be\nlost in translation and a sub-shell would be run. Rework --prog to not\ntake an argument and accept the arguments left after option processing\nhas ended as the argv for the program-to-be-run.\n\nAs we have the program as an argv, run_program2() can now be used to run\nit, and now that run_program() is no longer used we can remove it and\nremove the \u00272\u0027 from run_program2.\n\nNew usage example:\n\n # iowatcher -p -t foo -d /dev/sda3 sleep 10\n running blktrace blktrace -b 8192 -a queue -a complete -a issue -a notify -D . -d /dev/sda3 -o foo\n running \u0027sleep\u0027 \u002710\u0027\n sleep exited with 0\n ...\n\nDocs have been updated accordingly.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "33e3face4ae0c7e0f67e3a92edc8d1e818ef6515",
      "tree": "1e29a8a22026a20bf055d2664ef4b91446266bc7",
      "parents": [
        "7f64c1928f85235e01e6f268fdc4cbfc921b5c42"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 15:31:19 2014 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Separate program running from waiting\n\nUntil now run_program2() was a replacement for system() so it always\nwaited for the process to end before returning. To make this function\nmore useful move the waiting code into a separate function and add a\nmechanism to expect a specific exit code.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "7f64c1928f85235e01e6f268fdc4cbfc921b5c42",
      "tree": "1093c73ed92fb06345dce7cb4789e3f27576814b",
      "parents": [
        "c9e749da1b973efddc75ca4d66b9c662ab81b42b"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 03:49:22 2014 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Correct a couple of calloc calls\n\n(Caught by Coverity.) tf-\u003egdd_writes and tf-\u003egdd_reads are arrays of\npointers so update their allocations to use the correct element size.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "c9e749da1b973efddc75ca4d66b9c662ab81b42b",
      "tree": "6995cb60c03557f70951c1c1fbbfa3070abd8a81",
      "parents": [
        "d6b58e52984f6c53958266b09baa5360cf7cbb62"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 02:56:17 2014 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Simplify temp movie directory creation\n\nplot_io_movie() was calling create_movie_temp_dir() which unnecessarily\nstrdup()ed a string constant leaving plot_io_movie() to free it. Replace\nthe strdup() with a mutable char array and get rid of the free(). Merge\nthe few remaining lines which create the movie dir into plot_io_movie().\n\nAlso prune a duplicate declaration of start_mpstat() in tracers.h\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "d6b58e52984f6c53958266b09baa5360cf7cbb62",
      "tree": "aedfc9c56114ed40c73b1e32ec5123bb200d3553",
      "parents": [
        "6061d941fc91e079edf76402bab2056063637d96"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Mar 28 01:47:27 2014 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Merge trace dumping functions into one\n\nNow that combine_blktrace_devs() takes a list of traces it\u0027s fairly\ngeneric so we might as well merge blktrace_to_dump() into it. The latter\ncan be replaced with a call using a list with a single entry.\n\ncombine_blktrace_devs() is renamed dump_traces() because that\u0027s what it\ndoes.\n\nAlso eradicate the big global char array \u0027line\u0027 that was being used in a\nbunch of places along with some more unnecessary strdup()s.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "6061d941fc91e079edf76402bab2056063637d96",
      "tree": "2da95f37b1a96b821db8bbc51d430d2113525d46",
      "parents": [
        "c1ab63ed17189cacf1247751e8633f589c977a00"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Mar 28 01:42:47 2014 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Check program exit code properly\n\nThe return value of posix_spawnp() was being checked but the exit status\nof the child process was being ignored. This adds checks and error\nreporting based on the status that waitpid returns.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "c1ab63ed17189cacf1247751e8633f589c977a00",
      "tree": "b5d5f8ee2b440e3a159f8e668d51660fbba73e2a",
      "parents": [
        "ff045fe73d4c1f84155e15ff8b228ee65f82373c"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Thu Mar 27 21:59:38 2014 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Fix up directory trace processing\n\nSimilar to the fix for spaces in file names in commit 5d845e3, this\npatch fixes processing of directories with spaces in their names by\nusing posix_spawnp() to run the blkparse command instead of system(). In\ndoing so, combine_blktrace_devs() and match_trace() have been reworked\nto use a list structure instead of doing a lot of strdup()ing and string\nappending.\n\nAlso make sure that trailing slashes are removed from the directory name\nbefore attempting to use it as the base of the .dump filename.\n\nUpdate the -t entry in the manpage to mention directory behaviour, too.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "ff045fe73d4c1f84155e15ff8b228ee65f82373c",
      "tree": "6449975be35a17add18be8ddfb246887b200b4b3",
      "parents": [
        "22dd439a539cbbaed24daae4f23e7fe8739fdfa5"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 04 06:18:28 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:09 2014 -0700"
      },
      "message": "iowatcher: Handle REQUEUE events\n\nWhen requeue event happens we have to decrease number of in-flight\nrequests. Otherwise they drift away.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "22dd439a539cbbaed24daae4f23e7fe8739fdfa5",
      "tree": "c4dd1a6012838b74139d95fb04fa1c2a6ffc59f6",
      "parents": [
        "8e1f740bbbd336323864be4c7bde38ab999d937f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 04 06:18:27 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Make seconds unsigned\n\nCompiler was giving some warnings about signed vs unsigned comparisons.\nAlthough these were harmless, make seconds unsigned because they really\nare.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "8e1f740bbbd336323864be4c7bde38ab999d937f",
      "tree": "b57a99c2dea9e3f02ab77fbcb33eecff7f994318",
      "parents": [
        "6a079b020a3e57aec95766cd8b97f15962af4674"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 04 06:18:26 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Remove duplicate defines from blkparse.c\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "6a079b020a3e57aec95766cd8b97f15962af4674",
      "tree": "c9a4a4d22a0df2272d63fcb1fbce765fe0d7472f",
      "parents": [
        "7c883a9412d9dad32c23084c86272602bb7ffd5c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 04 06:18:25 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Skip events beyond max_seconds\n\nSkip events beyond max_seconds.  This not only saves CPU time but also\nprevents memory corruption because not all functions were checking that\ngiven time is in the expected range. Also remove now unnecessary checks\nin the called functions.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "7c883a9412d9dad32c23084c86272602bb7ffd5c",
      "tree": "2b7869bafed787d2dce8a5867972585652cabf6c",
      "parents": [
        "e4d4b5dc17dd1b2ec78e409efc8a36230772a377"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 04 06:18:24 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Do not add events out of time range to the plot\n\nIf the event is out of time range that should be plotted, do not add it.\nIt will corrupt memory...\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "e4d4b5dc17dd1b2ec78e409efc8a36230772a377",
      "tree": "3e3c88b4a6ec23fbba7ed509ff9d1fd6667faaab",
      "parents": [
        "ade854b0de75ecbd585aa323fd0cc7ccd92039f0"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 24 15:30:35 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Fine tune the ticks\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "ade854b0de75ecbd585aa323fd0cc7ccd92039f0",
      "tree": "ede1c293854abd05e0a5cf3b01bbf5db3efa81c7",
      "parents": [
        "2ef0fdd46258de29bb8b4da6b5b4418af6e4b6aa"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 24 15:30:23 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Update the README for a few new options\n"
    },
    {
      "commit": "2ef0fdd46258de29bb8b4da6b5b4418af6e4b6aa",
      "tree": "90327e0e4624f040a7dcd89ea44ffcaa91353956",
      "parents": [
        "173545a6275189f7947e4473cf4dae0de74e1639"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Nov 08 10:06:54 2013 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Fix processing of trace filenames containing spaces\n\nblktrace_to_dump passes filenames containing spaces to blkparse via\nsystem() so only the first chunk of the string is taken to be the\nfilename by the subprocess.\n\nThis switches to using posix_spawnp() so that we can present the\nfilename as an element of argv and avoid iowatcher failing in these\ncases.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "173545a6275189f7947e4473cf4dae0de74e1639",
      "tree": "7b9ab6f64ccae5048f7d8a0ccf5dc4fd7aa9f144",
      "parents": [
        "9d382df04ccc0f145e7f13a23757b3d0ba5a9524"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Wed Nov 06 16:11:18 2013 +0000"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Add bounds checking in find_step\n\nCheck the value of cur_mini_step is sane before using it as an index to\nmini_step array.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "9d382df04ccc0f145e7f13a23757b3d0ba5a9524",
      "tree": "353c9df0bdc448430c0e540710de713bd8e64c25",
      "parents": [
        "7a51b395a7cf1218d2ad55008d5a64cd7721a057"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Thu Sep 05 17:35:04 2013 +0100"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Fix a label overflow in plot_io\n\nThe length of the label option wasn\u0027t being checked before strcpy()ing\nit into a char[256]. Use strncpy instead.\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\n"
    },
    {
      "commit": "7a51b395a7cf1218d2ad55008d5a64cd7721a057",
      "tree": "21700329541a4270266b22eb078f9a73149f661e",
      "parents": [
        "660b041110b6032d2e85b7c6a8a8d56803a60919"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 21 11:22:58 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Don\u0027t print a legend on the tput graphs during movies\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "660b041110b6032d2e85b7c6a8a8d56803a60919",
      "tree": "2089c42c709aee4c630c23495e31296f0e1fd8e4",
      "parents": [
        "798c9a9a9f8cfa2d035feaf78482ea53abd5b320"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 21 10:28:33 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Update the FSF address in all files\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "798c9a9a9f8cfa2d035feaf78482ea53abd5b320",
      "tree": "b57f14f57e2f037e27c27c608bddfa5721bf716d",
      "parents": [
        "24e48e035c6cf14b33408fb2fa899bfdda8bf439"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 21 10:17:44 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Update the COPYING file to the correct address\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "24e48e035c6cf14b33408fb2fa899bfdda8bf439",
      "tree": "02172d2875bb1343d482b24917b4dde75cb1be6e",
      "parents": [
        "adb599a8a37d2083b6737be7415f4b0310f6c28c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Fri Jan 18 11:08:39 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Add support for fio bandwith logs (-F logfile)\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "adb599a8a37d2083b6737be7415f4b0310f6c28c",
      "tree": "b6186b0e80cc1314ab9aa673767dff2884185f16",
      "parents": [
        "d7d5d7c301b07a235f39ebb6a4f629d19198509c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Jan 17 12:45:42 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:08 2014 -0700"
      },
      "message": "iowatcher: Fix formatting errors in the iowatcher.1 man page.\n\nThanks to Andrew Price for sending me the corrected version\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "d7d5d7c301b07a235f39ebb6a4f629d19198509c",
      "tree": "c7dfd11515c33f99b2725bdbc1f86d8b69526bfa",
      "parents": [
        "2203e914a11dc2ccf1b673e1627c50246b2fc904"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Wed Jan 16 22:25:28 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: Fix mpstat handling when the number of CPUs is not\nin the mpstat output\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "2203e914a11dc2ccf1b673e1627c50246b2fc904",
      "tree": "08dfcdb574624a930cdee035086a01fd17afcb14",
      "parents": [
        "a51ad4aeabcf7e868fe92fa06c82137d6b763104"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 14 20:59:06 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: Handle traces to more than once device at a time\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "a51ad4aeabcf7e868fe92fa06c82137d6b763104",
      "tree": "39be2d1fb7a4dcfd209a00a1b749402a4bda5af5",
      "parents": [
        "02c48acba54c658ddd1bb8d51c590e9a0709f089"
      ],
      "author": {
        "name": "Nikita Danilov",
        "email": "danilov@gmail.com",
        "time": "Wed Dec 19 11:27:21 2012 -0700"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: iowatcher: specify ffmpeg codec\n\n    Add -C option to specify ffmped video code to use.\n\n    Allow ffmpeg video codec to be specified on the command line. \"libx264\" is\n    default.\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "02c48acba54c658ddd1bb8d51c590e9a0709f089",
      "tree": "cc6e4d34ceefb229c0916bdf945da46cd60e37b4",
      "parents": [
        "a8f3acba5691deed38399c363274f440e2527b10"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Wed Dec 19 11:54:45 2012 -0700"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: Add a man page for iowatcher\n\nAdds a man page from iowatcher. Borrows some documentation from the\nREADME file but covers all of the options found in main.c\n\nSigned-off-by: Andrew Price \u003canprice@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "a8f3acba5691deed38399c363274f440e2527b10",
      "tree": "27cab86cf83b7eea7f0463cf083bfd0ff0efa24f",
      "parents": [
        "6c984075e39be376f159f831536a8c2dfd620e9a"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 14 16:05:13 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: Fix spindle rotation in the movie mode\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "6c984075e39be376f159f831536a8c2dfd620e9a",
      "tree": "358da40808e61736065988f9858e51bdd10ff718",
      "parents": [
        "79d615306f3a4146bb27d59c4b1707907099f669"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Fri Oct 26 15:23:40 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: Fix some rounding errors around the max offset\n\nset_gdd_bit makes sure that we don\u0027t try to set bits past the max offset\nwe used to allocate our gdd array.\n\nBut, it only does this when the function is first called, and the whole\nbyte range for the IO we\u0027re recording may go past max offset.  This adds\na check to be sure we stay in the right range.\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "79d615306f3a4146bb27d59c4b1707907099f669",
      "tree": "97dafed12b478c760e5bc482fd35e6b19a249223",
      "parents": [
        "776c17af8515db948e0c8cfcb06291d40f8d7779"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Oct 23 11:05:31 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: Fix crash due to missing queue action\n\nWhen queue action was missing from a trace, handling of dispatch didn\u0027t\nquite get things right and crashed due to NULL pointer dereference.\nFix it.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "776c17af8515db948e0c8cfcb06291d40f8d7779",
      "tree": "5231198f26ac503436476ca8128a458ed28c7f1f",
      "parents": [
        "854a1f24812ec5fe84f2d2e0f88c46343aff0284"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Oct 22 11:51:41 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: Add -K command line option to keep the movie svg files\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "854a1f24812ec5fe84f2d2e0f88c46343aff0284",
      "tree": "081245367a4f985bc56b1437c1a814e7c6dd0e17",
      "parents": [
        "aff25f0c38224027652f0d2bbcffaea50d4f7116"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Oct 22 11:22:55 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: Only hash IOs if there are completion or issue events\n\nWe use an IO hash table to keep track of the IOs in flight, and this is\nused to calculate the latencies from when we issue the IO to when\nwe complete the IO.\n\nBut if there are no completion events, io is never removed from the hash\ntable.  It grows very large and slows down the run.\n\nSince we already scan all the events looking for outliers, this commit\nchecks for each major type of event during the scan.  If there are\nno completion and no issue events, we don\u0027t bother inserting things\ninto the hash table.\n\nIf there are no completion events, we clean up during the issue event.\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "aff25f0c38224027652f0d2bbcffaea50d4f7116",
      "tree": "732c44a7429b2f65bd53343ff45d165df5502c7e",
      "parents": [
        "e95ba659594ce961648fb2d74dd1ddc71001b205"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Oct 18 15:42:38 2012 -0600"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: iowatcher: support png2theora for videos\n\nffmpeg is not available on all distributions, so include Theora\nas an option, via png2theora, if the output movie filename ends\nin .ogg or .ogv\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "e95ba659594ce961648fb2d74dd1ddc71001b205",
      "tree": "ab8a975ef3ce158f6fad673f481993d52f883db8",
      "parents": [
        "d79212594039b93458a563fb440c424146671a3b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Wed Oct 17 15:45:49 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: Fix path name handling when the trace files are in the current directory\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "d79212594039b93458a563fb440c424146671a3b",
      "tree": "f1a9c4f53591ba3d8425b8c6d62d058149d4bb04",
      "parents": [
        "fb38c6653401fd5331e7fe99927d113d25b24d65"
      ],
      "author": {
        "name": "Yuanhan Liu",
        "email": "yliu.null@gmail.com",
        "time": "Fri Oct 12 10:09:29 2012 -0600"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:07 2014 -0700"
      },
      "message": "iowatcher: Fix buffer overwrite issue\n\nCurrent code allocates buffer for path based on strdup, which would let\nthe size of path equals to the size of blktrace_dest_dir. But the code\nnext that joins it with the filename of dump file, which would overwrite\nthe buffer, and triggered an issue like following:\n\n$ ./iowatcher -t trace.dump -o trace.svg\nUnable to find trace file ./trace.dumpY\n                                      ^\n\nRefactoring join_path a bit to fix this issue.\n\nCc: Liu Bo \u003cliub.liubo@gmail.com\u003e\nSigned-off-by: Yuanhan Liu \u003cyliu.null@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "fb38c6653401fd5331e7fe99927d113d25b24d65",
      "tree": "621e7f623fac45105a8ae0d01659e39b96cb49d4",
      "parents": [
        "0a43b43f485c9fce93b77cddb261a4faee4ae506"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liub.liubo@gmail.com",
        "time": "Thu Sep 27 21:55:14 2012 -0600"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Sep 24 12:02:01 2014 -0700"
      },
      "message": "iowatcher: add blktrace destination options\n\nAdd \u0027D\u0027 for blktrace destination options so that we can save trace\nin the destination directory.\n\nSigned-off-by: Liu Bo \u003cliub.liubo@gmail.com\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "838361c6cfb1319eadd59daaf9074dcdb92746e6",
      "tree": "7d9329ee8d218e8e58b7b985df2389fddad4b496",
      "parents": [
        "ce9ded7165b846598b28107ceb2864ae1ad4b652"
      ],
      "author": {
        "name": "Robert Schiele",
        "email": "rschiele@gmail.com",
        "time": "Mon Sep 08 09:38:52 2014 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Mon Sep 08 08:15:58 2014 -0600"
      },
      "message": "signal condition variable at end of stop_tracers\n\nstop_tracers modifies tp-\u003eis_done and thus must signal the condition\nvariable tracer_wait_unblock is waiting on to monitor tp-\u003eis_done.\nNot doing so might cause the tool to deadlock if stop_tracers is\ncalled while a tracer thread is in tracer_wait_unblock.\n\nSigned-off-by: Robert Schiele \u003crschiele@gmail.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "ce9ded7165b846598b28107ceb2864ae1ad4b652",
      "tree": "da1f2d51ef2610a90f78b23784843baac88834f8",
      "parents": [
        "3726f669cd305741e35ae759e0b21f3b04084e4e"
      ],
      "author": {
        "name": "Riku Voipio",
        "email": "riku.voipio@linaro.org",
        "time": "Fri Apr 11 14:51:19 2014 +0300"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Fri Apr 11 07:45:54 2014 -0600"
      },
      "message": "remove unused barrier.h\n\nWhile looking for things that needs porting for Aarch64,\nbarrier.h from blktrace was identified. However, a deeper\nlook shows that this file is not actually used anymore\nin blktrace.\n\nRemove unused file to avoid future confusion.\n\nSigned-off-by: Riku Voipio \u003criku.voipio@linaro.org\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "3726f669cd305741e35ae759e0b21f3b04084e4e",
      "tree": "d199fc362b52ae3d718c32b530b83665b4d76583",
      "parents": [
        "0a915aabe88ff98786a88f30d2e062ef34d0826c"
      ],
      "author": {
        "name": "Eiichi Tsukata",
        "email": "devel@etsukata.com",
        "time": "Tue Dec 03 21:04:59 2013 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Dec 03 19:25:21 2013 -0700"
      },
      "message": "blktrace bno_plot.py: output comprehensive message when gnuplot not found\n\nCurrently, bno_plot.py uses os.execvp which does not show enough information\nwhen executed command is not found. For example, when gnuplot is not found\nbno_plot.py shows the following messages:\n\n    Traceback (most recent call last):\n      File \"/usr/local/bin/bno_plot.py\", line 123, in \u003cmodule\u003e\n        os.execvp(cmd[0], cmd)\n      File \"/usr/lib64/python2.7/os.py\", line 344, in execvp\n        _execvpe(file, args)\n      File \"/usr/lib64/python2.7/os.py\", line 368, in _execvpe\n        func(file, *argrest)\n    OSError: [Errno 2] No such file or directory\n\nUsers can\u0027t understand what happend directly from the message.\n\nInstead of os.execvp, this patch uses os.system which shows the following\nmessages when gnuplot not found:\n\n    sh: gnuplot: command not found\n\nSigned-off-by: Eiichi Tsukata \u003cdevel@etsukata.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "0a915aabe88ff98786a88f30d2e062ef34d0826c",
      "tree": "3faf4a0009fa90d7eb54de825c62791111f5cf26",
      "parents": [
        "67313d8f411fe08f3f8a0c94ad2cf45bf569f0f8"
      ],
      "author": {
        "name": "Nathan Zimmer",
        "email": "nzimmer@sgi.com",
        "time": "Mon Apr 15 09:53:36 2013 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Aug 01 12:13:26 2013 -0600"
      },
      "message": "blktrace blkreplay: convert to use a dynamic cpu_set_t\n\nSome distros have changed CPU_SETSIZE in glibc to 4096 since that matches\nthe NR_CPUS in the linux kernel config file.  Some distros have decided to\nleave CPU_SETSIZE at 1024. This is a problem if you want to run that distro\non a very large machine.\n\nCPU_SETSIZE is use by the struct cpu_set_t.  This means you to deal with cpus\ngreater the 1024 you must use the dynamic cpu sets, which involves converting\nfrom things like CPU_SET to CPU_SET_S.\n\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\n\nModified by Jens to fix the CPU_{SET,ZERO}_S pointer mixup.\n\nSigned-off-by: Nathan Zimmer \u003cnzimmer@sgi.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "67313d8f411fe08f3f8a0c94ad2cf45bf569f0f8",
      "tree": "8caddf1148255a77cff97cb23e4b043bcfc6f7f2",
      "parents": [
        "fb69749415ae2bd7c3180605d01a5a39f3bd988f"
      ],
      "author": {
        "name": "Nathan Zimmer",
        "email": "nzimmer@sgi.com",
        "time": "Mon Apr 15 09:53:35 2013 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Aug 01 12:13:26 2013 -0600"
      },
      "message": "blktrace: use number of configured cpus instead of online cpus\n\nWe want to run on all online processors.  However is there is a hole in the\nonline cpumask this won\u0027t happen.  We need the number of configured processors\ninstead of online.\n\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Nathan Zimmer \u003cnzimmer@sgi.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "fb69749415ae2bd7c3180605d01a5a39f3bd988f",
      "tree": "c73b96ce90568ef0a1ea59c977cf244275e5dee8",
      "parents": [
        "0c2df13d11dd91a1c3933dcc8faa98f2b59a5793"
      ],
      "author": {
        "name": "Nathan Zimmer",
        "email": "nzimmer@sgi.com",
        "time": "Mon Apr 15 09:53:34 2013 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Aug 01 12:13:26 2013 -0600"
      },
      "message": "btreplay: use sysconf to get the number of configured cpus\n\nWe should use the standard methods for getting the number of cpus in the\nsystem when they are available.  It is good practice to leave the old ways in\nplace for people stuck on older systems.\n\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Nathan Zimmer \u003cnzimmer@sgi.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "0c2df13d11dd91a1c3933dcc8faa98f2b59a5793",
      "tree": "5a2255bad75d818dd831d90f8bc6b2146b3e8299",
      "parents": [
        "28fa9f69a23f70e4371fb483beb2d4881dbd074d"
      ],
      "author": {
        "name": "Nathan Zimmer",
        "email": "nzimmer@sgi.com",
        "time": "Mon Apr 15 09:53:33 2013 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Aug 01 12:13:26 2013 -0600"
      },
      "message": "btreplay: Machines are now large enough that holes need to be dealt with\n\nThe current method fails if once we hit the first offlined cpu.  This\nwill correct that case.  However this still underreports the number cpus if\nthe last cpu are offlined.\n\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Nathan Zimmer \u003cnzimmer@sgi.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "28fa9f69a23f70e4371fb483beb2d4881dbd074d",
      "tree": "ab8962cd9a160bbf36507a73bcffe57dd2278990",
      "parents": [
        "cd0ae0f6bc3d72e89d0b258aa2040437b75d4ef2"
      ],
      "author": {
        "name": "Nathan Zimmer",
        "email": "nzimmer@sgi.com",
        "time": "Mon Apr 15 09:53:32 2013 -0500"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Thu Aug 01 12:13:26 2013 -0600"
      },
      "message": "verify_blkparse: Change max_cpus to deal with systems larger the 512\n\nverify_blkpars has troubles with systems larger then 512.\nAlso there is issue in the scanning code causing the cpu number to be\ntruncated to the first two digits. i.e cpu 542 would be read as 54.\n\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Nathan Zimmer \u003cnzimmer@sgi.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "cd0ae0f6bc3d72e89d0b258aa2040437b75d4ef2",
      "tree": "2bbedbe590ae010a5c7f294e056581c42e10cfe3",
      "parents": [
        "d6918c8832793b4205ed3bfede78c2f915c23385"
      ],
      "author": {
        "name": "Ivan Dyukov",
        "email": "i.dyukov@samsung.com",
        "time": "Tue Mar 19 08:16:27 2013 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Mar 19 08:16:27 2013 -0600"
      },
      "message": "More accurate calculation of the total read/write values\n\nIf block device has many request with size less than 1K,\nblkparse ignores such requests because it treats each request\nin Kb.\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "0a43b43f485c9fce93b77cddb261a4faee4ae506",
      "tree": "f1ec22aa4fea8194284954f97d1d2cd829c70d79",
      "parents": [
        "6d5a91a71e87dafaf398acb9e1068606aea96754"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Mon Sep 10 10:09:48 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 25 21:04:28 2012 -0400"
      },
      "message": "iowatcher: Per process IO graphs\n\nAdd support for displaying different processes with different color in\nthe IO graph and movie.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "6d5a91a71e87dafaf398acb9e1068606aea96754",
      "tree": "f21f6f0e86cbe6011279decd08f5a10efab992c5",
      "parents": [
        "a78b574c36dbcf35ad0f950f02b8b5729edeba68"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Fri Sep 21 14:03:50 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Fri Sep 21 14:03:50 2012 -0400"
      },
      "message": "iowatcher: Make sure we add the xtick labels if we\u0027re only plotting IO\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "a78b574c36dbcf35ad0f950f02b8b5729edeba68",
      "tree": "c3cf94d85233a2198d60e562e91a1a89fc6c2555",
      "parents": [
        "1e1e3f04296420c0e3cb46ffad56f247f6a17963",
        "f2e40ddd2b405fb22bd93ca61160e3505921d59e"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Sep 10 21:01:02 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 10 21:01:02 2012 -0400"
      },
      "message": "iowatcher: Merge branch \u0027jan\u0027\n\nJan Kara\u0027s updates for xzoom and yzoom\n\nConflicts:\n\tmain.c\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "f2e40ddd2b405fb22bd93ca61160e3505921d59e",
      "tree": "1cd5ea6a2ae78239dbf9066d0564113353c34acf",
      "parents": [
        "d44f4c4cc63843b72ea06d65ccdaecb2f4c89657"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Sep 06 18:23:05 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 10 20:53:05 2012 -0400"
      },
      "message": "iowatcher: Add option to set action which should be displayed in the IO graph\n\nSometimes this is useful to see how IO scheduler or storage itself\nchanges the IO submitted by the application.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "d44f4c4cc63843b72ea06d65ccdaecb2f4c89657",
      "tree": "bdc7215cce9e07f76fa1f8f5558be0e8fb4bf5c9",
      "parents": [
        "d140b434b75b786062803158a4b6807aaf67be36"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Sep 06 12:45:34 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 10 20:53:05 2012 -0400"
      },
      "message": "iowatcher: Improve xticks logic\n\nTicks on x axis used integral step and fixed number of ticks. That generates\nwrong results e.g. for 13s long trace with 10 ticks... Allow the code to\nsomewhat alter the number of ticks and also use non-integral step.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "d140b434b75b786062803158a4b6807aaf67be36",
      "tree": "2734d460e9c6a805e975b8c341d32785efffd15e",
      "parents": [
        "35686f9be692c9b9dde821df8b0947e6fe5dce7f"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Aug 31 11:37:49 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 10 20:53:05 2012 -0400"
      },
      "message": "iowatcher: Add options to limit time and sector range\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "35686f9be692c9b9dde821df8b0947e6fe5dce7f",
      "tree": "f7ba6fd56bf781f03960dc53f16ada99582df794",
      "parents": [
        "230f060187f09a71185d1321192a497e6a344f80"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Sep 06 10:14:59 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 10 20:53:05 2012 -0400"
      },
      "message": "iowatcher: Ignore trace records beyond max_seconds\n\nCurrently we report error when we find a trace record beyond max_seconds.\nWhen we allow user to set end of displayed period, records after the end\nof period are no longer a bug so just ignore them.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "230f060187f09a71185d1321192a497e6a344f80",
      "tree": "a1572f533a097cea65e528748964370f50c5d6b3",
      "parents": [
        "f752a6eb5f4b2b0b2af547044b14e94694860e83"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Sep 05 23:01:08 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 10 20:53:05 2012 -0400"
      },
      "message": "iowatcher: Add possibility to limit seconds from below\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "f752a6eb5f4b2b0b2af547044b14e94694860e83",
      "tree": "e2bec478ff31f081ffe5ec5e9be5d3ec54bee9ee",
      "parents": [
        "9b9fa04b368b7acc129ea71445b6fb9d7b4a669d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Sep 05 22:08:24 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 10 20:53:05 2012 -0400"
      },
      "message": "iowatcher: Rename seconds to max_seconds\n\nLater we will add min_seconds to complement this.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "9b9fa04b368b7acc129ea71445b6fb9d7b4a669d",
      "tree": "c1f3b4ea6ad7c3bbbcf22f1f80ee677e9ea60be1",
      "parents": [
        "41fdf407713a487702d8112b6d4696744e693b73"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sat Sep 01 23:31:46 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 10 20:53:05 2012 -0400"
      },
      "message": "iowatcher: Add support for limitting IO graph offset from below\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "41fdf407713a487702d8112b6d4696744e693b73",
      "tree": "25f4f34d3a39c76874e03d7b641497e0336491da",
      "parents": [
        "1582ecc9db5e2be713493b07d015e272b97dd7e7"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sat Sep 01 23:37:20 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 10 20:53:05 2012 -0400"
      },
      "message": "iowatcher: Fix filtering of outliers from below\n\nThere are lots of trace actions which do not carry a sector with them (e.g.\nplug, unplug, ...). Thus sector is 0 for them and that results in trimming\nof outliers from below never working. Fix the problem by accounting only\nQueue events in the outlier statistics.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "1582ecc9db5e2be713493b07d015e272b97dd7e7",
      "tree": "6d4536a57dad928317e2327bb53b378b9ee59792",
      "parents": [
        "c524558499b0afd0cbd50323d970c8c34f762e62"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sat Sep 01 23:35:55 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 10 20:53:05 2012 -0400"
      },
      "message": "iowatcher: Define mask of trace action and use it instead of opencoding the constant\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "c524558499b0afd0cbd50323d970c8c34f762e62",
      "tree": "aeb9cbaf9d2af946e9a110f8747b7481a22d09e9",
      "parents": [
        "cc3d54d5c8399547fb86135ec476b57ce49ec8d6"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Aug 30 15:59:01 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Sep 10 20:53:04 2012 -0400"
      },
      "message": "iowatcher: Fix typo in option description\n\nShort variant of --movie is -m, not -p.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "1e1e3f04296420c0e3cb46ffad56f247f6a17963",
      "tree": "8e176e41774716eb74c9b37b18010fb71896ba9c",
      "parents": [
        "cc3d54d5c8399547fb86135ec476b57ce49ec8d6"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Aug 30 20:42:30 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Thu Aug 30 20:42:30 2012 -0400"
      },
      "message": "iowatcher: Check for null mpstat structs while generating plots\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "cc3d54d5c8399547fb86135ec476b57ce49ec8d6",
      "tree": "4f2be4b71a78c8b2b0ea15e8afb89f8b5d769b53",
      "parents": [
        "f5f8c9820df3e7714b46e3b8f1cc1aa5d6af12e3"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Aug 28 02:15:11 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Tue Aug 28 02:15:11 2012 -0400"
      },
      "message": "iowatcher: Add -c to split the graphs up into multiple columns\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "f5f8c9820df3e7714b46e3b8f1cc1aa5d6af12e3",
      "tree": "c673321bd7908604b7a79c4f763bfb99d7b97dfb",
      "parents": [
        "5122a20d002a5197b8e5789934620d7ad1ece27c"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 27 18:27:59 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Aug 27 18:27:59 2012 -0400"
      },
      "message": "iowatcher: Fix divide by zero while calculating averages\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "5122a20d002a5197b8e5789934620d7ad1ece27c",
      "tree": "9bf75776efe40fa949e6c0a8d194a048312c0b45",
      "parents": [
        "8ed9516f791ead08ade69c952b14d3b4f85c38ef"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 27 18:09:57 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Aug 27 18:09:57 2012 -0400"
      },
      "message": "iowatcher: Update the README and the --help output\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "8ed9516f791ead08ade69c952b14d3b4f85c38ef",
      "tree": "3d21a3a56edd66d91f9f2b822ef584eb12875f19",
      "parents": [
        "f106953d41597722efd068e67eaae5664ef5034d"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 27 17:39:58 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Aug 27 17:39:58 2012 -0400"
      },
      "message": "iowatcher: Start support for multiple colums of plots\n\nThe movie mode is updated to put extra plots on\nthe side.\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "f106953d41597722efd068e67eaae5664ef5034d",
      "tree": "36c78ef4c060944ca8c8741e698c839c23ba9739",
      "parents": [
        "49d17e16fc977e01baf018f7c4af20e6b594fbba"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 27 13:00:30 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Aug 27 13:00:30 2012 -0400"
      },
      "message": "iowatcher: Fix io line graphs at the edge of the X axis\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "49d17e16fc977e01baf018f7c4af20e6b594fbba",
      "tree": "be2e0962d6f6663fea226bd729d37a29d2de758c",
      "parents": [
        "eef996bc011bf6e57b8954a27f6b5dd3abaaf405"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 27 12:53:51 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Aug 27 12:53:51 2012 -0400"
      },
      "message": "iowatcher: Fix the line graphs for values near the edges of the graph\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "eef996bc011bf6e57b8954a27f6b5dd3abaaf405",
      "tree": "e78680aa8e7af12999282e3616b7b91217d8a57a",
      "parents": [
        "bfb0e441b93e6c3728679e7475145089fd02be27"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 27 12:22:28 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Aug 27 12:22:28 2012 -0400"
      },
      "message": "iowatcher: Fix mpstat file permissions\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "bfb0e441b93e6c3728679e7475145089fd02be27",
      "tree": "17b348a93a922825d384d3d7dd974f5d7c3f54a1",
      "parents": [
        "abf08f96c0c90f2ef59c4ae5c1fe849803bf02de"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Fri Aug 24 14:31:29 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@oracle.com",
        "time": "Mon Aug 27 12:17:55 2012 -0400"
      },
      "message": "iowatcher: Add initial support for flash tracing\n\nThis is incomplete, but it will catch messages from\nthe flash driver to find the actual chip an IO\nwas sent to.\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "abf08f96c0c90f2ef59c4ae5c1fe849803bf02de",
      "tree": "3ab811627b5da742df94765196d74d8f90086176",
      "parents": [
        "7a147342d67ca55908d4d726ba36eb9ba2446c62"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Aug 21 15:19:35 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Wed Aug 22 21:42:17 2012 -0400"
      },
      "message": "iowatcher: Add a new movie mode that maps the IOs onto a platter.\n\nThe --movie option defaults to spindle mode now,\nbut you can choose --movie\u003drect or --movie\u003dspindle\nas well.\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "7a147342d67ca55908d4d726ba36eb9ba2446c62",
      "tree": "5f98d10d8734c6fbf05c269b874f8df34a8d032d",
      "parents": [
        "e4df896869337aefd6f77dd0a0c8cf501d9d5868"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Aug 21 09:18:15 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Aug 21 09:18:15 2012 -0400"
      },
      "message": "iowatcher: Switch to ffmpeg for movie encoding.  Chrome and vlc like these better.\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "e4df896869337aefd6f77dd0a0c8cf501d9d5868",
      "tree": "624479af71474ad57529aaf59615f40feadc5634",
      "parents": [
        "5a870f239640c5c1b7b6f5263e548c1a816021c1"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 20 16:15:55 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 20 16:15:55 2012 -0400"
      },
      "message": "iowatcher: Add back missing plot title\n"
    },
    {
      "commit": "5a870f239640c5c1b7b6f5263e548c1a816021c1",
      "tree": "5fc8864fee2fe087d1f160710c58478e3a893901",
      "parents": [
        "fd70186d91c0efa7cd59b5caaecd764eddf38551"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 20 15:30:38 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 20 15:30:38 2012 -0400"
      },
      "message": "iowatcher: Fix --help definition\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "fd70186d91c0efa7cd59b5caaecd764eddf38551",
      "tree": "ad20eeb2d2a40f454a5bc0894b2359455fe92f67",
      "parents": [
        "ba758825488d21b9394ed3a4faacd4b6e95a0566"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 20 14:36:19 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 20 14:41:15 2012 -0400"
      },
      "message": "iowatcher: Add mpstat.[ch] into git\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "ba758825488d21b9394ed3a4faacd4b6e95a0566",
      "tree": "cca029d6254ef54fd237799c96494ff78cf228fa",
      "parents": [
        "e199d5465c01b67bd6a1ce15eb7b96ad46e51bbf"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Fri Aug 17 12:18:28 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Aug 20 06:23:42 2012 -0400"
      },
      "message": "iowatcher: Add movie support\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "e199d5465c01b67bd6a1ce15eb7b96ad46e51bbf",
      "tree": "cb7ae2d229f5856373154927985a72e754f97edf",
      "parents": [
        "9e066e233bbe8cff186975681d35023f9e6f1b02"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Aug 16 14:46:33 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Aug 16 14:46:33 2012 -0400"
      },
      "message": "iowatcher: Add mpstat graphing support\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "9e066e233bbe8cff186975681d35023f9e6f1b02",
      "tree": "08c0924393423a2bf105d77c53d2524a5fbb0f85",
      "parents": [],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Wed Aug 15 16:10:55 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Wed Aug 15 16:10:55 2012 -0400"
      },
      "message": "iowatcher: Initial revision\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "d6918c8832793b4205ed3bfede78c2f915c23385",
      "tree": "25fd075b30bdd381efb8f2fb83c2671ccd50b05e",
      "parents": [
        "c3ce73f5a414900c5c4817cf2fa1eeb7837f17b8"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Feb 27 08:22:17 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Feb 27 08:22:17 2012 +0100"
      },
      "message": "blktrace 1.0.5\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "c3ce73f5a414900c5c4817cf2fa1eeb7837f17b8",
      "tree": "073ae4700efab6c78697bc86175e63a4005d2777",
      "parents": [
        "f6d38abde41a7b18808dcdab393f05d6300d16c3"
      ],
      "author": {
        "name": "Vasily Tarasov",
        "email": "tarasov@vasily.name",
        "time": "Mon Feb 27 08:21:11 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Mon Feb 27 08:21:11 2012 +0100"
      },
      "message": "Too small arrays for file names\n\nIn our experiments blktrace/blkparse file names encode a lot of\ninfomation about the particular experiment.  We noticed that for long\nenough file names blkparse does not work.\n\nThe reason is that per_cpu_info-\u003efname[] is of 128 bytes. As a result,\nin setup_file() function only part of the file name gets to -\u003efname[].\nThen stat() fails and we exit the function. Notice, that no error is\nprinted in this case.\n\nIn the following patch -\u003efname[] size is increased to POSIX defined\nPATH_MAX.\n\nSigned-off-by: Vasily Tarasov \u003ctarasov@vasily.name\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "f6d38abde41a7b18808dcdab393f05d6300d16c3",
      "tree": "cb68e66c73f3ded1f73d966eb90da322ee4a91ab",
      "parents": [
        "d324757e0f2cfc87ddcc2fea7e59d81cc8661f1c"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Feb 01 13:17:57 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Wed Feb 01 13:17:57 2012 +0100"
      },
      "message": "Fix compiler warnings\n\nOne was a real bug, assigned i_time twice instead of c_time (which was\nleft unitialized).\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "d324757e0f2cfc87ddcc2fea7e59d81cc8661f1c",
      "tree": "4cd4290cd22445f018767d5590e04e43b4db20f7",
      "parents": [
        "62d712a7bb9cd4c8366d8228cf90ffa7b31b6eac"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Dec 16 13:36:56 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Feb 01 13:14:33 2012 +0100"
      },
      "message": "avoid string overflows\n\nSeveral places using strcpy would benefit from strncpy\nfor safety.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "62d712a7bb9cd4c8366d8228cf90ffa7b31b6eac",
      "tree": "b005edfe0ec055d5413b4356fad87643d39510b8",
      "parents": [
        "cd992d08dae8dca9f46f75506ec9ceb204dc2f39"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Dec 16 13:27:33 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Feb 01 13:14:31 2012 +0100"
      },
      "message": "blktrace: remove unused variable\n\nsp was being incremented w/o initialization, but thankfully\nnot used otherwise.  Just remove it.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "cd992d08dae8dca9f46f75506ec9ceb204dc2f39",
      "tree": "ce0a9c78c0412ba9922886b780d4586d5bcbacd5",
      "parents": [
        "6da330452fbaa1de7ebba6cddcdfdb343fda94ee"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Dec 16 13:25:16 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Feb 01 13:14:30 2012 +0100"
      },
      "message": "blkparse: initialize cpu_map\n\nWe malloc\u0027d cpu_map, and then did:\n\n\tcpu_map[CPU_IDX(cpu)] |\u003d (1UL \u003c\u003c CPU_BIT(cpu));\n\n... not sure how that ever worked if cpu_map was not initialized!\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6da330452fbaa1de7ebba6cddcdfdb343fda94ee",
      "tree": "45d5f1f1f0392bc8c3445f9e7af45b74a851470d",
      "parents": [
        "84b321fac4e417b1a1d91df1c5844a3c13ef53e5"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Dec 16 13:17:52 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Feb 01 13:14:29 2012 +0100"
      },
      "message": "btt: close devmap file after processing\n\nClose the file used for btt\u0027s -M argument after\nprocessing.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "84b321fac4e417b1a1d91df1c5844a3c13ef53e5",
      "tree": "a940a187ed7339148c4dc39ae79731f93ff4e8f7",
      "parents": [
        "6ca1e530ba80c37dc9a686259fe643548ffce69c"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Dec 16 13:15:54 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Feb 01 13:14:28 2012 +0100"
      },
      "message": "Fix several leaks on error paths\n\nIn several cases space is allocated for a filename but\nnot freed if open of that file fails.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "6ca1e530ba80c37dc9a686259fe643548ffce69c",
      "tree": "798c55bfbadd4b7b0fc5ce3843607e24a25b0e5b",
      "parents": [
        "f9a89a6f99189f7929278d881de0ce011149d87c"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Dec 16 13:13:21 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Feb 01 13:14:27 2012 +0100"
      },
      "message": "Remove extraneous malloc in find_input routines\n\nNo point in malloc()ing space if we just immediately overwrite\nthe pointer via strdup.  That\u0027ll leak some space.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "f9a89a6f99189f7929278d881de0ce011149d87c",
      "tree": "ce837bd6d631bb7b3740febb1a41feb2c322914e",
      "parents": [
        "5293cfdbdbc29d34f61f43a9acbdf3468375c68d"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Dec 16 13:11:33 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Feb 01 13:14:27 2012 +0100"
      },
      "message": "Close stream in \u0027I\u0027 switch handling\n\nThe file containing the list of devices was never closed\nafter processing was complete.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "5293cfdbdbc29d34f61f43a9acbdf3468375c68d",
      "tree": "1f064571af379df6f68a12c3ada49d75b27a7148",
      "parents": [
        "729b2bf689624646a3a9ce9a8f0dbec3eae02004"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Dec 16 13:08:14 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Feb 01 13:14:26 2012 +0100"
      },
      "message": "Free pdu_buff on bad pdu path in process()\n\nOn this error path, pdu_buf was never freed.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "729b2bf689624646a3a9ce9a8f0dbec3eae02004",
      "tree": "ef06f20cf4143cabd532950ae38e99e7164b0580",
      "parents": [
        "ae2dc05e9084c790e773f530cefb9a1df1d51f0a"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Dec 16 13:06:31 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Feb 01 13:14:26 2012 +0100"
      },
      "message": "Fix potential array overrun in act_to_str\n\nThe acts[] array is only N_ACTS elements, so we should not\never set acts[N_ACTS]\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "ae2dc05e9084c790e773f530cefb9a1df1d51f0a",
      "tree": "65ffa06561ceb5344fc374ae734da470b53aa6ae",
      "parents": [
        "7f0062f7b893a80afbe0e43f5db157c7bc1a01f9"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Fri Dec 16 13:05:02 2011 -0600"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Feb 01 13:14:24 2012 +0100"
      },
      "message": "Check setvbuf return value\n\nCheck for setvbuf failure.\n\nSigned-off-by: Eric Sandeen \u003csandeen@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "7f0062f7b893a80afbe0e43f5db157c7bc1a01f9",
      "tree": "76d0347effb390bdad312d0a31eb422e6a00dd92",
      "parents": [
        "94e8ee6ecac0382498107b9816ae86a609c8855b"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jan 31 10:53:21 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jan 31 10:53:21 2012 +0100"
      },
      "message": "blktrace 1.0.4\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    },
    {
      "commit": "94e8ee6ecac0382498107b9816ae86a609c8855b",
      "tree": "c46e50572b29d0b71068d92e654eca747eac0470",
      "parents": [
        "d8365957edd930f13628ff473fd52501bd9c5dae",
        "0abccbcb5d1a538028ffcb3869d646d29bf5812b"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jan 31 10:52:25 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jan 31 10:52:25 2012 +0100"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://brick.kernel.dk/data/git/blktrace\n"
    },
    {
      "commit": "d8365957edd930f13628ff473fd52501bd9c5dae",
      "tree": "9a43facd29838e6053e5f4f8a6e9e4756a63178d",
      "parents": [
        "8e8bb835e375bd8cf0f01debff61f6bf467bb1ed"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 31 10:51:50 2012 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@kernel.dk",
        "time": "Tue Jan 31 10:51:50 2012 +0100"
      },
      "message": "Fix for realloc bug and wrong error logging\n\nThis patch fixes two bugs in blktrace.\n\n1. realloc is called on a wrong memory address (glibc reports heap\ncorruption if the user sends the output to a pipe, for example \"blktrace\n/dev/sdc -o -\").\n\n2. errno 0 is actually reported if debugfs is not mounted\n\nMikulas\n\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n"
    }
  ],
  "next": "0abccbcb5d1a538028ffcb3869d646d29bf5812b"
}
