)]}'
{
  "commit": "b326e9560a28fc3e950637ef51847ed8f05c1335",
  "tree": "0804c8c4f28d4ae152d5e9205ce5a958f0d26b79",
  "parents": [
    "2f0993e0fb663c49e4d1e02654f6203246be4817"
  ],
  "author": {
    "name": "Frederic Weisbecker",
    "email": "fweisbec@gmail.com",
    "time": "Sat Dec 05 09:44:31 2009 +0100"
  },
  "committer": {
    "name": "Frederic Weisbecker",
    "email": "fweisbec@gmail.com",
    "time": "Sun Dec 06 08:27:18 2009 +0100"
  },
  "message": "hw-breakpoints: Use overflow handler instead of the event callback\n\nstruct perf_event::event callback was called when a breakpoint\ntriggers. But this is a rather opaque callback, pretty\ntied-only to the breakpoint API and not really integrated into perf\nas it triggers even when we don\u0027t overflow.\n\nWe prefer to use overflow_handler() as it fits into the perf events\nrules, being called only when we overflow.\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: \"K. Prasad\" \u003cprasad@linux.vnet.ibm.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d42f65ac492766ecaeb60944b4ae573f5bf6f0bf",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/hw_breakpoint.c",
      "new_id": "05d5fec64a9475855e224012dbb54a9d82b1ee4c",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/hw_breakpoint.c"
    },
    {
      "type": "modify",
      "old_id": "dbb395572ae2b33d7cec13f54bebb6d1e65ec361",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/ptrace.c",
      "new_id": "b361d28061d0f4e364a1e234b101c4dbcded94cf",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/ptrace.c"
    },
    {
      "type": "modify",
      "old_id": "d33096e0dbd491eb6d1ce1cb9394b59ad89bbd0c",
      "old_mode": 33188,
      "old_path": "include/linux/hw_breakpoint.h",
      "new_id": "4d14a384a01eee25deb5f346a2725c0c9a1939b4",
      "new_mode": 33188,
      "new_path": "include/linux/hw_breakpoint.h"
    },
    {
      "type": "modify",
      "old_id": "84bd28a0ffab8ca35ca1d8d81996593a1f56053e",
      "old_mode": 33188,
      "old_path": "include/linux/perf_event.h",
      "new_id": "d2f2667430da9167520eb6a486fb90ce7f4aa8d9",
      "new_mode": 33188,
      "new_path": "include/linux/perf_event.h"
    },
    {
      "type": "modify",
      "old_id": "2d10b012828f0ebbf9918e7724b5db7ecc80766f",
      "old_mode": 33188,
      "old_path": "kernel/hw_breakpoint.c",
      "new_id": "b600fc27f1613e386ee4397a84e65cb623ea6b26",
      "new_mode": 33188,
      "new_path": "kernel/hw_breakpoint.c"
    },
    {
      "type": "modify",
      "old_id": "6b7ddba1dd640cc94f2af66fd163961e944a94f2",
      "old_mode": 33188,
      "old_path": "kernel/perf_event.c",
      "new_id": "fd43ff4ac860077150b0ecfdd0566e1a99c50082",
      "new_mode": 33188,
      "new_path": "kernel/perf_event.c"
    },
    {
      "type": "modify",
      "old_id": "ddfa0fd43bc0ebab1fa4953918a41323f409e08a",
      "old_mode": 33188,
      "old_path": "kernel/trace/trace_ksym.c",
      "new_id": "acb87d4a4ac15e8127fc64138918111a1e948936",
      "new_mode": 33188,
      "new_path": "kernel/trace/trace_ksym.c"
    },
    {
      "type": "modify",
      "old_id": "29525500df00e51c5630e7da0e79a8db2b8c99f0",
      "old_mode": 33188,
      "old_path": "samples/hw_breakpoint/data_breakpoint.c",
      "new_id": "c69cbe9b2426a287bf754a82344957f9a2ead426",
      "new_mode": 33188,
      "new_path": "samples/hw_breakpoint/data_breakpoint.c"
    }
  ]
}
