)]}'
{
  "log": [
    {
      "commit": "d9f624f5147fa556eef4e472cbd3355c9f178126",
      "tree": "2ee6dc8fe789340553a66e15d20aa4d7b8dee2a8",
      "parents": [
        "3744cbb734aa83a1d4f123c1b5adb20e8efd212d",
        "357e0ceb27780974f4ad75cf493f2b4a350a5850"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Dec 07 16:14:42 2018 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Dec 07 16:14:42 2018 -0800"
      },
      "message": "DO NOT MERGE\n\nMerge pie-platform-release (PPRL.181205.001, history only) into master\n\nBug: 120502534\nChange-Id: Icf680399c1d836bed4b1ccf06238cb0eaf6bd5a9\n"
    },
    {
      "commit": "3744cbb734aa83a1d4f123c1b5adb20e8efd212d",
      "tree": "2ee6dc8fe789340553a66e15d20aa4d7b8dee2a8",
      "parents": [
        "3dc16700395a5989ef3f4fd83f58b6c235c31fb8",
        "6edd400c7e19115969dfb593a95d4136f584f37a"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Aug 07 17:22:40 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 07 17:22:40 2018 -0700"
      },
      "message": "Merge Android Pie into master am: da847891e1\nam: 6edd400c7e\n\nChange-Id: I830960cbd6ceb72cbe3a5037b4178bfcf7fcbe1d\n"
    },
    {
      "commit": "6edd400c7e19115969dfb593a95d4136f584f37a",
      "tree": "2ee6dc8fe789340553a66e15d20aa4d7b8dee2a8",
      "parents": [
        "beecbc049b8ea9340930186d6936cd63557646a3",
        "da847891e1c9cd36d37a1f975e3b4b847d9c8d40"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Aug 07 13:45:34 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 07 13:45:34 2018 -0700"
      },
      "message": "Merge Android Pie into master\nam: da847891e1\n\nChange-Id: I3547fd27d10b4fa239c9de3a23bc4ee2e3d92933\n"
    },
    {
      "commit": "da847891e1c9cd36d37a1f975e3b4b847d9c8d40",
      "tree": "2ee6dc8fe789340553a66e15d20aa4d7b8dee2a8",
      "parents": [
        "31ccc081929e27f780a87a94deb20e4333c6b323",
        "beecbc049b8ea9340930186d6936cd63557646a3"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Aug 06 16:50:46 2018 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Aug 06 16:50:46 2018 -0700"
      },
      "message": "Merge Android Pie into master\n\nBug: 112104996\nChange-Id: Icb7cf76bc97e423a4cff040b8a2800c679e6cb51\n"
    },
    {
      "commit": "3dc16700395a5989ef3f4fd83f58b6c235c31fb8",
      "tree": "2ee6dc8fe789340553a66e15d20aa4d7b8dee2a8",
      "parents": [
        "df9cd7d6241394463795ce117ef4bf8e1502a1ff",
        "beecbc049b8ea9340930186d6936cd63557646a3"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Sat Jun 09 02:10:34 2018 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 09 02:10:34 2018 -0700"
      },
      "message": "Merge pi-dev-plus-aosp-without-vendor into stage-aosp-master\nam: beecbc049b\n\nChange-Id: I22fab8f771ce9f2980584e3e31cb702b80ea015f\n"
    },
    {
      "commit": "beecbc049b8ea9340930186d6936cd63557646a3",
      "tree": "2ee6dc8fe789340553a66e15d20aa4d7b8dee2a8",
      "parents": [
        "9bc36c5df3c04f8ea3f97fe47278d3428d1a7e8e",
        "df9cd7d6241394463795ce117ef4bf8e1502a1ff"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Jun 08 11:07:27 2018 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Jun 08 11:07:27 2018 -0700"
      },
      "message": "Merge pi-dev-plus-aosp-without-vendor into stage-aosp-master\n\nBug: 79597307\nChange-Id: I96c7dca3ad426f6c1e843bf7a68923f09d8b92f4\n"
    },
    {
      "commit": "357e0ceb27780974f4ad75cf493f2b4a350a5850",
      "tree": "2ee6dc8fe789340553a66e15d20aa4d7b8dee2a8",
      "parents": [
        "ee297f0369c9d7d0f58eef9ba20d28137ce95107",
        "df9cd7d6241394463795ce117ef4bf8e1502a1ff"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Mon Dec 11 11:59:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Mon Dec 11 11:59:55 2017 +0000"
      },
      "message": "Snap for 4496165 from df9cd7d6241394463795ce117ef4bf8e1502a1ff to pi-release\n\nChange-Id: I051d63af28dade7900de1eddf784cbd5d799d22c\n"
    },
    {
      "commit": "df9cd7d6241394463795ce117ef4bf8e1502a1ff",
      "tree": "2ee6dc8fe789340553a66e15d20aa4d7b8dee2a8",
      "parents": [
        "c53d7f6f6678d74f0bbb03e0d2b693897c668478",
        "465cacaa49912d5a38cc538da8dcc679f6ac9813"
      ],
      "author": {
        "name": "Stephen Li",
        "email": "stephenli@google.com",
        "time": "Thu Dec 07 23:27:45 2017 +0000"
      },
      "committer": {
        "name": "Stephen Li",
        "email": "stephenli@google.com",
        "time": "Thu Dec 07 23:27:45 2017 +0000"
      },
      "message": "Manually merge changes from giant AOSP topic\n\nChange-Id: Ia7d49acf78f4ed462f749a2cc18d939e4ccf3dfe\n"
    },
    {
      "commit": "465cacaa49912d5a38cc538da8dcc679f6ac9813",
      "tree": "20ddefe9eadbc8bb9d4707cd1511b751733bef0f",
      "parents": [
        "e14a5f72b3877f6d9aafab88121a40ab65e738a8",
        "9bc36c5df3c04f8ea3f97fe47278d3428d1a7e8e"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Dec 07 06:27:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 07 06:27:38 2017 +0000"
      },
      "message": "DO NOT MERGE: Merge Oreo MR1 into master am: 31ccc08192  -s ours\nam: 9bc36c5df3\n\nChange-Id: I76659a0a943486b9b81d149c7fa698ca359cf923\n"
    },
    {
      "commit": "9bc36c5df3c04f8ea3f97fe47278d3428d1a7e8e",
      "tree": "20ddefe9eadbc8bb9d4707cd1511b751733bef0f",
      "parents": [
        "0cdeec25b1a9343cc24760280eee8df04ecdef93",
        "31ccc081929e27f780a87a94deb20e4333c6b323"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Dec 07 04:06:09 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 07 04:06:09 2017 +0000"
      },
      "message": "DO NOT MERGE: Merge Oreo MR1 into master\nam: 31ccc08192  -s ours\n\nChange-Id: I3f7d4c3f04a22b1554d05fb094d34e501021642f\n"
    },
    {
      "commit": "31ccc081929e27f780a87a94deb20e4333c6b323",
      "tree": "20ddefe9eadbc8bb9d4707cd1511b751733bef0f",
      "parents": [
        "ae630820564aa4d979a50c4684438d6974fbb2bb",
        "0cdeec25b1a9343cc24760280eee8df04ecdef93"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Dec 06 11:51:58 2017 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Dec 06 14:24:49 2017 -0800"
      },
      "message": "DO NOT MERGE: Merge Oreo MR1 into master\n\nExempt-From-Owner-Approval: Changes already landed internally\nChange-Id: I7e8a2abdcdc3d5950a3a6381b85c39eebb82f9b7\n"
    },
    {
      "commit": "ee297f0369c9d7d0f58eef9ba20d28137ce95107",
      "tree": "2ee6dc8fe789340553a66e15d20aa4d7b8dee2a8",
      "parents": [
        "d6e6d23e977906c195d80f58de73ab0b464181e6",
        "c53d7f6f6678d74f0bbb03e0d2b693897c668478"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Thu Nov 16 08:28:57 2017 +0000"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Thu Nov 16 08:28:57 2017 +0000"
      },
      "message": "Snap for 4455093 from c53d7f6f6678d74f0bbb03e0d2b693897c668478 to pi-release\n\nChange-Id: I560f088d1579413d8813edcf35abe4e2a692243f\n"
    },
    {
      "commit": "c53d7f6f6678d74f0bbb03e0d2b693897c668478",
      "tree": "2ee6dc8fe789340553a66e15d20aa4d7b8dee2a8",
      "parents": [
        "ed4af52ae97591018ac5b7a1eea60739576cba64",
        "e14a5f72b3877f6d9aafab88121a40ab65e738a8"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Thu Nov 16 00:52:43 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 16 00:52:43 2017 +0000"
      },
      "message": "Add metadata am: ae63082056 am: 0cdeec25b1\nam: e14a5f72b3\n\nChange-Id: Ic49d389c5bdafe8b9020521fc49896168b18d6cd\n"
    },
    {
      "commit": "e14a5f72b3877f6d9aafab88121a40ab65e738a8",
      "tree": "20ddefe9eadbc8bb9d4707cd1511b751733bef0f",
      "parents": [
        "bcf415db9dda18fcb83e2ec14dd417d28ef8ba9a",
        "0cdeec25b1a9343cc24760280eee8df04ecdef93"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Thu Nov 16 00:51:43 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 16 00:51:43 2017 +0000"
      },
      "message": "Add metadata am: ae63082056\nam: 0cdeec25b1\n\nChange-Id: I2b8082869a39152f23b2803b61638930d4de98c2\n"
    },
    {
      "commit": "0cdeec25b1a9343cc24760280eee8df04ecdef93",
      "tree": "20ddefe9eadbc8bb9d4707cd1511b751733bef0f",
      "parents": [
        "4fe8513064d42e86f5b713536ade8b7b25524aa7",
        "ae630820564aa4d979a50c4684438d6974fbb2bb"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Thu Nov 16 00:49:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 16 00:49:30 2017 +0000"
      },
      "message": "Add metadata\nam: ae63082056\n\nChange-Id: Ib92067628dfff40745b67b63c174e1e8fa1a18e9\n"
    },
    {
      "commit": "ae630820564aa4d979a50c4684438d6974fbb2bb",
      "tree": "f8ba4680389cbedb5bf7ae44e859de877c0392f5",
      "parents": [
        "e3e1107fc64daad1e5950479951b8627cb2251e8"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Wed Nov 15 14:12:51 2017 -0800"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Wed Nov 15 14:12:51 2017 -0800"
      },
      "message": "Add metadata\n\nBUG:67772237\nChange-Id: I028546d1996b3b672a35707ddb1174e42b96eec1\n"
    },
    {
      "commit": "d6e6d23e977906c195d80f58de73ab0b464181e6",
      "tree": "43ed11676461f60ba4da06ddbcf4fbcfe1da6815",
      "parents": [
        "2bda3671d6aeae91a06c43787228418ca9a23fcc",
        "ed4af52ae97591018ac5b7a1eea60739576cba64"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed Nov 15 08:31:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed Nov 15 08:31:15 2017 +0000"
      },
      "message": "Snap for 4453288 from ed4af52ae97591018ac5b7a1eea60739576cba64 to pi-release\n\nChange-Id: I877109ae719a184f449b8ae5eb626db901581670\n"
    },
    {
      "commit": "ed4af52ae97591018ac5b7a1eea60739576cba64",
      "tree": "43ed11676461f60ba4da06ddbcf4fbcfe1da6815",
      "parents": [
        "9ea1d01da31d97ec83db0f4e6594d0f3a673e4bb",
        "bcf415db9dda18fcb83e2ec14dd417d28ef8ba9a"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Nov 15 01:26:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 15 01:26:25 2017 +0000"
      },
      "message": "Merge remote-tracking branch \u0027goog/stage-aosp-master\u0027 into HEAD\nam: bcf415db9d\n\nChange-Id: Ice3f6c94da7f23c6990de263276701336ca8fc3e\n"
    },
    {
      "commit": "bcf415db9dda18fcb83e2ec14dd417d28ef8ba9a",
      "tree": "fcae6b21749329c8b2881e187bbd8df7f3eecf83",
      "parents": [
        "42099c645eeceaa118aa64b5f2396d2cc9e0b653",
        "4fe8513064d42e86f5b713536ade8b7b25524aa7"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Nov 14 16:38:15 2017 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Tue Nov 14 16:38:15 2017 -0800"
      },
      "message": "Merge remote-tracking branch \u0027goog/stage-aosp-master\u0027 into HEAD\n\nChange-Id: I53619bae55db81496ce22acba364c5e603944168\n"
    },
    {
      "commit": "4fe8513064d42e86f5b713536ade8b7b25524aa7",
      "tree": "fcae6b21749329c8b2881e187bbd8df7f3eecf83",
      "parents": [
        "86f459097df74ded1343729feaf6921d243d6c62",
        "effd7b5ba93f752abe87c0def558d64e9b88b2ef"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Nov 13 14:35:30 2017 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Mon Nov 13 14:35:30 2017 -0800"
      },
      "message": "Merge commit \u0027effd7b5ba93f752abe87c0def558d64e9b88b2ef\u0027 into HEAD\n\nChange-Id: If1751d881f28c00343197ff14e3c98bdc342fe81\n"
    },
    {
      "commit": "2bda3671d6aeae91a06c43787228418ca9a23fcc",
      "tree": "43ed11676461f60ba4da06ddbcf4fbcfe1da6815",
      "parents": [
        "14171a42a712461eb93a807b754a8ece3c57c1aa",
        "9ea1d01da31d97ec83db0f4e6594d0f3a673e4bb"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Sun Oct 29 08:02:43 2017 +0000"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Sun Oct 29 08:02:43 2017 +0000"
      },
      "message": "Snap for 4422293 from 9ea1d01da31d97ec83db0f4e6594d0f3a673e4bb to pi-release\n\nChange-Id: I7958134177238bdd95f611e313e3fb18ed01f276\n"
    },
    {
      "commit": "14171a42a712461eb93a807b754a8ece3c57c1aa",
      "tree": "21e89121a728fe2f3ef61bd5202fcfe62b1c1d3d",
      "parents": [
        "44ac40234d58a9f668d506eaf428e0fb7420cf3c",
        "762d50c37f5001a4cd68dda070de1d16cb53f913"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed Oct 25 08:02:31 2017 +0000"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Wed Oct 25 08:02:31 2017 +0000"
      },
      "message": "Snap for 4415813 from 762d50c37f5001a4cd68dda070de1d16cb53f913 to pi-release\n\nChange-Id: If8ac8b2824f280b6742e7308211f89e4c06f820f\n"
    },
    {
      "commit": "9ea1d01da31d97ec83db0f4e6594d0f3a673e4bb",
      "tree": "43ed11676461f60ba4da06ddbcf4fbcfe1da6815",
      "parents": [
        "762d50c37f5001a4cd68dda070de1d16cb53f913",
        "c0a8e7800b3e569ef92de06ca0b9a76b03984c5f"
      ],
      "author": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Tue Oct 24 16:05:55 2017 -0700"
      },
      "committer": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Tue Oct 24 16:52:54 2017 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of ssh://github.com/ARM-software/trappy into goog-master\n\nChange-Id: I1c291fba04d70b5a5613a495a404bc38de76e1fd\n"
    },
    {
      "commit": "762d50c37f5001a4cd68dda070de1d16cb53f913",
      "tree": "21e89121a728fe2f3ef61bd5202fcfe62b1c1d3d",
      "parents": [
        "8d1e23f73185cd25a3a42af679a01145ce5fce62",
        "42099c645eeceaa118aa64b5f2396d2cc9e0b653"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Oct 24 20:40:36 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 24 20:40:36 2017 +0000"
      },
      "message": "Merge remote-tracking branch \u0027goog/stage-aosp-master\u0027 into HEAD am: e3e1107fc6 am: 86f459097d\nam: 42099c645e\n\nChange-Id: I86d1835828a119f1cde9c37705801d22a799be89\n"
    },
    {
      "commit": "42099c645eeceaa118aa64b5f2396d2cc9e0b653",
      "tree": "fcae6b21749329c8b2881e187bbd8df7f3eecf83",
      "parents": [
        "effd7b5ba93f752abe87c0def558d64e9b88b2ef",
        "86f459097df74ded1343729feaf6921d243d6c62"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Oct 24 20:34:42 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 24 20:34:42 2017 +0000"
      },
      "message": "Merge remote-tracking branch \u0027goog/stage-aosp-master\u0027 into HEAD am: e3e1107fc6\nam: 86f459097d\n\nChange-Id: I14a32befed91b0d31dd4452c536afc0877c9dc88\n"
    },
    {
      "commit": "86f459097df74ded1343729feaf6921d243d6c62",
      "tree": "6236084b64e2fac1395c14e1cd31f07631bdd17c",
      "parents": [
        "afa9ac7d749bedcedc9896de3bc8852f74538006",
        "e3e1107fc64daad1e5950479951b8627cb2251e8"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Oct 24 20:27:27 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 24 20:27:27 2017 +0000"
      },
      "message": "Merge remote-tracking branch \u0027goog/stage-aosp-master\u0027 into HEAD\nam: e3e1107fc6\n\nChange-Id: I3947109be160fdd2a0f6aeeb77d157b4d1e4f02a\n"
    },
    {
      "commit": "e3e1107fc64daad1e5950479951b8627cb2251e8",
      "tree": "6236084b64e2fac1395c14e1cd31f07631bdd17c",
      "parents": [
        "e310136b55af96d9802827af35f105db1f7721d0",
        "afa9ac7d749bedcedc9896de3bc8852f74538006"
      ],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Oct 24 12:04:16 2017 -0700"
      },
      "committer": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Tue Oct 24 12:04:16 2017 -0700"
      },
      "message": "Merge remote-tracking branch \u0027goog/stage-aosp-master\u0027 into HEAD\n"
    },
    {
      "commit": "c0a8e7800b3e569ef92de06ca0b9a76b03984c5f",
      "tree": "9c43e07e16ecb77fcdeea6704391533ce7cfe37b",
      "parents": [
        "a10ee682fdf16d6ff801e726e731d7196a75a809",
        "a74ef6f6ee5416e6366bf83a1ddde71bd0b6c7f5"
      ],
      "author": {
        "name": "Brendan Jackman",
        "email": "bjackman@users.noreply.github.com",
        "time": "Tue Oct 24 10:17:46 2017 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 24 10:17:46 2017 +0100"
      },
      "message": "Merge pull request #272 from kdub/gh-master-ext4\n\nparse traces from ext4 events"
    },
    {
      "commit": "a74ef6f6ee5416e6366bf83a1ddde71bd0b6c7f5",
      "tree": "9c43e07e16ecb77fcdeea6704391533ce7cfe37b",
      "parents": [
        "a10ee682fdf16d6ff801e726e731d7196a75a809"
      ],
      "author": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Mon Oct 23 11:07:15 2017 -0700"
      },
      "committer": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Mon Oct 23 11:09:11 2017 -0700"
      },
      "message": "parse traces from ext4 events\n\nAdds trace parsing for ext4_da_write_begin, ext4_da_write_end,\next4_sync_file_enter, and ext4_sync_file_exit events\n\nTest: run the 4 new unit tests (nosetests tests/test_filesystem.py)\n\nChange-Id: I9b7049d5e9879cc3dedb5fd9d3d1433fa8304618\n"
    },
    {
      "commit": "a10ee682fdf16d6ff801e726e731d7196a75a809",
      "tree": "7eb005ccd27516696335b6034550e9d495817a3b",
      "parents": [
        "101592273c8bdf29d95d321a86189666d88a9ddb",
        "b5108a1c054fab4e581eea68d00fe9b88e25cfa8"
      ],
      "author": {
        "name": "Brendan Jackman",
        "email": "bjackman@users.noreply.github.com",
        "time": "Mon Oct 23 18:36:18 2017 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 23 18:36:18 2017 +0100"
      },
      "message": "Merge pull request #271 from kdub/gh-master-clock\n\nparse traces from the common clock infrastructure"
    },
    {
      "commit": "b5108a1c054fab4e581eea68d00fe9b88e25cfa8",
      "tree": "7eb005ccd27516696335b6034550e9d495817a3b",
      "parents": [
        "101592273c8bdf29d95d321a86189666d88a9ddb"
      ],
      "author": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Wed Oct 04 14:28:52 2017 -0700"
      },
      "committer": {
        "name": "Kevin DuBois",
        "email": "kevindubois@google.com",
        "time": "Mon Oct 23 09:52:26 2017 -0700"
      },
      "message": "parse traces from the common clock infrastructure\n\nTraces from clock_set_rate, clock_enable, clock_disable need\nspecialized parsing. Add additional feature to parse these traces.\n\nTest: run the 3 new unit tests (nosetests tests/test_common_clk.py)\n\nChange-Id: Ib93b72697fc4d5eb30cffb914bbe0cb4c4cd872d\n"
    },
    {
      "commit": "e310136b55af96d9802827af35f105db1f7721d0",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [],
      "author": {
        "name": "Bill Yi",
        "email": "byi@google.com",
        "time": "Mon Oct 23 16:10:55 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 23 16:10:55 2017 +0000"
      },
      "message": "Initial empty repository\n"
    },
    {
      "commit": "44ac40234d58a9f668d506eaf428e0fb7420cf3c",
      "tree": "21e89121a728fe2f3ef61bd5202fcfe62b1c1d3d",
      "parents": [
        "a1c892a53503128e8a0da4befeead5217dbdd8d3",
        "8d1e23f73185cd25a3a42af679a01145ce5fce62"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Tue Oct 03 08:05:13 2017 +0000"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Tue Oct 03 08:05:13 2017 +0000"
      },
      "message": "Snap for 4373608 from 8d1e23f73185cd25a3a42af679a01145ce5fce62 to pi-release\n\nChange-Id: I67179827c58277fa72c446a8b1669508d4c49e05\n"
    },
    {
      "commit": "101592273c8bdf29d95d321a86189666d88a9ddb",
      "tree": "16e3202cd82c5c7f2ab5e9abb8e3a261be6cb832",
      "parents": [
        "957826a0f5991de2c9b31b32274361837aa4406e",
        "581f936a426783d289b0b0ff4e9dfafa874dcddd"
      ],
      "author": {
        "name": "Brendan Jackman",
        "email": "bjackman@users.noreply.github.com",
        "time": "Mon Sep 18 14:44:15 2017 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Sep 18 14:44:15 2017 +0100"
      },
      "message": "Merge pull request #268 from valschneider/get_duration-fix\n\nbare_trace: Fix get_duration() for window use"
    },
    {
      "commit": "581f936a426783d289b0b0ff4e9dfafa874dcddd",
      "tree": "870194174fd4c266900d32a106afa9627da54b72",
      "parents": [
        "211eeb5b8c238f6a2934b92b5bc4200b549f0780"
      ],
      "author": {
        "name": "Valentin Schneider",
        "email": "valentin.schneider@arm.com",
        "time": "Mon Sep 18 12:36:58 2017 +0100"
      },
      "committer": {
        "name": "Valentin Schneider",
        "email": "valentin.schneider@arm.com",
        "time": "Mon Sep 18 12:48:38 2017 +0100"
      },
      "message": "tests/test_ftrace: Add window duration tests\n"
    },
    {
      "commit": "211eeb5b8c238f6a2934b92b5bc4200b549f0780",
      "tree": "ab0a38f388bbf211eda678c30357da76ef68ed02",
      "parents": [
        "46660d432e6ecb68dec8ff38180d93ba4e6ec7f0"
      ],
      "author": {
        "name": "Valentin Schneider",
        "email": "valentin.schneider@arm.com",
        "time": "Mon Sep 18 11:49:11 2017 +0100"
      },
      "committer": {
        "name": "Valentin Schneider",
        "email": "valentin.schneider@arm.com",
        "time": "Mon Sep 18 12:48:01 2017 +0100"
      },
      "message": "bare_trace: Fix get_duration() for window use\n\nThe previous implementation only looked at the maximum timestamp\nof the traces. However, if trace windows are used to analyse a\nsubset of the full trace, get_duration() would return an\nerroneous value:\n\n(times are normalized)\ntrace \u003d \u003ctrace built with window\u003d[5, 10]\u003e\nprint trace.get_duration()\n\u003e 10.0\n\nThis commit adds a lower-bound lookup to fix this issue.\n\ntests/test_baretrace.py has also been updated to account\nfor this change.\n"
    },
    {
      "commit": "957826a0f5991de2c9b31b32274361837aa4406e",
      "tree": "05c6543b8e6f8462f579edd059edd164475a45a0",
      "parents": [
        "8a253f227ad6b1c8a2076913d30f5ed01ac92abd"
      ],
      "author": {
        "name": "Brendan Jackman",
        "email": "brendan.jackman@arm.com",
        "time": "Thu Aug 17 10:24:13 2017 +0100"
      },
      "committer": {
        "name": "Brendan Jackman",
        "email": "bjackman@users.noreply.github.com",
        "time": "Mon Sep 11 13:38:11 2017 +0100"
      },
      "message": "ftrace: Disable caching by default\n\nThere are some issues with caching at the moment which I haven\u0027t been\nable to debug but that are confirmed as affecting multiple\npeople. Until we can find the time to fix the issue, let\u0027s disable\ncaching by default.\n"
    },
    {
      "commit": "8a253f227ad6b1c8a2076913d30f5ed01ac92abd",
      "tree": "430b1cba572272ed711e8e8c4f1c76659332a562",
      "parents": [
        "e8632f13fa589b95e6c7bd0999fda99efc3f1b73"
      ],
      "author": {
        "name": "Michele Di Giorgio",
        "email": "michele.digiorgio@arm.com",
        "time": "Mon Aug 07 11:48:35 2017 +0100"
      },
      "committer": {
        "name": "Brendan Jackman",
        "email": "bjackman@users.noreply.github.com",
        "time": "Thu Aug 17 10:20:18 2017 +0100"
      },
      "message": "bare_trace: fix signature of generate_data_dict\n\nClasses that implement the generate_data_dict method have an additional argument\nto the signature. This leads to errors in case the base class method is called\nwith the additional argument.\n\nThis patch also adds two tests for FTrace and SysTrace parsing.\n"
    },
    {
      "commit": "8d1e23f73185cd25a3a42af679a01145ce5fce62",
      "tree": "21e89121a728fe2f3ef61bd5202fcfe62b1c1d3d",
      "parents": [
        "6d69188540ca7d2963dad44e49577075a3d2c8e4",
        "09d7b9aa2cd1bbc237d15648eb72a8ee93e06d93"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Wed Aug 09 23:35:07 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 09 23:35:07 2017 +0000"
      },
      "message": "Merge \"trappy/utils: Replace deprecated DataFrame.sort with DataFrame.sort_values\""
    },
    {
      "commit": "a1c892a53503128e8a0da4befeead5217dbdd8d3",
      "tree": "21e89121a728fe2f3ef61bd5202fcfe62b1c1d3d",
      "parents": [
        "effd7b5ba93f752abe87c0def558d64e9b88b2ef",
        "6d69188540ca7d2963dad44e49577075a3d2c8e4"
      ],
      "author": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Sun Aug 06 08:15:13 2017 +0000"
      },
      "committer": {
        "name": "android-build-team Robot",
        "email": "android-build-team-robot@google.com",
        "time": "Sun Aug 06 08:15:13 2017 +0000"
      },
      "message": "release-request-64fc473b-7e45-48f5-b2f7-3c916e338608-for-git_pi-release-4249735 snap-temp-L34700000089732387\n\nChange-Id: I96f31a8c587279bce54e64de7233620458fe0645\n"
    },
    {
      "commit": "6d69188540ca7d2963dad44e49577075a3d2c8e4",
      "tree": "21e89121a728fe2f3ef61bd5202fcfe62b1c1d3d",
      "parents": [
        "effd7b5ba93f752abe87c0def558d64e9b88b2ef"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sat Jul 15 00:59:27 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Aug 04 10:11:53 2017 -0700"
      },
      "message": "trappy/utils: use sort_values for merge_dfs\n\nTo prevent annoying warning.\n\nChange-Id: I60f006a3c806864939019a90d12b236487fb51aa\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "09d7b9aa2cd1bbc237d15648eb72a8ee93e06d93",
      "tree": "21e89121a728fe2f3ef61bd5202fcfe62b1c1d3d",
      "parents": [
        "effd7b5ba93f752abe87c0def558d64e9b88b2ef"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Tue Jul 25 14:34:43 2017 -0700"
      },
      "committer": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Tue Jul 25 14:34:43 2017 -0700"
      },
      "message": "trappy/utils: Replace deprecated DataFrame.sort with DataFrame.sort_values\n\nChange-Id: I583e7c899074be772394a977e9e6526277dd7647\nSigned-off-by: Suren Baghdasaryan \u003csurenb@google.com\u003e\n"
    },
    {
      "commit": "e8632f13fa589b95e6c7bd0999fda99efc3f1b73",
      "tree": "75b65904ba32eb654aeb2f221eaf249d7d0d187c",
      "parents": [
        "46660d432e6ecb68dec8ff38180d93ba4e6ec7f0",
        "96f1148d408ef63a47db70eb97739189dce27f9f"
      ],
      "author": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Fri Jul 14 11:26:51 2017 +0200"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Fri Jul 14 11:26:51 2017 +0200"
      },
      "message": "Merge branch \u0027joelagnel-cache-corrupt-fix\u0027\n"
    },
    {
      "commit": "96f1148d408ef63a47db70eb97739189dce27f9f",
      "tree": "75b65904ba32eb654aeb2f221eaf249d7d0d187c",
      "parents": [
        "46660d432e6ecb68dec8ff38180d93ba4e6ec7f0"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sat Jul 08 19:22:22 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Fri Jul 14 11:26:18 2017 +0200"
      },
      "message": "cache: Fix issue where single missing CSV deletes all\n\nThere\u0027s a bug in trappy caching where corruption or removal of single CSVs\ncauses all CSVs to get removed. Fix this and add a test-case to cover it.\nAlso test that only missing items are regenerated.\n\nChange-Id: Iea41c8e0a005515790b580e7f78f06bdd60141a3\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "effd7b5ba93f752abe87c0def558d64e9b88b2ef",
      "tree": "fcae6b21749329c8b2881e187bbd8df7f3eecf83",
      "parents": [
        "49f4c42b6750e96c668840a7d54e2cc2f322ab09"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jul 13 21:48:09 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jul 13 21:48:39 2017 -0700"
      },
      "message": "trappy: optimize merge_df by removing try/except\n\nChange-Id: I238bb50ed1907def19b23b0610eec87234ef4d51\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "49f4c42b6750e96c668840a7d54e2cc2f322ab09",
      "tree": "750a28c37e75e786a302872d0f4bfff2bbf7cfd7",
      "parents": [
        "89ce9a07de9a9a7720b72a8204fdfc0b331ef5e8"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Mon Jul 10 19:33:09 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Mon Jul 10 19:33:09 2017 -0700"
      },
      "message": "trappy/utils: Make apply_callbacks more generic for single DF use\n\nChange-Id: I3e8ff4d9d11220cddeac955e9a949fc3464ecc36\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "89ce9a07de9a9a7720b72a8204fdfc0b331ef5e8",
      "tree": "d2f4556523a6b9805b30ed0c2d51d22498b924b2",
      "parents": [
        "ff807880438eb0c480bda11c961764e155b49eb2"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sat Jul 08 13:38:55 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sat Jul 08 19:41:00 2017 -0700"
      },
      "message": "trappy/ftrace: merge primary and secondary DFs based on pivot\n\nForward propogate secondary DF into primary DF and return the merged DF.\n\nImplements: https://github.com/ARM-software/trappy/issues/250\n\nChange-Id: I312d77302bbca8bb13bfa598785ebc0cc879fe34\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "ff807880438eb0c480bda11c961764e155b49eb2",
      "tree": "48cb638415c527dcb5cf173492fd42dbba886aef",
      "parents": [
        "a951463b87e0a17229d5fcd426b0b05a4ffb0764"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sat Jul 08 19:22:22 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sat Jul 08 19:26:02 2017 -0700"
      },
      "message": "cache: Fix issue where single missing CSV deletes all\n\nThere\u0027s a bug in trappy caching where corruption or removal of single CSVs\ncauses all CSVs to get removed. Fix this and add a test-case to cover it.\nAlso test that only missing items are regenerated.\n\nChange-Id: Iea41c8e0a005515790b580e7f78f06bdd60141a3\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "46660d432e6ecb68dec8ff38180d93ba4e6ec7f0",
      "tree": "3469bbd029f3333540ab8837fa958d3dbe904bb7",
      "parents": [
        "180ba383f2ab4e544273a1e75e8bee61df654ceb",
        "cd7f2e045fa07bb14433a6506ab8756e94cd0f19"
      ],
      "author": {
        "name": "Kapileshwar Singh",
        "email": "kapileshwarsingh@gmail.com",
        "time": "Fri Jun 30 11:59:25 2017 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 30 11:59:25 2017 +0200"
      },
      "message": "Merge pull request #259 from joelagnel/trappy-cache-fixes\n\nTrappy cache fixes"
    },
    {
      "commit": "a951463b87e0a17229d5fcd426b0b05a4ffb0764",
      "tree": "fe30c6c94affc5620f752b3cf12c766484a8c5b2",
      "parents": [
        "7f0b67931d5035205915a27cf6808707cf5b2030"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 15:16:40 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 15:57:55 2017 -0700"
      },
      "message": "trappy/caching: Couple of fixes\n\n- json params loading represents keys as unicode, use dumps to fix it\n- finalize_objects need to be run always for cases where some events not\n  cached, fix it by moving it up and also handle bjackman\u0027s concern that we run\n  it twice by skipping finalize for cached events.\n- fix time normalization breakage as a result of the above changes\n\nChange-Id: I2011de0ae8112e937ee61baee8d53a63d0bbe85a\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "cd7f2e045fa07bb14433a6506ab8756e94cd0f19",
      "tree": "3469bbd029f3333540ab8837fa958d3dbe904bb7",
      "parents": [
        "180ba383f2ab4e544273a1e75e8bee61df654ceb"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 15:16:40 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 15:55:07 2017 -0700"
      },
      "message": "trappy/caching: Couple of fixes\n\n- json params loading represents keys as unicode, use dumps to fix it\n- finalize_objects need to be run always for cases where some events not\n  cached, fix it by moving it up and also handle bjackman\u0027s concern that we run\n  it twice by skipping finalize for cached events.\n- fix time normalization breakage as a result of the above changes\n\nChange-Id: I2011de0ae8112e937ee61baee8d53a63d0bbe85a\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "7f0b67931d5035205915a27cf6808707cf5b2030",
      "tree": "de1aca603470b13e715bb8e8531ab0bdb366b1f1",
      "parents": [
        "f0c228a018cd332d28451f3e851b5e0640d917a6"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Wed Jun 28 13:41:03 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 14:33:13 2017 -0700"
      },
      "message": "trappy: add support to parse TGID in systrace\n\nChange-Id: Ie79698d90e0406cc11c52d364144ec08c33dfac4\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "f0c228a018cd332d28451f3e851b5e0640d917a6",
      "tree": "7c624b5404d1c61ae93dfa71ff4499ad6e97ca0e",
      "parents": [
        "b0e013c24a4d59d21e8d078298f2d0f266bda611",
        "180ba383f2ab4e544273a1e75e8bee61df654ceb"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 14:28:20 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 14:28:20 2017 -0700"
      },
      "message": "Merge remote-tracking branch \u0027origin/master\u0027 into HEAD\n"
    },
    {
      "commit": "b0e013c24a4d59d21e8d078298f2d0f266bda611",
      "tree": "9e19949585eda295f17d9b2a9f25d6b10213c7e3",
      "parents": [
        "b5d85cef9db8fcb72fe152d37ad098363141b008"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 14:28:13 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 14:28:13 2017 -0700"
      },
      "message": "Revert \"trappy: Remove double check for unique word\"\n\nThis reverts commit 9493bfaba69108b16db1ee21c53c7f0f95eec5ba.\n"
    },
    {
      "commit": "b5d85cef9db8fcb72fe152d37ad098363141b008",
      "tree": "3bbc773b10a08b413c6866c998afa53c077db112",
      "parents": [
        "fd162b6790ae666d00624faa339e402a11e16e1d"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 14:28:07 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 14:28:07 2017 -0700"
      },
      "message": "Revert \"trappy: Speed up trappy parsing by 20% by skipping regex sub\"\n\nThis reverts commit c9243e261fb37be1b1149ae6d111e18745b75959.\n"
    },
    {
      "commit": "fd162b6790ae666d00624faa339e402a11e16e1d",
      "tree": "63190954ffc31c9be6117afd219b077d43949ead",
      "parents": [
        "c81a3b1eb6a8b4fe9a2b137d838f68872548e306"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 14:28:01 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 14:28:01 2017 -0700"
      },
      "message": "Revert \"trappy: Optimize integer conversion in generate_data_dict\"\n\nThis reverts commit c0a49a16d85ef5b732fafe02faad73c67df7b665.\n"
    },
    {
      "commit": "c81a3b1eb6a8b4fe9a2b137d838f68872548e306",
      "tree": "77b5e7d8fe41549ea4692b67f3893cfe2268f457",
      "parents": [
        "e46e4a3dab9629ae5632c977a7c304be3ea209e8"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 14:27:05 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Thu Jun 29 14:27:05 2017 -0700"
      },
      "message": "Revert \"Add support for trace event processing using callacks\"\n\nThis reverts commit 2b9b25c74416328a0f68af5b60b73534e4ccbd02.\n"
    },
    {
      "commit": "180ba383f2ab4e544273a1e75e8bee61df654ceb",
      "tree": "7c624b5404d1c61ae93dfa71ff4499ad6e97ca0e",
      "parents": [
        "634bcd3bc8fff3803b8c62d03bde63bbdac1c034",
        "2a58727813c91d5497ce5452b5bff1bc1a467dc7"
      ],
      "author": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 23:12:02 2017 +0200"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 23:12:02 2017 +0200"
      },
      "message": "Merge branch \u0027joelagnel-for-unique-word-speedup\u0027\n"
    },
    {
      "commit": "2a58727813c91d5497ce5452b5bff1bc1a467dc7",
      "tree": "7c624b5404d1c61ae93dfa71ff4499ad6e97ca0e",
      "parents": [
        "1e326a177d920d27a4a5f0368095d875c6895c91"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Mon Jun 26 17:38:53 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 23:11:27 2017 +0200"
      },
      "message": "trappy/ftrace: refactor getting class for unique word\n\nLets move this out of the main parsing loop so that the code is easier to read.\n\nSuggested-by: Patrick Bellasi \u003cpatrick.bellasi@arm.com\u003e\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "1e326a177d920d27a4a5f0368095d875c6895c91",
      "tree": "e5be639c4ed469164f617781a56d5c962488920c",
      "parents": [
        "9bb52fae4f0bb3f81da19cc2f0387260d7e21c0d"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sun Jun 25 13:40:26 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 23:11:15 2017 +0200"
      },
      "message": "trappy: optimize integer conversion in generate_data_dict\n\ngenerate_data_dict uses try/except for integer conversion. This is expensive\nconsider the frequency of the calls. Optimize it by using a slightly more\nuglier but much fast version of the same. With this I get a speed of ~8.5% in\nparsing.\n\nChange-Id: I909ad170756fd284c7d924950945e755880ceb5f\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "9bb52fae4f0bb3f81da19cc2f0387260d7e21c0d",
      "tree": "e17f04ea79a74768e75144ef3361e9064a12b6e6",
      "parents": [
        "677e6e5471b4d20270b8a7a839b6c0a961f7fc3e"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sun Jun 25 13:07:00 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 23:11:05 2017 +0200"
      },
      "message": "trappy: skip empty array regex sub for common case\n\nI found that trappy spends a lot of time looking for the array pattern \"{}\".\nVast majority of trace lines don\u0027t have them. Instead of running the regex\nevery time, check for the \u003d{} pattern using the \u0027in\u0027 operator which is much\nfaster than the regex for the common case, and then do the regex sub if needed.\n\nThe speed up is huge and in my test run, I saw parsing stage on a 100MB trace\nspeed up from 13s -\u003e 10.5s !!\n\nChange-Id: I7ae68efc99eaf8844624871be2a4d66a7820a9b0\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "677e6e5471b4d20270b8a7a839b6c0a961f7fc3e",
      "tree": "0c0ef346b28c237c61f495d42e3522c6a5a642fc",
      "parents": [
        "634bcd3bc8fff3803b8c62d03bde63bbdac1c034"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sun Jun 25 12:45:24 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 23:10:41 2017 +0200"
      },
      "message": "trappy: remove double check for unique word\n\nIts not necessary to check for unique word twice. Reusing the \u0027class detection\u0027\npath for this purpose is sufficient. This improve performance by 3-6% of the\nparsing stage.\n\nChange-Id: Iff8ebd0086d2ccc10bec14e3d40a63f3c04aaf1a\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "634bcd3bc8fff3803b8c62d03bde63bbdac1c034",
      "tree": "2b7d0dc70b3e87712f25762c97e32cd220adf0e2",
      "parents": [
        "d84e541b1badf77e639022a5608852c14889f2d3",
        "c291667cc5ec1a71aee51a197f0cd0b45b9b20c6"
      ],
      "author": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 23:07:49 2017 +0200"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 23:07:49 2017 +0200"
      },
      "message": "Merge branch \u0027cobrien7-event-callbacks\u0027\n"
    },
    {
      "commit": "c291667cc5ec1a71aee51a197f0cd0b45b9b20c6",
      "tree": "2b7d0dc70b3e87712f25762c97e32cd220adf0e2",
      "parents": [
        "d84e541b1badf77e639022a5608852c14889f2d3"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Mon Jun 19 13:58:17 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 23:07:19 2017 +0200"
      },
      "message": "Add support for trace event processing using callbacks\n\nSome trace analysis tasks are most easily expressed by iterating over\nevents in chronological order. Add an apply_callbacks() method to the\nGenericFtrace class that will run user-defined functions on trace\nevents in the order they occurred.\n\nSigned-off-by: Connor O\u0027Brien \u003cconnoro@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "d84e541b1badf77e639022a5608852c14889f2d3",
      "tree": "29ec7dd48d9be7f17a96ecf3e87dcc7b423ce347",
      "parents": [
        "50610cbe8742f4a1e3da60b406cb36b4c962bd72",
        "878b9acd722329594362d333a6d7a1ee291746a8"
      ],
      "author": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 22:53:34 2017 +0200"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 22:53:34 2017 +0200"
      },
      "message": "Merge branch \u0027joelagnel-for-trappy-cache\u0027\n"
    },
    {
      "commit": "878b9acd722329594362d333a6d7a1ee291746a8",
      "tree": "29ec7dd48d9be7f17a96ecf3e87dcc7b423ce347",
      "parents": [
        "3fdf6872b0d59743ff05ca4f7ec7f429a3cc81be"
      ],
      "author": {
        "name": "Brendan Jackman",
        "email": "brendan.jackman@arm.com",
        "time": "Fri Jun 02 14:05:04 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 22:52:52 2017 +0200"
      },
      "message": "tests: Caching tests\n\nAdd test for invalid cache\nAdd test for caching with extra events\nAdd test for normalize_time and window parameters\n\nSigned-off-by: Brendan Jackman \u003cbrendan.jackman@arm.com\u003e\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "3fdf6872b0d59743ff05ca4f7ec7f429a3cc81be",
      "tree": "f1c10a5446805fcff2f1f59f20624d00f68da785",
      "parents": [
        "a19ff2508e37fce5e4909e0b717c3a4d2f0be679"
      ],
      "author": {
        "name": "Brendan Jackman",
        "email": "brendan.jackman@arm.com",
        "time": "Wed Jun 14 15:03:23 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 22:52:38 2017 +0200"
      },
      "message": "ftrace: Store and retrieve window params in trace cache\n\nStore a JSON file with the parameters used to parse a trace in the cache. If, on\nretrieval, we find a mismatch then simply invalidate the cache.\n\nA richer implementation might detect whether we can still use the cache (e.g. if\nthe requested window is a subset of the cached one), but for now I don\u0027t think\nthat\u0027s worth the effort/complexity.\n\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "a19ff2508e37fce5e4909e0b717c3a4d2f0be679",
      "tree": "19790e61fcd2b070621c4780bf5c8c0b0c44c026",
      "parents": [
        "50610cbe8742f4a1e3da60b406cb36b4c962bd72"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Mon May 15 03:02:31 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 29 22:51:02 2017 +0200"
      },
      "message": "trappy: Speed up trappy by caching trace parsing\n\nPandas is extremely fast at parsing csv to data frames. Astonishingly it takes\n\u003c 1s to serialize/deserialize a 100MB work of traces with 430000 events to/from\ncsv. We leverage this and write out a data frames into a csv file when they are\ncreated for the first time. Next time we read it out if it exists. To make\nsure, the cache isn\u0027t stale, we take the md5sum of the trace file and also\nensure all CSVs exist before reading from the cache. I get a speed up of 16s to\n1s when parsing a 100MB trace.\n\nCo-developed-by: Brendan Jackman \u003cbrendan.jackman@arm.com\u003e\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "e46e4a3dab9629ae5632c977a7c304be3ea209e8",
      "tree": "1113facf712262b19ff0aad57dd318f80459ab21",
      "parents": [
        "c0a49a16d85ef5b732fafe02faad73c67df7b665",
        "50610cbe8742f4a1e3da60b406cb36b4c962bd72"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Tue Jun 27 18:01:13 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Tue Jun 27 18:01:13 2017 -0700"
      },
      "message": "Merge remote-tracking branch \u0027goog/mirror-upstream-master\u0027 into HEAD\n"
    },
    {
      "commit": "50610cbe8742f4a1e3da60b406cb36b4c962bd72",
      "tree": "9e19949585eda295f17d9b2a9f25d6b10213c7e3",
      "parents": [
        "3b9f139fdcdb086e7ac8314a4beb3441a0b1418c",
        "ff851bdbb123bfb40bf0b4657a7409d51d322943"
      ],
      "author": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Tue Jun 27 12:11:54 2017 +0200"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Tue Jun 27 12:11:54 2017 +0200"
      },
      "message": "Merge branch \u0027credp-remove_raw_trace\u0027\n"
    },
    {
      "commit": "ff851bdbb123bfb40bf0b4657a7409d51d322943",
      "tree": "9e19949585eda295f17d9b2a9f25d6b10213c7e3",
      "parents": [
        "ef596e5739b2e0946cbdfea09da09a314879dca8"
      ],
      "author": {
        "name": "Chris Redpath",
        "email": "chris.redpath@arm.com",
        "time": "Tue Jun 20 22:35:41 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Tue Jun 27 12:11:02 2017 +0200"
      },
      "message": "trappy/test: fix tests for removal of raw.txt trace parsing\n\ntests/test_ftrace.py:\nStop creating and checking for existence of \u003ctrace\u003e.raw.txt files.\n\ntests/test_sched.py:\nStop creating raw.txt file.\n\ntests/raw_trace.raw.txt:\nRemove the file as it is no longer needed. The raw-formatted events\nare moved into raw_trace.txt\n\ntests/raw_trace.txt:\nReplace the formatted sched_switch events with raw formatted events,\nlike we get when parsing a trace file.\n\ntests/trace_empty.txt:\nRemove the default sched_ events we would expect to parse in raw\nformat - since we want to have events here which we are not looking\nfor.\n\nSigned-off-by: Chris Redpath \u003cchris.redpath@arm.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "ef596e5739b2e0946cbdfea09da09a314879dca8",
      "tree": "db0c270ffd50dcf3303316453a391fbc3fcbe10e",
      "parents": [
        "12c3570032a60f8b3321026383d80eb318e3120f"
      ],
      "author": {
        "name": "Chris Redpath",
        "email": "chris.redpath@arm.com",
        "time": "Sat Jun 17 17:24:12 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Tue Jun 27 12:10:36 2017 +0200"
      },
      "message": "trappy/parsing: remove unnecessary raw flags from API and fix comments\n\nSigned-off-by: Chris Redpath \u003cchris.redpath@arm.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "12c3570032a60f8b3321026383d80eb318e3120f",
      "tree": "23e8dc6e0bab16beaef86fef3dbfab9f8223ded9",
      "parents": [
        "c10c721b4821a050afaad471d19f5f9f66a93c78"
      ],
      "author": {
        "name": "Chris Redpath",
        "email": "chris.redpath@arm.com",
        "time": "Wed Jun 21 23:00:22 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Tue Jun 27 12:10:29 2017 +0200"
      },
      "message": "trappy/ftrace: Raise an exception if attempting to parse .raw.txt files\n\nSince we no longer generate these, we should let the user either remove\ntheir text files manually or merge the files if they no longer have the\n.dat file. The exception describes how to deal with this format change\nand which events should be moved from the raw to the formatted text file\nif the user no longer has the .dat file.\n\nSigned-off-by: Chris Redpath \u003cchris.redpath@arm.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "c10c721b4821a050afaad471d19f5f9f66a93c78",
      "tree": "1395dee6174586f7957d390d07b0fc1e046128df",
      "parents": [
        "b01c848f3928dfcdf2f3d7dae1343bbe677847ef"
      ],
      "author": {
        "name": "Chris Redpath",
        "email": "chris.redpath@arm.com",
        "time": "Sat Jun 17 17:23:05 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Tue Jun 27 12:10:00 2017 +0200"
      },
      "message": "trappy/ftrace: Stop generating trace.raw.txt\n\nNow that we have events constructed before generating trace files, we can\nscan them and determine which events need to be formatted and which should\nbe unformatted (raw). trace-cmd report lets us specify events we want to\nprint raw. Use this to produce a single trace.txt which has all the\nnecessary formatted \u0026 raw events instead of calling trace-cmd report\ntwice.\n\nSigned-off-by: Chris Redpath \u003cchris.redpath@arm.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "b01c848f3928dfcdf2f3d7dae1343bbe677847ef",
      "tree": "7a8c70dc08c9f1bea3f7c47ee6db67c91e197429",
      "parents": [
        "55c392261a854cd219ec985cbd042e75ec0e922f"
      ],
      "author": {
        "name": "Chris Redpath",
        "email": "chris.redpath@arm.com",
        "time": "Sat Jun 17 17:19:55 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Tue Jun 27 12:08:09 2017 +0200"
      },
      "message": "trappy/Parsing: Split trace class init into two phases\n\nThis patch set is to modify the parsing step so that we don\u0027t need to\nbuild a raw and a formatted trace file. To do that, we need to know\nwhich events should have raw output and which should use their default\nformatting. The events indicate which are which, but currently we\ngenerate the trace files before we populate the events.\n\nSplitting the initialisation into two parts means that we can populate\nthe events so that a later patch can create the text trace with each\nevent either formatted or raw as required.\n\nSigned-off-by: Chris Redpath \u003cchris.redpath@arm.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "55c392261a854cd219ec985cbd042e75ec0e922f",
      "tree": "42163cf5a03c095f0658cf92cd68defee3dbf69f",
      "parents": [
        "3b9f139fdcdb086e7ac8314a4beb3441a0b1418c"
      ],
      "author": {
        "name": "Chris Redpath",
        "email": "chris.redpath@arm.com",
        "time": "Sat Jun 17 16:25:49 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Tue Jun 27 12:06:44 2017 +0200"
      },
      "message": "trappy/parsing: Ensure parse_raw is set for sched_switch events\n\nWhen the sched_switch event is added to the parser the constructor is\nnot called so we never set the parse_raw flag. Ensure there is a class\nvariable to hold the correct value and use it in the constructor.\n\nWe use the raw file to extract the events since we actually do construct\none of these objects during parsing.\n\nSigned-off-by: Chris Redpath \u003cchris.redpath@arm.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "c0a49a16d85ef5b732fafe02faad73c67df7b665",
      "tree": "dc35db4d0b67abdffed2b89511b6af1667959176",
      "parents": [
        "c9243e261fb37be1b1149ae6d111e18745b75959"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sun Jun 25 13:40:26 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sun Jun 25 13:40:26 2017 -0700"
      },
      "message": "trappy: Optimize integer conversion in generate_data_dict\n\ngenerate_data_dict uses try/except for integer conversion. This is expensive\nconsider the frequency of the calls. Optimize it by using a slightly more\nuglier but much fast version of the same. With this I get a speed of ~8.5% in\nparsing.\n\nChange-Id: I909ad170756fd284c7d924950945e755880ceb5f\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "c9243e261fb37be1b1149ae6d111e18745b75959",
      "tree": "ba24bf0cd82b1b5272e41475b2b37a4bb21fcfdd",
      "parents": [
        "9493bfaba69108b16db1ee21c53c7f0f95eec5ba"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sun Jun 25 13:07:00 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sun Jun 25 13:08:46 2017 -0700"
      },
      "message": "trappy: Speed up trappy parsing by 20% by skipping regex sub\n\nI found that trappy spends a lot of time looking for the array pattern \"{}\".\nVast majority of trace lines don\u0027t have them. Instead of running the regex\nevery time, check for the \u003d{} pattern using the \u0027in\u0027 operator which is much\nfaster than the regex for the common case.\n\nThe speed up is huge and in my test run, I saw parsing stage on a 100MB trace\nspeed up from 13s -\u003e 10.5s !!\n\nChange-Id: I7ae68efc99eaf8844624871be2a4d66a7820a9b0\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "9493bfaba69108b16db1ee21c53c7f0f95eec5ba",
      "tree": "8987d55402c3282f282e23c4b0b718178e89c719",
      "parents": [
        "0681f9403826ae685aec5ed6d16926146aea7049"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sun Jun 25 12:45:24 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sun Jun 25 12:47:57 2017 -0700"
      },
      "message": "trappy: Remove double check for unique word\n\nIts not necessary to check for unique word twice. Reusing the \u0027class detection\u0027\npath for this purpose is sufficient. This improve performance by 3-6% of the\nparsing stage.\n\nChange-Id: Iff8ebd0086d2ccc10bec14e3d40a63f3c04aaf1a\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "0681f9403826ae685aec5ed6d16926146aea7049",
      "tree": "9bd3033fa628e15bfb8c3d99575f2bccfcedc2ce",
      "parents": [
        "2b9b25c74416328a0f68af5b60b73534e4ccbd02",
        "3b9f139fdcdb086e7ac8314a4beb3441a0b1418c"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Jun 23 18:35:15 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Jun 23 18:35:15 2017 -0700"
      },
      "message": "Merge remote-tracking branch \u0027origin/master\u0027 into HEAD\n"
    },
    {
      "commit": "2b9b25c74416328a0f68af5b60b73534e4ccbd02",
      "tree": "c80628f62b2a15a70b2d9954a8b2c7dbe8bb34eb",
      "parents": [
        "3b53c5c5a4352d7e348e33bb08aaea828301e343"
      ],
      "author": {
        "name": "Connor O\u0027Brien",
        "email": "connoro@google.com",
        "time": "Mon Jun 19 13:58:17 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Wed Jun 21 16:53:11 2017 -0700"
      },
      "message": "Add support for trace event processing using callacks\n\nSome trace analysis tasks are most easily expressed by iterating over\nevents in chronological order. Add a run_event_callbacks() method to\nthe GenericFTrace class that will run user-defined functions on trace\nevents in the order they occurred.\n\nSigned-off-by: Connor O\u0027Brien \u003cconnoro@google.com\u003e\n"
    },
    {
      "commit": "3b9f139fdcdb086e7ac8314a4beb3441a0b1418c",
      "tree": "98550b0059ea3f694ded757f23fd8c18b4071465",
      "parents": [
        "16ad8df451f9280ba91f3bc03f91c781b4f4596a",
        "609a57afbb408c756357aa95f36713fa77be1865"
      ],
      "author": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 21 22:10:14 2017 +0200"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 21 22:10:14 2017 +0200"
      },
      "message": "Merge branch \u0027joelagnel-systrace-line-test\u0027\n"
    },
    {
      "commit": "609a57afbb408c756357aa95f36713fa77be1865",
      "tree": "98550b0059ea3f694ded757f23fd8c18b4071465",
      "parents": [
        "a740212342ab0a3e073078cfe711aa391fbdbbee"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Jun 16 21:11:41 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 21 22:07:56 2017 +0200"
      },
      "message": "systrace: Store pid as int type\n\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "a740212342ab0a3e073078cfe711aa391fbdbbee",
      "tree": "3ecc76bd1a0db36d4a99ce1a8b7ad4e11ff12f44",
      "parents": [
        "a38f1d59a8927bf305a106478c2cf1cadbd564be"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Jun 16 21:04:12 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 21 22:06:53 2017 +0200"
      },
      "message": "trappy: Fix systrace userspace parsing tests\n\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "a38f1d59a8927bf305a106478c2cf1cadbd564be",
      "tree": "039526cfabc7d3683c4fccaf7b6cc5f424308530",
      "parents": [
        "c32717c10198902f40bbdc4e34b252e28c0c4b4d"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Jun 16 09:56:32 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 21 22:06:27 2017 +0200"
      },
      "message": "systrace: Fix broken regex\n\nThe regex is broken for strings like this:\nC|594|HW_VSYNC_ON_0|1\n\nThis is because the \"1\" (data) is optional and so the greedy operator globs everything causing\nfunc \u003d \"HW_VSYNC_ON_0|1\" and data \u003d NaN\n\nChange the data to be greedy until \u0027|\u0027 is encountered so with that:\nfunc \u003d \"HW_VSYNC_ON_0\" and data \u003d \"1\".\n\nChange-Id: I3695a8da8ad10598192cea08ca92e27271565ccf\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "c32717c10198902f40bbdc4e34b252e28c0c4b4d",
      "tree": "e51e139686fae8f4f8586aaf9be9922376498303",
      "parents": [
        "16ad8df451f9280ba91f3bc03f91c781b4f4596a"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Wed Jun 14 17:06:23 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 21 22:04:46 2017 +0200"
      },
      "message": "tests: Add a test for line numbers in systrace\n\nI promised @derkling I would write this so here you go.\n\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "16ad8df451f9280ba91f3bc03f91c781b4f4596a",
      "tree": "af60f4d81e200e44aa28d357087f771d78107a19",
      "parents": [
        "5a8aec8eb8f5b6c950587dc1c4c0eddb85cdd7cb",
        "8dcd96197ec48f37615d3ae7c6465e41f4ca6e3f"
      ],
      "author": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 21 21:11:13 2017 +0200"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 21 21:11:13 2017 +0200"
      },
      "message": "Merge branch \u0027derkling-add-ns-clock-support\u0027\n"
    },
    {
      "commit": "8dcd96197ec48f37615d3ae7c6465e41f4ca6e3f",
      "tree": "af60f4d81e200e44aa28d357087f771d78107a19",
      "parents": [
        "5a8aec8eb8f5b6c950587dc1c4c0eddb85cdd7cb"
      ],
      "author": {
        "name": "Patrick Bellasi",
        "email": "patrick.bellasi@arm.com",
        "time": "Tue Jun 20 10:29:33 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 21 21:10:54 2017 +0200"
      },
      "message": "trappy/ftrace: add support for boot clock timestamp\n\nFTrace can be configured to report events timestamp using different\nclock sources which can be selected via the trace_clock sysfs attribute\nas described in:\n  https://www.kernel.org/doc/Documentation/trace/ftrace.txt\n\nThe global clock source reports time in [s] with a [us] resolution.\nOther sources instead, like for example the boot clock, uses [ns].\nThus, in these last cases we do not have decimals in the timestamp.\n\nLet\u0027s update the special fields regexp to match both [s] and [ns]\nformatted times and do the required pre-processing to ensure that\nDataFrames are alwasy expressed using a [s].[decimals] format.\nThis also update the base test to add a set of trace events which are\nexpressed in [ns] resolution.\n\nSigned-off-by: Patrick Bellasi \u003cpatrick.bellasi@arm.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "3b53c5c5a4352d7e348e33bb08aaea828301e343",
      "tree": "e6a2cb610519e83a36db67a7e66eb881b132b805",
      "parents": [
        "1d7dfb16bcb144abdf11bde64edbe2929506bd95",
        "5a8aec8eb8f5b6c950587dc1c4c0eddb85cdd7cb"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Wed Jun 14 16:45:08 2017 -0700"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Wed Jun 14 16:45:08 2017 -0700"
      },
      "message": "Merge remote-tracking branch \u0027origin/master\u0027 into HEAD\n"
    },
    {
      "commit": "5a8aec8eb8f5b6c950587dc1c4c0eddb85cdd7cb",
      "tree": "e6a2cb610519e83a36db67a7e66eb881b132b805",
      "parents": [
        "a84dd233e0bda183019464f69df9c0a5defc25ae",
        "6953b16af678e1a2d36165c0ac8f97f43eefa12d"
      ],
      "author": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 15 00:19:38 2017 +0200"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 15 00:19:38 2017 +0200"
      },
      "message": "Merge branch \u0027joelagnel-for-line\u0027\n"
    },
    {
      "commit": "6953b16af678e1a2d36165c0ac8f97f43eefa12d",
      "tree": "e6a2cb610519e83a36db67a7e66eb881b132b805",
      "parents": [
        "ee6fb473add14fb3e2947bb57c7e1fc86c172a46"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Wed Jun 14 13:05:53 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 15 00:19:20 2017 +0200"
      },
      "message": "trappy/tests: Fix test for checking invalid line\n\nDue to the recent patches to skip invalid lines using a regex, this test case\nfails. Fix it by appending the invalid line to the end of the test trace.\n\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "ee6fb473add14fb3e2947bb57c7e1fc86c172a46",
      "tree": "c066a6a34a0aba85280fda46c6409facf106e10e",
      "parents": [
        "1954b37df094fce96ed345344da920dd248597d9"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Wed Jun 14 12:28:42 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 15 00:19:08 2017 +0200"
      },
      "message": "systrace: Make systrace reuse hasnt_started from base class\n\nSince Patrick changed hasnt_started to use the regex for checking if a line is\nvalid, its better if we don\u0027t use the hardcoded logic we have now that checks\nif the trace line begins with \u0027#\u0027. Instead lets piggy back onto the base class\nif systrace thinks the line shouldn\u0027t be skipped. This makes it a more\nconsistent design.\n\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "1954b37df094fce96ed345344da920dd248597d9",
      "tree": "aca852a9607dc24f7f6f5688cd185598c9eb898f",
      "parents": [
        "658d4cc50a81cc0234bd4cdb3fa87f38782223b1"
      ],
      "author": {
        "name": "Patrick Bellasi",
        "email": "patrick.bellasi@arm.com",
        "time": "Wed Jun 14 12:31:28 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 15 00:19:00 2017 +0200"
      },
      "message": "trappy/tests: add a new test for new line number parsing\n\nLet\u0027s test that the parsed events have the proper line number reported\nin their DF.\n\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nSigned-off-by: Patrick Bellasi \u003cpatrick.bellasi@arm.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "658d4cc50a81cc0234bd4cdb3fa87f38782223b1",
      "tree": "c91bac6521ae1f3358d40ca0fa51d1f561f11c21",
      "parents": [
        "750f7187a8d0ad2d72a0261261bc9a7d81fbae93"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Wed Jun 14 12:30:31 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 15 00:18:51 2017 +0200"
      },
      "message": "trappy/ftrace: add a line number column\n\nUseful for joining DataFrames that have timestamp collisions or for\niterating through a group of DataFrames in line order.\n\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "750f7187a8d0ad2d72a0261261bc9a7d81fbae93",
      "tree": "01445ba3be61ef6616d2bad14c37c57e61ef418f",
      "parents": [
        "663f1042f35a3dad09f8610bf60d4ecb30efec24"
      ],
      "author": {
        "name": "Patrick Bellasi",
        "email": "patrick.bellasi@arm.com",
        "time": "Wed Jun 14 11:41:33 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 15 00:18:40 2017 +0200"
      },
      "message": "trappy/ftrace: add support to account line numbers\n\nKnowing the line number of a trace event into the original trace file can\nbe super useful for two main reasons:\n1. it can be used as a truly unique ID of each DF entry, since it is not\n   subject to the possible index collisions due to the timestamp resoluton\n2. it can be super-useful to correlate DF entries with the original trace\n\nIf this ID is also tracked the same way tools like kernelshark does, than\nwe have a definitive and easy tool to match DF records with kernelshark.\n\nSince kernelshark uses a 0-based indexing for trace events, let\u0027s account\nfor proper trace events line numbers starting from 0. This number is available\nas a class property, in case we are interested to know to real total number\nof events which are available in the original trace. Moreover, it will be\nused by a following patch to add a unique ID to each DF entry.\n\nSigned-off-by: Patrick Bellasi \u003cpatrick.bellasi@arm.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "663f1042f35a3dad09f8610bf60d4ecb30efec24",
      "tree": "08c8fdfc877fffb87c280fa45334f7007796b748",
      "parents": [
        "a84dd233e0bda183019464f69df9c0a5defc25ae"
      ],
      "author": {
        "name": "Patrick Bellasi",
        "email": "patrick.bellasi@arm.com",
        "time": "Wed Jun 14 11:34:51 2017 +0100"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Thu Jun 15 00:18:22 2017 +0200"
      },
      "message": "trappy/ftrace: use special fileds RE to drive trace_hasnt_started\n\nCurrently we open an FTrace two times: one to parse metadata and another\nto actually parse trace events. The second time we open the trace we don\u0027t\nskip the metadata since they are filtered out by the attention words match.\n\nSince trappy is now empowered by the trace_hasnt_started() iterator filter,\nlet\u0027s use this to skip the metadata before entering the parsing loop.\nThis change is preparatory for a proper accounting of trace events from\nthe parsing loop.\n\nWhile we are at that, let\u0027s be eco-friendly and recycle the special field\nregexp also for the exit condition of __populate_metadata().\n\nSigned-off-by: Patrick Bellasi \u003cpatrick.bellasi@arm.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "a84dd233e0bda183019464f69df9c0a5defc25ae",
      "tree": "fd6224641831c7861bf475d9c7f811752f2754e1",
      "parents": [
        "e565c7adcddde8d11cb7c27b7d22310d4acafde2",
        "ddc4d4fbc5895b8505592a61b9384fb06c9e326a"
      ],
      "author": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 14 23:41:04 2017 +0200"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 14 23:41:04 2017 +0200"
      },
      "message": "Merge branch \u0027joelagnel-for-systrace-parsing\u0027 into fixit2\n"
    },
    {
      "commit": "ddc4d4fbc5895b8505592a61b9384fb06c9e326a",
      "tree": "fd6224641831c7861bf475d9c7f811752f2754e1",
      "parents": [
        "071bbff272362e8f0eeb027ba7b148070b465403"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Tue Jun 13 21:20:04 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 14 23:40:37 2017 +0200"
      },
      "message": "trappy/systrace: Add test for parsing userspace events\n\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "071bbff272362e8f0eeb027ba7b148070b465403",
      "tree": "5b306a3aed4358a2c78c263648b899de22f73736",
      "parents": [
        "2e58198d1ea27e93a0e8c622d1ecc13be06f645f"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Tue Jun 13 20:38:08 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 14 23:40:19 2017 +0200"
      },
      "message": "trappy: Handle the case for special events injected with tracing_mark_write\n\nCertain fake events can be injected using tracing_mark_write and should be\nclassified into their own event classes than tracing_mark_write. One way to\nhandle this is to use tracing_mark_write only as a backup. For this reason lets\nintroduced the concept of backup event classes and classify TracingMarkWrite as\nthat.\n\nThis case normally doesn\u0027t happen because dynamic events are inserted into the\nbeginning of the event list from what I\u0027ve seen. Since tracing_mark_write is a\nbuilt-in event, and not dynamic, its always at after and so is less preferred.\nHowever we should protect for the future case where there might be a built-in\nwhich happens to be after TrackingMarkWrite class in the list, so lets handle\nit now.\n\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    },
    {
      "commit": "2e58198d1ea27e93a0e8c622d1ecc13be06f645f",
      "tree": "88d526039853e552a2b2781d6c8d98d05544fd81",
      "parents": [
        "43bb10340af5eaa41eb70c0fc8e3cb245e3f56bb"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sun Jun 11 22:04:45 2017 -0700"
      },
      "committer": {
        "name": "KP Singh",
        "email": "kpsingh@google.com",
        "time": "Wed Jun 14 23:40:08 2017 +0200"
      },
      "message": "trappy/systrace: Provide custom data string parsing\n\nHere we provide custom data string parsing for Android userspace events.\nBorrowed the regex and parsing logic from Patrick\u0027s patch.\n\nCo-developed-by: Patrick Bellasi \u003cpatrick.bellasi@arm.com\u003e\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\nReviewed-by: KP Singh \u003ckpsingh@google.com\u003e\n"
    }
  ],
  "next": "43bb10340af5eaa41eb70c0fc8e3cb245e3f56bb"
}
