)]}'
{
  "commit": "66ff2d0691e00e1e7bfdf398a970310c9a0fe671",
  "tree": "f53bcd846be8fbaee5a5ee65f9bacc5b34392090",
  "parents": [
    "b385676b355549afc9a7507ce09c7df47f166521"
  ],
  "author": {
    "name": "Ananth N Mavinakayanahalli",
    "email": "ananth@in.ibm.com",
    "time": "Mon Nov 07 01:00:07 2005 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@g5.osdl.org",
    "time": "Mon Nov 07 07:53:45 2005 -0800"
  },
  "message": "[PATCH] Kprobes: rearrange preempt_disable/enable() calls\n\nThe following set of patches are aimed at improving kprobes scalability.  We\ncurrently serialize kprobe registration, unregistration and handler execution\nusing a single spinlock - kprobe_lock.\n\nWith these changes, kprobe handlers can run without any locks held.  It also\nallows for simultaneous kprobe handler executions on different processors as\nwe now track kprobe execution on a per processor basis.  It is now necessary\nthat the handlers be re-entrant since handlers can run concurrently on\nmultiple processors.\n\nAll changes have been tested on i386, ia64, ppc64 and x86_64, while sparc64\nhas been compile tested only.\n\nThe patches can be viewed as 3 logical chunks:\n\npatch 1: \tReorder preempt_(dis/en)able calls\npatches 2-7: \tIntroduce per_cpu data areas to track kprobe execution\npatches 8-9: \tUse RCU to synchronize kprobe (un)registration and handler\n\t\texecution.\n\nThanks to Maneesh Soni, James Keniston and Anil Keshavamurthy for their\nreview and suggestions. Thanks again to Anil, Hien Nguyen and Kevin Stafford\nfor testing the patches.\n\nThis patch:\n\nReorder preempt_disable/enable() calls in arch kprobes files in preparation to\nintroduce locking changes.  No functional changes introduced by this patch.\n\nSigned-off-by: Ananth N Mavinakayahanalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6345b430b105fd913c1fdca36768910e2f7fd580",
      "old_mode": 33188,
      "old_path": "arch/i386/kernel/kprobes.c",
      "new_id": "fd35039859e610d46559a7227789e6a23458681f",
      "new_mode": 33188,
      "new_path": "arch/i386/kernel/kprobes.c"
    },
    {
      "type": "modify",
      "old_id": "471086b808a4b942781aa19abe940fb08dc8533b",
      "old_mode": 33188,
      "old_path": "arch/ia64/kernel/kprobes.c",
      "new_id": "1e80ec80dd215afe725fe2f07d90c27325a25eb3",
      "new_mode": 33188,
      "new_path": "arch/ia64/kernel/kprobes.c"
    },
    {
      "type": "modify",
      "old_id": "ed876a5178ae6bedf663488915c0dc27cdd0ff83",
      "old_mode": 33188,
      "old_path": "arch/ppc64/kernel/kprobes.c",
      "new_id": "6071ee99f5cbb975beed8c8100d657b485468966",
      "new_mode": 33188,
      "new_path": "arch/ppc64/kernel/kprobes.c"
    },
    {
      "type": "modify",
      "old_id": "0d66d07c8c6eead89fa6e5799ec6ba5fcf57873f",
      "old_mode": 33188,
      "old_path": "arch/sparc64/kernel/kprobes.c",
      "new_id": "755a0d7d887fad22890e6cabf2a25de97fbb4d42",
      "new_mode": 33188,
      "new_path": "arch/sparc64/kernel/kprobes.c"
    },
    {
      "type": "modify",
      "old_id": "76a28b007be95fcb17344fe48c7a1b93935a6bc0",
      "old_mode": 33188,
      "old_path": "arch/x86_64/kernel/kprobes.c",
      "new_id": "ebfa2c9241ca906b7d7b03f267f15593fd37d1ad",
      "new_mode": 33188,
      "new_path": "arch/x86_64/kernel/kprobes.c"
    }
  ]
}
