)]}'
{
  "commit": "5b09a094f2fb768c76c8d4a82503df6fc7e1df63",
  "tree": "d38ec50b7fac5b7aebdfff8b9365529006284ddd",
  "parents": [
    "e1d2c88639407ed16d932e56f292267ea3264eea"
  ],
  "author": {
    "name": "Hou Pengyang",
    "email": "houpengyang@huawei.com",
    "time": "Sun May 10 11:07:40 2015 +0000"
  },
  "committer": {
    "name": "Catalin Marinas",
    "email": "catalin.marinas@arm.com",
    "time": "Tue May 19 17:49:02 2015 +0100"
  },
  "message": "arm64: perf: Fix callchain parse error with kernel tracepoint events\n\nFor ARM64, when tracing with tracepoint events, the IP and pstate are set\nto 0, preventing the perf code parsing the callchain and resolving the\nsymbols correctly.\n\n ./perf record -e sched:sched_switch -g --call-graph dwarf ls\n    [ perf record: Captured and wrote 0.146 MB perf.data ]\n ./perf report -f\n    Samples: 194  of event \u0027sched:sched_switch\u0027, Event count (approx.): 194\n    Children      Self    Command  Shared Object     Symbol\n    100.00%       100.00%  ls       [unknown]         [.] 0000000000000000\n\nThe fix is to implement perf_arch_fetch_caller_regs for ARM64, which fills\nseveral necessary registers used for callchain unwinding, including pc,sp,\nfp and spsr .\n\nWith this patch, callchain can be parsed correctly as follows:\n\n     ......\n+    2.63%     0.00%  ls       [kernel.kallsyms]  [k] vfs_symlink\n+    2.63%     0.00%  ls       [kernel.kallsyms]  [k] follow_down\n+    2.63%     0.00%  ls       [kernel.kallsyms]  [k] pfkey_get\n+    2.63%     0.00%  ls       [kernel.kallsyms]  [k] do_execveat_common.isra.33\n-    2.63%     0.00%  ls       [kernel.kallsyms]  [k] pfkey_send_policy_notify\n     pfkey_send_policy_notify\n     pfkey_get\n     v9fs_vfs_rename\n     page_follow_link_light\n     link_path_walk\n     el0_svc_naked\n    .......\n\nSigned-off-by: Hou Pengyang \u003choupengyang@huawei.com\u003e\nAcked-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d26d1d53c0d706bbe14f8000558cc04bac2f2ad3",
      "old_mode": 33188,
      "old_path": "arch/arm64/include/asm/perf_event.h",
      "new_id": "6471773db6fd8c067833ea92f647cca865e6fb4d",
      "new_mode": 33188,
      "new_path": "arch/arm64/include/asm/perf_event.h"
    }
  ]
}
