)]}'
{
  "commit": "5331d7b84613b8325362dde53dc2bff2fb87d351",
  "tree": "60f4bf4fdaf31b612eefc291bf6b558dc4c8d947",
  "parents": [
    "61e67fb9d3ed13e6a7f58652ae4979b9c872fa57"
  ],
  "author": {
    "name": "Frederic Weisbecker",
    "email": "fweisbec@gmail.com",
    "time": "Thu Mar 04 21:15:56 2010 +0100"
  },
  "committer": {
    "name": "Frederic Weisbecker",
    "email": "fweisbec@gmail.com",
    "time": "Wed Mar 10 14:39:35 2010 +0100"
  },
  "message": "perf: Introduce new perf_fetch_caller_regs() for hot regs snapshot\n\nEvents that trigger overflows by interrupting a context can\nuse get_irq_regs() or task_pt_regs() to retrieve the state\nwhen the event triggered. But this is not the case for some\nother class of events like trace events as tracepoints are\nexecuted in the same context than the code that triggered\nthe event.\n\nIt means we need a different api to capture the regs there,\nnamely we need a hot snapshot to get the most important\ninformations for perf: the instruction pointer to get the\nevent origin, the frame pointer for the callchain, the code\nsegment for user_mode() tests (we always use __KERNEL_CS as\ntrace events always occur from the kernel) and the eflags\nfor further purposes.\n\nv2: rename perf_save_regs to perf_fetch_caller_regs as per\nMasami\u0027s suggestion.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Archs \u003clinux-arch@vger.kernel.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1d665a0b202c28d3cea828888f875b3694c28105",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/perf_event.c",
      "new_id": "c6bde7d7afdc9be4f8ea7950902d05f7e6e1dc8d",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/perf_event.c"
    },
    {
      "type": "modify",
      "old_id": "4fd1420faffa4fd747d8de2844c8d7278b79587c",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/dumpstack.h",
      "new_id": "29e5f7c845b25e4ef3d92f6bc79a7e79c050e942",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/dumpstack.h"
    },
    {
      "type": "modify",
      "old_id": "80acbf3d5de1f670391648aa15d62545867e6985",
      "old_mode": 33188,
      "old_path": "include/linux/perf_event.h",
      "new_id": "70cffd052c04d206352bcbda0828bc129e4a7af1",
      "new_mode": 33188,
      "new_path": "include/linux/perf_event.h"
    },
    {
      "type": "modify",
      "old_id": "52c69a34d6975cb5b078083cf57a6cda9a7d5f5f",
      "old_mode": 33188,
      "old_path": "kernel/perf_event.c",
      "new_id": "359d7f690c2bb6d4f5b4c9a218376a34ca7b23af",
      "new_mode": 33188,
      "new_path": "kernel/perf_event.c"
    }
  ]
}
