)]}'
{
  "log": [
    {
      "commit": "13adc03f658ac7ae0986a0d5b9a20c4ac097209b",
      "tree": "3f569ceda5c7271e2a6955cc924fa827ffc90307",
      "parents": [
        "7589aee6dd36b1c484c988924b08a2e3b193ee53"
      ],
      "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 09:44:45 2014 -0700"
      },
      "message": "Properly initialize trace.name in find_trace_file\n\nSigned-off-by: Chris Mason \u003cclm@fb.com\u003e\n"
    },
    {
      "commit": "7589aee6dd36b1c484c988924b08a2e3b193ee53",
      "tree": "eead0d607a561ba22fd3c58e6c5c367f3ef65028",
      "parents": [
        "33a916ace6bb3264fc1b2d3aec4c03fb0fc7650e"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 06:16:01 2014 +0100"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 06:38:04 2014 +0100"
      },
      "message": "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": "33a916ace6bb3264fc1b2d3aec4c03fb0fc7650e",
      "tree": "5eda64720fffd45f6dfb2b28b2273a861da50e95",
      "parents": [
        "8562619e967d57aa34f8b6b2cec49a139197fa40"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 03:58:40 2014 +0100"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 03:58:40 2014 +0100"
      },
      "message": "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": "8562619e967d57aa34f8b6b2cec49a139197fa40",
      "tree": "2ae02b64cda0929ef0674ce0efa896fee4df9b4e",
      "parents": [
        "f383d1f888de2f093cd0e45ae7745178bfe838e4"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 03:32:17 2014 +0100"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 03:32:17 2014 +0100"
      },
      "message": "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": "f383d1f888de2f093cd0e45ae7745178bfe838e4",
      "tree": "ad00704c76518ceff6b2342437fbcec8cb1f9815",
      "parents": [
        "0d4f986e4aefdb9a32a811730229d07146dc4a3b"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 01:55:57 2014 +0100"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sun Apr 27 01:55:57 2014 +0100"
      },
      "message": "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": "0d4f986e4aefdb9a32a811730229d07146dc4a3b",
      "tree": "5101f46bb27b138680d57f3d54690e18d8b29efe",
      "parents": [
        "40bb98410dc7b34af866f43324f954128e91db0c"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 23:00:58 2014 +0100"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 23:00:58 2014 +0100"
      },
      "message": "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": "40bb98410dc7b34af866f43324f954128e91db0c",
      "tree": "b9ef9ed2d7bb9c413406a1ab0911930bccdb2b94",
      "parents": [
        "409e84f3f758daf5472e95249240522414b4142d"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 18:22:53 2014 +0100"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 18:39:04 2014 +0100"
      },
      "message": "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": "409e84f3f758daf5472e95249240522414b4142d",
      "tree": "df758127e826dc06d40bef1f08877de55741faed",
      "parents": [
        "04c78bb7014df9421357ccaffc41063944617a9b"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 15:31:19 2014 +0100"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 15:31:19 2014 +0100"
      },
      "message": "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": "04c78bb7014df9421357ccaffc41063944617a9b",
      "tree": "75fc3a82907e98a4783b435de729c6aeb1e173d3",
      "parents": [
        "5436d38d6d834b747f72666bec3013781811d6d6"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 03:49:22 2014 +0100"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 03:49:22 2014 +0100"
      },
      "message": "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": "5436d38d6d834b747f72666bec3013781811d6d6",
      "tree": "c2a5fff8b27de121601ebbe5c50a24b001aff940",
      "parents": [
        "b6614e33a051a1d02074585fa23ca5a084515c8f"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 02:56:17 2014 +0100"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Sat Apr 26 02:56:17 2014 +0100"
      },
      "message": "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": "b6614e33a051a1d02074585fa23ca5a084515c8f",
      "tree": "0e742c3dc00d10bc629cab784b30415e666f6cd1",
      "parents": [
        "ab8cd418703ca710c7fc580de591dd42fd080773"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Mar 28 01:47:27 2014 +0000"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Mar 28 01:52:16 2014 +0000"
      },
      "message": "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": "ab8cd418703ca710c7fc580de591dd42fd080773",
      "tree": "cf09fd4934649be53972f5e74ff8b5505b3c808a",
      "parents": [
        "72a8f45370962ebe4a307bf1726416afcfc2cc87"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Mar 28 01:42:47 2014 +0000"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Mar 28 01:42:47 2014 +0000"
      },
      "message": "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": "72a8f45370962ebe4a307bf1726416afcfc2cc87",
      "tree": "dcfd808c41f55892e34787fc4eb6ff68401bc709",
      "parents": [
        "4748783e170b168013bf157679faa10f49eb8000"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Thu Mar 27 21:59:38 2014 +0000"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Thu Mar 27 22:06:48 2014 +0000"
      },
      "message": "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": "4748783e170b168013bf157679faa10f49eb8000",
      "tree": "ab5733e97896be512a23a3837280eaa6053e44d3",
      "parents": [
        "5d845e37b509032a3154b419e2b332a3bf6101f6",
        "283ee99d31561ccd16ec20841eaa0417bf739bac"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Jan 08 17:04:26 2014 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "clm@fb.com",
        "time": "Wed Jan 08 17:04:26 2014 -0500"
      },
      "message": "Merge Jan Kara\u0027s fixes\n"
    },
    {
      "commit": "5d845e37b509032a3154b419e2b332a3bf6101f6",
      "tree": "d5fd4055aec7edf231b4f49224222c21fdb25fa3",
      "parents": [
        "50392c7ff8deede0f3500e99d1d2d401c34af21b"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Nov 08 10:06:54 2013 +0000"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Fri Nov 08 10:13:30 2013 +0000"
      },
      "message": "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": "50392c7ff8deede0f3500e99d1d2d401c34af21b",
      "tree": "4bc37694154163fd06c8c4513e26c62197be8a8b",
      "parents": [
        "20498553106d146be743e07b6f65cd512be10c9e"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Wed Nov 06 16:11:18 2013 +0000"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Wed Nov 06 16:28:58 2013 +0000"
      },
      "message": "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": "283ee99d31561ccd16ec20841eaa0417bf739bac",
      "tree": "ecf7ec45d9a077e13a6871121daf5f9528f0c95f",
      "parents": [
        "88b1183e94d4ab9d9037a85a1bebe57b6daf4b83"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 04 06:18:28 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 24 15:30:52 2013 -0400"
      },
      "message": "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": "88b1183e94d4ab9d9037a85a1bebe57b6daf4b83",
      "tree": "59b2394def7a3337d75113f5e0facc53990a06ca",
      "parents": [
        "a499c35b299188fd3702c42862a9ef05c3786c4d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 04 06:18:27 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 24 15:30:52 2013 -0400"
      },
      "message": "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": "a499c35b299188fd3702c42862a9ef05c3786c4d",
      "tree": "f1f0a111a5c9985992894cc091a53f24d0766eb0",
      "parents": [
        "ed4edfef9d547df0222b7c491678b507695f92a9"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 04 06:18:26 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 24 15:30:52 2013 -0400"
      },
      "message": "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": "ed4edfef9d547df0222b7c491678b507695f92a9",
      "tree": "4a69aa01323a5f78155b0a662fb861e2dcf8e958",
      "parents": [
        "f57ca6aa2bbfbd0c9412010a6cadbd39926ff347"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 04 06:18:25 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 24 15:30:52 2013 -0400"
      },
      "message": "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": "f57ca6aa2bbfbd0c9412010a6cadbd39926ff347",
      "tree": "7ffb5bc2df377d03d75049db07a1216654a1f6b9",
      "parents": [
        "85b5ed3fa1f71eb2c5fde43f85e862b486a77608"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Apr 04 06:18:24 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 24 15:30:52 2013 -0400"
      },
      "message": "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": "85b5ed3fa1f71eb2c5fde43f85e862b486a77608",
      "tree": "0a40368979a9821b70bcbc6b0f2f78f68424b6a5",
      "parents": [
        "655a7749ce43453ae104876f453d1e8c670b98ae"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 24 15:30:35 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 24 15:30:35 2013 -0400"
      },
      "message": "Fine tune the ticks\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "655a7749ce43453ae104876f453d1e8c670b98ae",
      "tree": "81cea5f5d855ae393231a55b4c2d58eb70bb17eb",
      "parents": [
        "069b9565b5a4b75e6d484f269ad5d9bd02dbd17f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 24 15:30:23 2013 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Sep 24 15:30:23 2013 -0400"
      },
      "message": "Update the README for a few new options\n"
    },
    {
      "commit": "20498553106d146be743e07b6f65cd512be10c9e",
      "tree": "39c214cef1ada1f626f39fa6c2e4879be363cacc",
      "parents": [
        "069b9565b5a4b75e6d484f269ad5d9bd02dbd17f"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Thu Sep 05 17:35:04 2013 +0100"
      },
      "committer": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Thu Sep 05 17:35:04 2013 +0100"
      },
      "message": "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": "069b9565b5a4b75e6d484f269ad5d9bd02dbd17f",
      "tree": "ff0584a2915407ebf59abe0a191c8ba45b64aafb",
      "parents": [
        "253b12823f41051876802b3c614d6fbb75e36b4a"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 21 11:22:58 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 21 11:22:58 2013 -0500"
      },
      "message": "Don\u0027t print a legend on the tput graphs during movies\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "253b12823f41051876802b3c614d6fbb75e36b4a",
      "tree": "6c1920da4c083aaed7773cdf27f7100a58aaff86",
      "parents": [
        "7d00fac7318c36e024a06eb0b8f1bdbbbe6ee53b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 21 10:28:33 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 21 10:28:33 2013 -0500"
      },
      "message": "Update the FSF address in all files\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "7d00fac7318c36e024a06eb0b8f1bdbbbe6ee53b",
      "tree": "d53bcaa7b51841751ffec6ffadcae61b04dbf620",
      "parents": [
        "5378cb31cfe65113b3985ae104deb8aaf9e11b8a"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 21 10:17:44 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 21 10:17:44 2013 -0500"
      },
      "message": "Update the COPYING file to the correct address\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "5378cb31cfe65113b3985ae104deb8aaf9e11b8a",
      "tree": "4f719dbe648a7e3ed514c77464c0233444a8f665",
      "parents": [
        "26d4e951f0da8ba51005ffd328d5fedea82ed58a"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Fri Jan 18 11:08:39 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Sun Jan 20 08:06:39 2013 -0500"
      },
      "message": "Add support for fio bandwith logs (-F logfile)\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "26d4e951f0da8ba51005ffd328d5fedea82ed58a",
      "tree": "176a5b06129a0faea15c1a1474e280170de3fbb4",
      "parents": [
        "e375df29db98e39de8fccc4db0b6f0208e437016"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Jan 17 12:45:42 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Jan 17 12:45:42 2013 -0500"
      },
      "message": "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": "e375df29db98e39de8fccc4db0b6f0208e437016",
      "tree": "abfa27ea7127cb3e43c5e645b217a6f9634013b4",
      "parents": [
        "01173e49b72d767bd2bbdae7e807249e02c57c45"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Wed Jan 16 22:25:28 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Jan 17 11:54:42 2013 -0500"
      },
      "message": "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": "01173e49b72d767bd2bbdae7e807249e02c57c45",
      "tree": "df5b42b18ba8b07ec8d9057c5cd39d55c3429a48",
      "parents": [
        "7eff4120bc094da25d39afcf1f82ca8d996adf5f"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 14 20:59:06 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Thu Jan 17 11:54:42 2013 -0500"
      },
      "message": "Handle traces to more than once device at a time\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "7eff4120bc094da25d39afcf1f82ca8d996adf5f",
      "tree": "3f76312d2056760fcda7e4a181258da916f4797e",
      "parents": [
        "6e9d6ca27eb20e190464289d86ecf4ff93585464"
      ],
      "author": {
        "name": "Nikita Danilov",
        "email": "danilov@gmail.com",
        "time": "Wed Dec 19 11:27:21 2012 -0700"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 14 16:27:54 2013 -0500"
      },
      "message": "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": "6e9d6ca27eb20e190464289d86ecf4ff93585464",
      "tree": "4b5bb3cb0f7717189bfe994f4e0c97a3bac53bfd",
      "parents": [
        "3b49b4b09f00f901c75d5d9cd31094cceff22f82"
      ],
      "author": {
        "name": "Andrew Price",
        "email": "anprice@redhat.com",
        "time": "Wed Dec 19 11:54:45 2012 -0700"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 14 16:14:53 2013 -0500"
      },
      "message": "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": "3b49b4b09f00f901c75d5d9cd31094cceff22f82",
      "tree": "05e3ff79ecd99710e2fb65067d08c1b817f0b1a2",
      "parents": [
        "619d3c2d6f974ab7b12c539436bd586856135a5b"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 14 16:05:13 2013 -0500"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Jan 14 16:05:13 2013 -0500"
      },
      "message": "Fix spindle rotation in the movie mode\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "619d3c2d6f974ab7b12c539436bd586856135a5b",
      "tree": "0c9371cde106e63861a742184895aa132da447cf",
      "parents": [
        "d8bd7d8c853d6d6470692c22ee767e400a4414f4"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Fri Oct 26 15:23:40 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Fri Oct 26 15:23:40 2012 -0400"
      },
      "message": "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": "d8bd7d8c853d6d6470692c22ee767e400a4414f4",
      "tree": "5cb6532118a0ac6ce7edf7d39041fc6db244b0af",
      "parents": [
        "fc72001e93d258a0007c2cfc16a6bfc49b791f39"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Oct 23 11:05:31 2012 +0200"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Oct 23 09:44:20 2012 -0400"
      },
      "message": "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": "fc72001e93d258a0007c2cfc16a6bfc49b791f39",
      "tree": "a73ece1656d4fd03e7f8d512ce28bc01fe1a4c27",
      "parents": [
        "57b9310d28843fd50227fc0f1aecf30be6636006"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Oct 22 11:51:41 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Oct 22 11:51:41 2012 -0400"
      },
      "message": "Add -K command line option to keep the movie svg files\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "57b9310d28843fd50227fc0f1aecf30be6636006",
      "tree": "f153a7e5f9b6c6bdaa6bfc2567cb4aee3d3e8c63",
      "parents": [
        "e274d7b926da0b52f1a542a3e14a963ac52ffb58"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Oct 22 11:22:55 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Mon Oct 22 11:22:55 2012 -0400"
      },
      "message": "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": "e274d7b926da0b52f1a542a3e14a963ac52ffb58",
      "tree": "b80be5724b2f9ff3e3cae30364a3da6d35a67e05",
      "parents": [
        "68d25bc003876ec2a681f8220d8e6f8be259f6cd"
      ],
      "author": {
        "name": "Eric Sandeen",
        "email": "sandeen@redhat.com",
        "time": "Thu Oct 18 15:42:38 2012 -0600"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Fri Oct 19 12:37:43 2012 -0400"
      },
      "message": "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": "68d25bc003876ec2a681f8220d8e6f8be259f6cd",
      "tree": "55478f935b0fed6000f9b24fc6e169f24630c04b",
      "parents": [
        "463b480f1a57cb0dfa523628b1af4033d8763332"
      ],
      "author": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Wed Oct 17 15:45:49 2012 -0400"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Wed Oct 17 15:45:49 2012 -0400"
      },
      "message": "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": "463b480f1a57cb0dfa523628b1af4033d8763332",
      "tree": "f7e01dbca53842a06086dcc4e80cd26244321318",
      "parents": [
        "407efbbaec274f1d66391df373e0edde13fb42b9"
      ],
      "author": {
        "name": "Yuanhan Liu",
        "email": "yliu.null@gmail.com",
        "time": "Fri Oct 12 10:09:29 2012 -0600"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Wed Oct 17 15:04:42 2012 -0400"
      },
      "message": "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": "407efbbaec274f1d66391df373e0edde13fb42b9",
      "tree": "32982bdbdbfe07f2a9807cc2bc38d347b7d2c562",
      "parents": [
        "1fae6809fc8b23df6e38331d64bb66c7b4a064c9"
      ],
      "author": {
        "name": "Liu Bo",
        "email": "liub.liubo@gmail.com",
        "time": "Thu Sep 27 21:55:14 2012 -0600"
      },
      "committer": {
        "name": "Chris Mason",
        "email": "chris.mason@fusionio.com",
        "time": "Tue Oct 02 14:05:09 2012 -0400"
      },
      "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": "1fae6809fc8b23df6e38331d64bb66c7b4a064c9",
      "tree": "ee188da322154a0d598fe6e373fe8c15cadcfe4e",
      "parents": [
        "66d171d4cbbf4a0ad304906db189afedf978f839"
      ],
      "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": "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": "66d171d4cbbf4a0ad304906db189afedf978f839",
      "tree": "9dc47bebe2076692d0a625bb5d41d7aba35ef095",
      "parents": [
        "8f4a3ed4467e1a08e36ee5e095c5408b2aa4705f"
      ],
      "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": "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": "8f4a3ed4467e1a08e36ee5e095c5408b2aa4705f",
      "tree": "196693ed0aeb8005032d86a62f3df933ece5fd58",
      "parents": [
        "c4bca6ec4acca503b6b8e96e2234bd0f3f5f8980",
        "928f1c769c989f7c75fad58712227cdf827b1018"
      ],
      "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": "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": "928f1c769c989f7c75fad58712227cdf827b1018",
      "tree": "0049467905ec2d3eaa10d4100917d2e743826ecb",
      "parents": [
        "1b6d49249326660812f205a0259dbc98b2abd922"
      ],
      "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": "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": "1b6d49249326660812f205a0259dbc98b2abd922",
      "tree": "e51439e9747cb78778ecae522bed7aead86fd747",
      "parents": [
        "4a8f23a608e0dde4061dacb3818653f0a2cbf0b4"
      ],
      "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": "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": "4a8f23a608e0dde4061dacb3818653f0a2cbf0b4",
      "tree": "cee970d1ecb562408b9053287c3b0f75aa21788d",
      "parents": [
        "6ab4dfc12e5e5f15395971c94a4f97a73217a513"
      ],
      "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": "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": "6ab4dfc12e5e5f15395971c94a4f97a73217a513",
      "tree": "48c3fd8d42d08efa0c6b05f55d26012e55547360",
      "parents": [
        "768e3f8d497797a275554ecde8dd6e41931814b6"
      ],
      "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": "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": "768e3f8d497797a275554ecde8dd6e41931814b6",
      "tree": "c7b0b670a9421daf7ead749dfe21e940f9f01c29",
      "parents": [
        "f896efa4180f70982186c5f71301d25e1dc0c02a"
      ],
      "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": "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": "f896efa4180f70982186c5f71301d25e1dc0c02a",
      "tree": "602c6f201ac6059258bab1274f35f96536d3031d",
      "parents": [
        "26871fde0abba867abdf43c490e9e64da55b5284"
      ],
      "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": "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": "26871fde0abba867abdf43c490e9e64da55b5284",
      "tree": "8f2cf37f21a65ba3a4d84b5d90312b7373cd45a6",
      "parents": [
        "9d8523da087da8ddb87e72a4a008725a2cd7e0c8"
      ],
      "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": "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": "9d8523da087da8ddb87e72a4a008725a2cd7e0c8",
      "tree": "214db5911ea68131a45615e8fe0419b48320d9a4",
      "parents": [
        "3b1763ebc32446916598d9fc4e5b480622bbf050"
      ],
      "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": "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": "3b1763ebc32446916598d9fc4e5b480622bbf050",
      "tree": "76322246f1fa58ae428729ae68fea74224f6cadf",
      "parents": [
        "d389360718e9c436ba714697ebf0e15f01c6eeda"
      ],
      "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": "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": "d389360718e9c436ba714697ebf0e15f01c6eeda",
      "tree": "fa2bb74685704d9e488e0b8b73a24fbb217ef313",
      "parents": [
        "e0737406abd61124cd6e0b10c7e24d8ee67a2e6b"
      ],
      "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": "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": "c4bca6ec4acca503b6b8e96e2234bd0f3f5f8980",
      "tree": "3bec08c448cfc92554b7bc6e504214c5009815cd",
      "parents": [
        "e0737406abd61124cd6e0b10c7e24d8ee67a2e6b"
      ],
      "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": "Check for null mpstat structs while generating plots\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "e0737406abd61124cd6e0b10c7e24d8ee67a2e6b",
      "tree": "1e99def9e84712cc36f4ec0e5eb54c882a7e672d",
      "parents": [
        "42f8b6673a921c9851956275181a8ba3a499e189"
      ],
      "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": "Add -c to split the graphs up into multiple columns\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "42f8b6673a921c9851956275181a8ba3a499e189",
      "tree": "acf1b29cb4f0f805b7fa460a4131f17da219281c",
      "parents": [
        "0147183d7ef0edc1b3473fdae19cb679bc0968be"
      ],
      "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": "Fix divide by zero while calculating averages\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "0147183d7ef0edc1b3473fdae19cb679bc0968be",
      "tree": "a85472418fe2e7ad8c16aebfc2cf221a9c0f02f7",
      "parents": [
        "8483348b3d2ec8bb80ff8fe16973d2954bb88630"
      ],
      "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": "Update the README and the --help output\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "8483348b3d2ec8bb80ff8fe16973d2954bb88630",
      "tree": "ab8b9c0c0ddaaa691004e03db68afa3835d3a431",
      "parents": [
        "48bf4ae8b63f91462147254139433a4e1591eae5"
      ],
      "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": "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": "48bf4ae8b63f91462147254139433a4e1591eae5",
      "tree": "d586296fc07178e31a9453d2bd268e23c6fa611f",
      "parents": [
        "e539bf58f0e097b38dad2f648c535397ebc237ae"
      ],
      "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": "Fix io line graphs at the edge of the X axis\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "e539bf58f0e097b38dad2f648c535397ebc237ae",
      "tree": "3c5596e29c2ed8cf302ff8266ae6ca7ad1d803ec",
      "parents": [
        "914d96e0265c44a9b80dfdfef9cd094072336278"
      ],
      "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": "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": "914d96e0265c44a9b80dfdfef9cd094072336278",
      "tree": "0ff3a61cf8451050a4fe9dbdf5314c62f956594a",
      "parents": [
        "976a863adece6efcfd84956bbc9f31320db3395e"
      ],
      "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": "Fix mpstat file permissions\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "976a863adece6efcfd84956bbc9f31320db3395e",
      "tree": "d8bb2fed1fdcef75891b4512a4e57c86df543d60",
      "parents": [
        "164526ff089393aae84b62a3b7ed80b0f4c8ccc6"
      ],
      "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": "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": "164526ff089393aae84b62a3b7ed80b0f4c8ccc6",
      "tree": "614163986148b11cd511982db41191dcb5f45448",
      "parents": [
        "47d51716f6eb13e3715c5fd74c767ced6e1a5dc6"
      ],
      "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": "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": "47d51716f6eb13e3715c5fd74c767ced6e1a5dc6",
      "tree": "2b05640c19977829afc25715c3015c76d76aa071",
      "parents": [
        "b00931c3bd7d7e5480c17a522f60f33028b4cb20"
      ],
      "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": "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": "b00931c3bd7d7e5480c17a522f60f33028b4cb20",
      "tree": "1ae78e215d6cb70792288ef2b8125a179c2bfd8c",
      "parents": [
        "26daee0f637afbf4f784b3a7c408ba8ec5a1aa3d"
      ],
      "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": "Add back missing plot title\n"
    },
    {
      "commit": "26daee0f637afbf4f784b3a7c408ba8ec5a1aa3d",
      "tree": "1d4344ab537a92c14efcaa28810d2032afb2be5a",
      "parents": [
        "7da341fe2273232c51193d5f2fd9204bbbe13b5d"
      ],
      "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": "Fix --help definition\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "7da341fe2273232c51193d5f2fd9204bbbe13b5d",
      "tree": "08f7f6dec4265ce5e98e8ef292a35316b756365d",
      "parents": [
        "4b9e525d6b2d5cbeb3141b2a80668537063c6ad7"
      ],
      "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": "Add mpstat.[ch] into git\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "4b9e525d6b2d5cbeb3141b2a80668537063c6ad7",
      "tree": "ba93251214e5145f21b7ac0c8b1bd6223a059f64",
      "parents": [
        "a793c02a3c57bdad9c018ab3bd9fad2b14e31769"
      ],
      "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": "Add movie support\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "a793c02a3c57bdad9c018ab3bd9fad2b14e31769",
      "tree": "6ed6f7179304f43da0cc10145c9463c13395f511",
      "parents": [
        "64cf86661532d573c90a4a78ef0e3ef95d6b8765"
      ],
      "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": "Add mpstat graphing support\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    },
    {
      "commit": "64cf86661532d573c90a4a78ef0e3ef95d6b8765",
      "tree": "71818bd6e25863fc542f87c819769d2f72cbff32",
      "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": "Initial revision\n\nSigned-off-by: Chris Mason \u003cchris.mason@fusionio.com\u003e\n"
    }
  ]
}
