)]}'
{
  "commit": "fbccdeb8d77d6830556bc4079eeed80298cc97dc",
  "tree": "c423e1973a8107db2ee1f6dd8ac70539fdee3fef",
  "parents": [
    "a1cf53ac6d156721afa86453d5e8423461881231"
  ],
  "author": {
    "name": "Joel Fernandes",
    "email": "joelaf@google.com",
    "time": "Thu Oct 20 00:34:05 2016 -0700"
  },
  "committer": {
    "name": "Kees Cook",
    "email": "keescook@chromium.org",
    "time": "Tue Nov 15 16:34:27 2016 -0800"
  },
  "message": "pstore: Add ftrace timestamp counter\n\nIn preparation for merging the per CPU buffers into one buffer when\nwe retrieve the pstore ftrace data, we store the timestamp as a\ncounter in the ftrace pstore record.  We store the CPU number as well\nif !PSTORE_CPU_IN_IP, in this case we shift the counter and may lose\nordering there but we preserve the same record size. The timestamp counter\nis also racy, and not doing any locking or synchronization here results\nin the benefit of lower overhead. Since we don\u0027t care much here for exact\nordering of function traces across CPUs, we don\u0027t synchronize and may lose\nsome counter updates but I\u0027m ok with that.\n\nUsing trace_clock() results in much lower performance so avoid using it\nsince we don\u0027t want accuracy in timestamp and need a rough ordering to\nperform merge.\n\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n[kees: updated commit message, added comments]\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d4887705bb61bb768f9c9a8e3a5fbb3c677b87a9",
      "old_mode": 33188,
      "old_path": "fs/pstore/ftrace.c",
      "new_id": "31548cc09e7b6f8ef60d323a7b62fc99cedeb3e0",
      "new_mode": 33188,
      "new_path": "fs/pstore/ftrace.c"
    },
    {
      "type": "modify",
      "old_id": "1781dc50762e2fe03391e8efa8c0ff5577cd7cf6",
      "old_mode": 33188,
      "old_path": "fs/pstore/inode.c",
      "new_id": "0d6bbcf47d5243ede507f44383565c1f9df4e486",
      "new_mode": 33188,
      "new_path": "fs/pstore/inode.c"
    },
    {
      "type": "modify",
      "old_id": "e38a22b31282e18c4aa24d37a420c8130089dcc6",
      "old_mode": 33188,
      "old_path": "fs/pstore/internal.h",
      "new_id": "da416e6591c9d91cd937b36438e31a51bde6bfa4",
      "new_mode": 33188,
      "new_path": "fs/pstore/internal.h"
    },
    {
      "type": "modify",
      "old_id": "92013cc9cc8cfe3e73be83c0edd4f5e05a192dae",
      "old_mode": 33188,
      "old_path": "include/linux/pstore.h",
      "new_id": "0da29cae009b186a9010736b2c9b84210ff7b3a2",
      "new_mode": 33188,
      "new_path": "include/linux/pstore.h"
    }
  ]
}
