)]}'
{
  "log": [
    {
      "commit": "e6f47f978bcd5413fff610613b18e9e0eab9bc1b",
      "tree": "bf9e698cb76a0e958a8c9157fba74fb6d8255298",
      "parents": [
        "3d5631e0631a11633c649bc995a6537ec21b67b4"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Jun 26 00:25:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:22 2006 -0700"
      },
      "message": "[PATCH] Notify page fault call chain\n\nWith this patch Kprobes now registers for page fault notifications only when\ntheir is an active probe registered.  Once all the active probes are\nunregistered their is no need to be notified of page faults and kprobes\nunregisters itself from the page fault notifications.  Hence we will have ZERO\nside effects when no probes are active.\n\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"
    },
    {
      "commit": "3d5631e0631a11633c649bc995a6537ec21b67b4",
      "tree": "84924f8c647c2d67b9a1113408efd24e48dabf66",
      "parents": [
        "d98f8f05188b45168db43df8ddc9feeb0b1cd512"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Jun 26 00:25:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:22 2006 -0700"
      },
      "message": "[PATCH] Kprobes registers for notify page fault\n\nKprobes now registers for page fault notifications.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavmurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "36721656776f177280ccb50477a02e86e6444292",
      "tree": "20cb06eb08e98636e97703d6e0df77790ede23cf",
      "parents": [
        "585deacaca3e7bfc63580623f0344d1fa9c47f11"
      ],
      "author": {
        "name": "mao, bibo",
        "email": "bibo.mao@intel.com",
        "time": "Mon Jun 26 00:25:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jun 26 09:58:22 2006 -0700"
      },
      "message": "[PATCH] Kprobe: multi kprobe posthandler for booster\n\nIf there are multi kprobes on the same probepoint, there will be one extra\naggr_kprobe on the head of kprobe list.  The aggr_kprobe has\naggr_post_handler/aggr_break_handler whether the other kprobe\npost_hander/break_handler is NULL or not.  This patch modifies this, only\nwhen there is one or more kprobe in the list whose post_handler is not\nNULL, post_handler of aggr_kprobe will be set as aggr_post_handler.\n\n[soshima@redhat.com: !CONFIG_PREEMPT fix]\nSigned-off-by: bibo, mao \u003cbibo.mao@intel.com\u003e\nCc: Masami Hiramatsu \u003chiramatu@sdl.hitachi.co.jp\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: \"Keshavamurthy, Anil S\" \u003canil.s.keshavamurthy@intel.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Yumiko Sugita \u003csugita@sdl.hitachi.co.jp\u003e\nCc: Hideo Aoki \u003chaoki@redhat.com\u003e\nSigned-off-by: Satoshi Oshima \u003csoshima@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7522a8423bed9931cbac5502b9c0657bde2700ea",
      "tree": "8729269696269cba4ca477d711490a6c89c20cda",
      "parents": [
        "5a7b46b369419493bab4de67b1526e9f76b22a7f"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Thu Apr 20 02:43:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Apr 20 07:54:03 2006 -0700"
      },
      "message": "[PATCH] kprobes: NULL out non-relevant fields in struct kretprobe\n\nIn cases where a struct kretprobe\u0027s *_handler fields are non-NULL, it is\npossible to cause a system crash, due to the possibility of calls ending up\nin zombie functions.  Documentation clearly states that unused *_handlers\nshould be set to NULL, but kprobe users sometimes fail to do so.\n\nFix it by setting the non-relevant fields of the struct kretprobe to NULL.\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nAcked-by: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c6fd91f0bdcd294a0ae0ba2b2a7f7456ef4b7144",
      "tree": "1d095d1761a44118f101b2ce9697346ff168753a",
      "parents": [
        "c9becf58d935265919bf1cb348b2c04492c8949d"
      ],
      "author": {
        "name": "bibo mao",
        "email": "bibo_mao@linux.intel.com",
        "time": "Sun Mar 26 01:38:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:04 2006 -0800"
      },
      "message": "[PATCH] kretprobe instance recycled by parent process\n\nWhen kretprobe probes the schedule() function, if the probed process exits\nthen schedule() will never return, so some kretprobe instances will never\nbe recycled.\n\nIn this patch the parent process will recycle retprobe instances of the\nprobed function and there will be no memory leak of kretprobe instances.\n\nSigned-off-by: bibo mao \u003cbibo.mao@intel.com\u003e\nCc: Masami Hiramatsu \u003chiramatu@sdl.hitachi.co.jp\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: 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"
    },
    {
      "commit": "7a7d1cf95408863a657035701606b13644c9f55e",
      "tree": "7eaee4f3221aabcac2f57fb0295dd1e4763a1e8c",
      "parents": [
        "2c68ee754c40099c59828e59618a54726f76126a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 23 03:00:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Mar 23 07:38:12 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: kprobes\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-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"
    },
    {
      "commit": "278ff9537030bbb292b33504f5e1f6e0126793eb",
      "tree": "0087828bdf4d9a4fb57c9bcafd068ff058b39797",
      "parents": [
        "e65cefe87beda627c0bfba39b387ee4bffedc93c"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Fri Feb 03 03:03:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:00 2006 -0800"
      },
      "message": "[PATCH] Kprobes: Fix deadlock in function-return probes\n\nWhen two function-return probes are inserted on kfree()[1] and the second\non say, sys_link()[2], and later [2] is unregistered, we have a deadlock as\nkfree is called with the kretprobe_lock held and the function-return probe\non kfree will also try to grab the same lock.\n\nHowever, we can move the kfree() during unregistration to outside the\nspinlock as we are sure that no instances from the free list will be used\nafter synchronized_sched() returns during the unregistration process.\nThanks to Masami Hiramatsu for spotting this.\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e65cefe87beda627c0bfba39b387ee4bffedc93c",
      "tree": "f44c1d29edcfe271261bd1a36ba9ec12db53489e",
      "parents": [
        "8ed75463b969f72fd724ba0c01107fa443522321"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Feb 03 03:03:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Feb 03 08:32:00 2006 -0800"
      },
      "message": "[PATCH] kernel/kprobes.c: fix a warning #ifndef ARCH_SUPPORTS_KRETPROBES\n\nkernel/kprobes.c:353: warning: \u0027pre_handler_kretprobe\u0027 defined but not used\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nAcked-by: \"Keshavamurthy, Anil S\" \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"
    },
    {
      "commit": "df019b1d8b893d0f0ee5a9b0f71486f0892561ae",
      "tree": "9d2ced14291502af1ca687b5d854d8394cbfb84d",
      "parents": [
        "ef43bc4fc32bec8fda7bae8948b774616dc9e496"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Wed Jan 11 12:17:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Jan 11 18:42:12 2006 -0800"
      },
      "message": "[PATCH] kprobes: fix unloading of self probed module\n\nWhen a kprobes modules is written in such a way that probes are inserted on\nitself, then unload of that moudle was not possible due to reference\ncouning on the same module.\n\nThe below patch makes a check and incrementes the module refcount only if\nit is not a self probed module.\n\nWe need to allow modules to probe themself for kprobes performance\nmeasurements\n\nThis patch has been tested on several x86_64, ppc64 and IA64 architectures.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a0d50069ed3620e9a4d8939bbc3e0d5a692ab58a",
      "tree": "219097fa753bfe0dc8f3d6290fc6aa20730005fe",
      "parents": [
        "0498b63504f818e5ab39c818cd6f7b41319a1187"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Jan 09 20:52:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:41 2006 -0800"
      },
      "message": "[PATCH] Kprobes: conversion from kcalloc to kzalloc\n\nSigned-of-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0498b63504f818e5ab39c818cd6f7b41319a1187",
      "tree": "d040fd5e2703f9ad601c6949f58ea29e8554154e",
      "parents": [
        "e597c2984c64609c6e1e1ac803f00f7550705860"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Mon Jan 09 20:52:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:40 2006 -0800"
      },
      "message": "[PATCH] kprobes: fix build breakage\n\nThe following patch (against 2.6.15-rc5-mm3) fixes a kprobes build break\ndue to changes introduced in the kprobe locking in 2.6.15-rc5-mm3.  In\naddition, the patch reverts back the open-coding of kprobe_mutex.\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nAcked-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"
    },
    {
      "commit": "e597c2984c64609c6e1e1ac803f00f7550705860",
      "tree": "199bac97827782dcd73283018ec5692b63812fac",
      "parents": [
        "f709b122343fb9a010b6cf2d5559641f1820f7c9"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Jan 09 20:52:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:40 2006 -0800"
      },
      "message": "[PATCH] kprobes: arch_remove_kprobe\n\nCurrently arch_remove_kprobes() is only implemented/required for x86_64 and\npowerpc.  All other architecture like IA64, i386 and sparc64 implementes a\ndummy function which is being called from arch independent kprobes.c file.\n\nThis patch removes the dummy functions and replaces it with\n#define arch_remove_kprobe(p, s)\tdo { } while(0)\n\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"
    },
    {
      "commit": "f709b122343fb9a010b6cf2d5559641f1820f7c9",
      "tree": "5019515d4debd995570ffd35b6311fdd26456306",
      "parents": [
        "49a2a1b83ba6fa40c41968d6a28ba16e7ed0c3f7"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Jan 09 20:52:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:40 2006 -0800"
      },
      "message": "[PATCH] kprobes-changed-from-using-spinlock-to-mutex fix\n\nBased on some feedback from Oleg Nesterov, I have made few changes to\npreviously posted patch.\n\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"
    },
    {
      "commit": "49a2a1b83ba6fa40c41968d6a28ba16e7ed0c3f7",
      "tree": "f257b535d0f09f9ac2531d40feb732349993665c",
      "parents": [
        "41dead49ccb4d7f0a34d56478f487342a3c3ab2b"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Jan 09 20:52:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:40 2006 -0800"
      },
      "message": "[PATCH] kprobes: changed from using spinlock to mutex\n\nSince Kprobes runtime exception handlers is now lock free as this code path is\nnow using RCU to walk through the list, there is no need for the\nregister/unregister{_kprobe} to use spin_{lock/unlock}_isr{save/restore}.  The\nserialization during registration/unregistration is now possible using just a\nmutex.\n\nIn the above process, this patch also fixes a minor memory leak for x86_64 and\npowerpc.\n\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"
    },
    {
      "commit": "2d14e39da8712cff8a92298f464a25afb4283ccf",
      "tree": "17de4fe24f4cba62b0fd2f611c3a031a98412d8d",
      "parents": [
        "d1c0b8f835aeba85aa428aaec6d521ef4639c7fa"
      ],
      "author": {
        "name": "Anil S Keshavamurthy",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Jan 09 20:52:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:39 2006 -0800"
      },
      "message": "[PATCH] kprobes: enable funcions only for required arch\n\nKernel/kprobes.c defines get_insn_slot() and free_insn_slot() which are\ncurrently required _only_ for x86_64 and powerpc (which has no-exec support).\n\nFYI, get{free}_insn_slot() functions manages the memory page which is mapped\nas executable, required for instruction emulation.\n\nThis patch moves those two functions under __ARCH_WANT_KPROBES_INSN_SLOT and\ndefines __ARCH_WANT_KPROBES_INSN_SLOT in arch specific kprobes.h file.\n\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"
    },
    {
      "commit": "bf8d5c52c3b6b27061e3b7d779057fd9a6cac164",
      "tree": "e4371185eba27db47282410dd490b78598d20636",
      "parents": [
        "00d7c05ab168c10f9b520e07400923267bc04419"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Dec 12 00:37:34 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:45 2005 -0800"
      },
      "message": "[PATCH] kprobes: increment kprobe missed count for multiprobes\n\nWhen multiple probes are registered at the same address and if due to some\nrecursion (probe getting triggered within a probe handler), we skip calling\npre_handlers and just increment nmissed field.\n\nThe below patch make sure it walks the list for multiple probes case.\nWithout the below patch we get incorrect results of nmissed count for\nmultiple probe case.\n\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"
    },
    {
      "commit": "adad0f331f9c693129e81e233c5461e2e7c3e443",
      "tree": "846b37c12e8a07b7f4f3f5dbecb4b060c2be01c1",
      "parents": [
        "b88cb42428f14fabdaf947150c00d65891820635"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Dec 12 00:37:12 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:43 2005 -0800"
      },
      "message": "[PATCH] kprobes: fix race in aggregate kprobe registration\n\nWhen registering multiple kprobes at the same address, we leave a small\nwindow where the kprobe hlist will not contain a reference to the\nregistered kprobe, leading to potentially, a system crash if the breakpoint\nis hit on another processor.\n\nPatch below now automically relpace the old kprobe with the new\nkprobe from the hash list.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b3e55c727ff7349c5db722fbdb8d99a151e8e0bf",
      "tree": "90d437e565082afe25d68e530e793faeab4b49ac",
      "parents": [
        "3fe968f167975d10c639f03c4934f05a29da73c0"
      ],
      "author": {
        "name": "Mao, Bibo",
        "email": "bibo.mao@intel.com",
        "time": "Mon Dec 12 00:37:00 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:41 2005 -0800"
      },
      "message": "[PATCH] Kprobes: Reference count the modules when probed on it\n\nWhen a Kprobes are inserted/removed on a modules, the modules must be ref\ncounted so as not to allow to unload while probes are registered on that\nmodule.\n\nWithout this patch, the probed module is free to unload, and when the\nprobing module unregister the probe, the kpobes code while trying to\nreplace the original instruction might crash.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Mao Bibo \u003cbibo.mao@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d217d5450f11d8c907c0458d175b0dc999b4d06d",
      "tree": "ebd68eb9e0b632049d22240a3589887ca27077a5",
      "parents": [
        "991a51d83a3d9bebfafdd1e692cf310899d60791"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Mon Nov 07 01:00:14 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:46 2005 -0800"
      },
      "message": "[PATCH] Kprobes: preempt_disable/enable() simplification\n\nReorganize the preempt_disable/enable calls to eliminate the extra preempt\ndepth.  Changes based on Paul McKenney\u0027s review suggestions for the kprobes\nRCU changeset.\n\nSigned-off-by: Ananth N Mavinakayanahalli \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"
    },
    {
      "commit": "3516a46042508a495fac13c2e73530d936ebe015",
      "tree": "2d03117832b5c2439987de73420a38fc3e5983e4",
      "parents": [
        "e7a510f92c1e482a7db05afd3cb84af1f4cfe0bc"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Mon Nov 07 01:00:13 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:46 2005 -0800"
      },
      "message": "[PATCH] Kprobes: Use RCU for (un)register synchronization - base changes\n\nChanges to the base kprobes infrastructure to use RCU for synchronization\nduring kprobe registration and unregistration.  These changes coupled with the\narch kprobe changes (next in series):\n\na. serialize registration and unregistration of kprobes.\nb. enable lockless execution of handlers. Handlers can now run in parallel.\n\nSigned-off-by: Ananth N Mavinakayanahalli \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"
    },
    {
      "commit": "e65845235c8120be63001fc1a4ac00c819194bbe",
      "tree": "209a081cc07375290743ceb45f52dc474f45382a",
      "parents": [
        "66ff2d0691e00e1e7bfdf398a970310c9a0fe671"
      ],
      "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: Track kprobe on a per_cpu basis - base changes\n\nChanges to the base kprobe infrastructure to track kprobe execution on a\nper-cpu basis.\n\nSigned-off-by: Ananth N Mavinakayanahalli \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"
    },
    {
      "commit": "4e57b6817880946a3a78d5d8cad1ace363f7e449",
      "tree": "b6b5f3f9e8e52cc55d98239a4992e72e983c8fa4",
      "parents": [
        "b0423a0d9cc836b2c3d796623cd19236bfedfe63"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Sun Oct 30 15:03:48 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:32 2005 -0800"
      },
      "message": "[PATCH] fix missing includes\n\nI recently picked up my older work to remove unnecessary #includes of\nsched.h, starting from a patch by Dave Jones to not include sched.h\nfrom module.h. This reduces the number of indirect includes of sched.h\nby ~300. Another ~400 pointless direct includes can be removed after\nthis disentangling (patch to follow later).\nHowever, quite a few indirect includes need to be fixed up for this.\n\nIn order to feed the patches through -mm with as little disturbance as\npossible, I\u0027ve split out the fixes I accumulated up to now (complete for\ni386 and x86_64, more archs to follow later) and post them before the real\npatch.  This way this large part of the patch is kept simple with only\nadding #includes, and all hunks are independent of each other.  So if any\nhunk rejects or gets in the way of other patches, just drop it.  My scripts\nwill pick it up again in the next round.\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "deac66ae454cacf942c051b86d9232af546fb187",
      "tree": "17a72e7a2dcf2d1a93a6afdef661f290b1888f1c",
      "parents": [
        "bce0649417d6e71f6df8ab7b11103d247913b142"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Tue Sep 06 15:19:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:58:01 2005 -0700"
      },
      "message": "[PATCH] kprobes: fix bug when probed on task and isr functions\n\nThis patch fixes a race condition where in system used to hang or sometime\ncrash within minutes when kprobes are inserted on ISR routine and a task\nroutine.\n\nThe fix has been stress tested on i386, ia64, pp64 and on x86_64.  To\nreproduce the problem insert kprobes on schedule() and do_IRQ() functions\nand you should see hang or system crash.\n\nSigned-off-by: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nAcked-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d0aaff9796c3310326d10da44fc0faed352a1d29",
      "tree": "591fd8dedf34464989d23bbb0e66a1ccb2fa18a6",
      "parents": [
        "505db03639db34ca2c64fe7ee27190d324281f2c"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Tue Sep 06 15:19:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 07 16:57:59 2005 -0700"
      },
      "message": "[PATCH] Kprobes: prevent possible race conditions generic\n\nThere are possible race conditions if probes are placed on routines within the\nkprobes files and routines used by the kprobes.  For example if you put probe\non get_kprobe() routines, the system can hang while inserting probes on any\nroutine such as do_fork().  Because while inserting probes on do_fork(),\nregister_kprobes() routine grabs the kprobes spin lock and executes\nget_kprobe() routine and to handle probe of get_kprobe(), kprobes_handler()\ngets executed and tries to grab kprobes spin lock, and spins forever.  This\npatch avoids such possible race conditions by preventing probes on routines\nwithin the kprobes file and routines used by kprobes.\n\nI have modified the patches as per Andi Kleen\u0027s suggestion to move kprobes\nroutines and other routines used by kprobes to a seperate section\n.kprobes.text.\n\nAlso moved page fault and exception handlers, general protection fault to\n.kprobes.text section.\n\nThese patches have been tested on i386, x86_64 and ppc64 architectures, also\ncompiled on ia64 and sparc64 architectures.\n\nSigned-off-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6772926bef3c9f0ec761b39e5702535471fff70b",
      "tree": "b55f1b7af51e10c54781e24b5472236323d24ee5",
      "parents": [
        "4b1294f928d9396e45f62b1c306ac8bf9fae036b"
      ],
      "author": {
        "name": "Rusty Lynch",
        "email": "rusty.lynch@intel.com",
        "time": "Tue Jul 05 18:54:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jul 05 19:19:00 2005 -0700"
      },
      "message": "[PATCH] kprobes: fix namespace problem and sparc64 build\n\nThe following renames arch_init, a kprobes function for performing any\narchitecture specific initialization, to arch_init_kprobes in order to\ncleanup the namespace.\n\nAlso, this patch adds arch_init_kprobes to sparc64 to fix the sparc64 kprobes\nbuild from the last return probe patch.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "802eae7c800fb7f583e6c06afa363585af2bef00",
      "tree": "fa30469a4dc1f1a20abdf9466ec3c68bddef6ac9",
      "parents": [
        "9ec4b1f356b3bad928ae8e2aa9caebfa737d52df"
      ],
      "author": {
        "name": "Rusty Lynch",
        "email": "rusty.lynch@intel.com",
        "time": "Mon Jun 27 15:17:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 15:23:52 2005 -0700"
      },
      "message": "[PATCH] Return probe redesign: architecture independent changes\n\nThe following is the second version of the function return probe patches\nI sent out earlier this week.  Changes since my last submission include:\n\n* Fix in ppc64 code removing an unneeded call to re-enable preemption\n* Fix a build problem in ia64 when kprobes was turned off\n* Added another BUG_ON check to each of the architecture trampoline\n  handlers\n\nMy initial patch description \u003d\u003d\u003e\n\n From my experiences with adding return probes to x86_64 and ia64, and the\nfeedback on LKML to those patches, I think we can simplify the design\nfor return probes.\n\nThe following patch tweaks the original design such that:\n\n* Instead of storing the stack address in the return probe instance, the\n  task pointer is stored.  This gives us all we need in order to:\n    - find the correct return probe instance when we enter the trampoline\n      (even if we are recursing)\n    - find all left-over return probe instances when the task is going away\n\n  This has the side effect of simplifying the implementation since more\n  work can be done in kernel/kprobes.c since architecture specific knowledge\n  of the stack layout is no longer required.  Specifically, we no longer have:\n\t- arch_get_kprobe_task()\n\t- arch_kprobe_flush_task()\n\t- get_rp_inst_tsk()\n\t- get_rp_inst()\n\t- trampoline_post_handler() \u003csee next bullet\u003e\n\n* Instead of splitting the return probe handling and cleanup logic across\n  the pre and post trampoline handlers, all the work is pushed into the\n  pre function (trampoline_probe_handler), and then we skip single stepping\n  the original function.  In this case the original instruction to be single\n  stepped was just a NOP, and we can do without the extra interruption.\n\nThe new flow of events to having a return probe handler execute when a target\nfunction exits is:\n\n* At system initialization time, a kprobe is inserted at the beginning of\n  kretprobe_trampoline.  kernel/kprobes.c use to handle this on it\u0027s own,\n  but ia64 needed to do this a little differently (i.e. a function pointer\n  is really a pointer to a structure containing the instruction pointer and\n  a global pointer), so I added the notion of arch_init(), so that\n  kernel/kprobes.c:init_kprobes() now allows architecture specific\n  initialization by calling arch_init() before exiting.  Each architecture\n  now registers a kprobe on it\u0027s own trampoline function.\n\n* register_kretprobe() will insert a kprobe at the beginning of the targeted\n  function with the kprobe pre_handler set to arch_prepare_kretprobe\n  (still no change)\n\n* When the target function is entered, the kprobe is fired, calling\n  arch_prepare_kretprobe (still no change)\n\n* In arch_prepare_kretprobe() we try to get a free instance and if one is\n  available then we fill out the instance with a pointer to the return probe,\n  the original return address, and a pointer to the task structure (instead\n  of the stack address.)  Just like before we change the return address\n  to the trampoline function and mark the instance as used.\n\n  If multiple return probes are registered for a given target function,\n  then arch_prepare_kretprobe() will get called multiple times for the same\n  task (since our kprobe implementation is able to handle multiple kprobes\n  at the same address.)  Past the first call to arch_prepare_kretprobe,\n  we end up with the original address stored in the return probe instance\n  pointing to our trampoline function. (This is a significant difference\n  from the original arch_prepare_kretprobe design.)\n\n* Target function executes like normal and then returns to kretprobe_trampoline.\n\n* kprobe inserted on the first instruction of kretprobe_trampoline is fired\n  and calls trampoline_probe_handler() (no change here)\n\n* trampoline_probe_handler() consumes each of the instances associated with\n  the current task by calling the registered handler function and marking\n  the instance as unused until an instance is found that has a return address\n  different then the trampoline function.\n\n  (change similar to my previous ia64 RFC)\n\n* If the task is killed with some left-over return probe instances (meaning\n  that a target function was entered, but never returned), then we just\n  free any instances associated with the task.  (Not much different other\n  then we can handle this without calling architecture specific functions.)\n\n  There is a known problem that this patch does not yet solve where\n  registering a return probe flush_old_exec or flush_thread will put us\n  in a bad state.  Most likely the best way to handle this is to not allow\n  registering return probes on these two functions.\n\n  (Significant change)\n\nThis patch series applies to the 2.6.12-rc6-mm1 kernel, and provides:\n  * kernel/kprobes.c changes\n  * i386 patch of existing return probes implementation\n  * x86_64 patch of existing return probe implementation\n  * ia64 implementation\n  * ppc64 implementation (provided by Ananth)\n\nThis patch implements the architecture independant changes for a reworking\nof the kprobes based function return probes design. Changes include:\n\n  * Removing functions for querying a return probe instance off a stack address\n  * Removing the stack_addr field from the kretprobe_instance definition,\n    and adding a task pointer\n  * Adding architecture specific initialization via arch_init()\n  * Removing extern definitions for the architecture trampoline functions\n    (this isn\u0027t needed anymore since the architecture handles the\n     initialization of the kprobe in the return probe trampoline function.)\n\nSigned-off-by: Rusty Lynch \u003crusty.lynch@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9ec4b1f356b3bad928ae8e2aa9caebfa737d52df",
      "tree": "24d27ffed66595a9d864448ec53200ca1745f62c",
      "parents": [
        "d3b8a1a8496c83bc4a3cc76505c29255af15572c"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Mon Jun 27 15:17:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Mon Jun 27 15:23:52 2005 -0700"
      },
      "message": "[PATCH] kprobes: fix single-step out of line - take2\n\nNow that PPC64 has no-execute support, here is a second try to fix the\nsingle step out of line during kprobe execution.  Kprobes on x86_64 already\nsolved this problem by allocating an executable page and using it as the\nscratch area for stepping out of line.  Reuse that.\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8b0914ea7475615c7c8965c1ac8fe4069270f25c",
      "tree": "fb85ed3b08d9c61090bbc9dee9d06f54b945e52a",
      "parents": [
        "852caccc89d3883522e87a91bfa89fd9c9cfe15a"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Thu Jun 23 00:09:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:25 2005 -0700"
      },
      "message": "[PATCH] jprobes: allow a jprobe to coexist with muliple kprobes\n\nPresently either multiple kprobes or only one jprobe could be inserted.\nThis patch removes the above limitation and allows one jprobe and multiple\nkprobes to coexist at the same address.  However multiple jprobes cannot\ncoexist with multiple kprobes.  Currently I am working on the prototype to\nallow multiple jprobes coexist with multiple kprobes.\n\nSigned-off-by: Ananth N Mavinakayanhalli \u003camavin@redhat.com\u003e\nSigned-off-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ea32c65cc2d2294c04e9f81d0578a6f51febfdbf",
      "tree": "b301766bcc903f982b0ae85b5edffe9477a65408",
      "parents": [
        "89cb14c0dd0e4a7d0315d19f449389c4d49237ee"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Thu Jun 23 00:09:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:24 2005 -0700"
      },
      "message": "[PATCH] kprobes: Temporary disarming of reentrant probe\n\nIn situations where a kprobes handler calls a routine which has a probe on it,\nthen kprobes_handler() disarms the new probe forever.  This patch removes the\nabove limitation by temporarily disarming the new probe.  When the another\nprobe hits while handling the old probe, the kprobes_handler() saves previous\nkprobes state and handles the new probe without calling the new kprobes\nregistered handlers.  kprobe_post_handler() restores back the previous kprobes\nstate and the normal execution continues.\n\nHowever on x86_64 architecture, re-rentrancy is provided only through\npre_handler().  If a routine having probe is referenced through\npost_handler(), then the probes on that routine are disarmed forever, since\nthe exception stack is gets changed after the processor single steps the\ninstruction of the new probe.\n\nThis patch includes generic changes to support temporary disarming on\nreentrancy of probes.\n\nSigned-of-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0aa55e4d7db822059fe8132fe9f2b7773c48216c",
      "tree": "84075ac377f29f393aff802f00def309a98bcf40",
      "parents": [
        "7e1048b11c5afe79aac46a42e3ccec86b8365c6d"
      ],
      "author": {
        "name": "Hien Nguyen",
        "email": "hien@us.ibm.com",
        "time": "Thu Jun 23 00:09:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:21 2005 -0700"
      },
      "message": "[PATCH] kprobes: moves lock-unlock to non-arch kprobe_flush_task\n\nThis patch moves the lock/unlock of the arch specific kprobe_flush_task()\nto the non-arch specific kprobe_flusk_task().\n\nSigned-off-by: Hien Nguyen \u003chien@us.ibm.com\u003e\nAcked-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7e1048b11c5afe79aac46a42e3ccec86b8365c6d",
      "tree": "4f9caee0153e688f22d7e7b6fdc62e35be4fc3fe",
      "parents": [
        "73649dab0fd524cb8545a8cb83c6eaf77b107105"
      ],
      "author": {
        "name": "Rusty Lynch",
        "email": "rusty.lynch@intel.com",
        "time": "Thu Jun 23 00:09:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:21 2005 -0700"
      },
      "message": "[PATCH] Move kprobe [dis]arming into arch specific code\n\nThe architecture independent code of the current kprobes implementation is\narming and disarming kprobes at registration time.  The problem is that the\ncode is assuming that arming and disarming is a just done by a simple write\nof some magic value to an address.  This is problematic for ia64 where our\ninstructions look more like structures, and we can not insert break points\nby just doing something like:\n\n*p-\u003eaddr \u003d BREAKPOINT_INSTRUCTION;\n\nThe following patch to 2.6.12-rc4-mm2 adds two new architecture dependent\nfunctions:\n\n     * void arch_arm_kprobe(struct kprobe *p)\n     * void arch_disarm_kprobe(struct kprobe *p)\n\nand then adds the new functions for each of the architectures that already\nimplement kprobes (spar64/ppc64/i386/x86_64).\n\nI thought arch_[dis]arm_kprobe was the most descriptive of what was really\nhappening, but each of the architectures already had a disarm_kprobe()\nfunction that was really a \"disarm and do some other clean-up items as\nneeded when you stumble across a recursive kprobe.\" So...  I took the\nliberty of changing the code that was calling disarm_kprobe() to call\narch_disarm_kprobe(), and then do the cleanup in the block of code dealing\nwith the recursive kprobe case.\n\nSo far this patch as been tested on i386, x86_64, and ppc64, but still\nneeds to be tested in sparc64.\n\nSigned-off-by: Rusty Lynch \u003crusty.lynch@intel.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"
    },
    {
      "commit": "b94cce926b2b902b79380ccba370d6f9f2980de0",
      "tree": "da2680b1ec36eae6423ba446d09284d2642ae82b",
      "parents": [
        "2fa389c5eb8c97d621653184d2adf5fdbd4a3167"
      ],
      "author": {
        "name": "Hien Nguyen",
        "email": "hien@us.ibm.com",
        "time": "Thu Jun 23 00:09:19 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu Jun 23 09:45:21 2005 -0700"
      },
      "message": "[PATCH] kprobes: function-return probes\n\nThis patch adds function-return probes to kprobes for the i386\narchitecture.  This enables you to establish a handler to be run when a\nfunction returns.\n\n1. API\n\nTwo new functions are added to kprobes:\n\n\tint register_kretprobe(struct kretprobe *rp);\n\tvoid unregister_kretprobe(struct kretprobe *rp);\n\n2. Registration and unregistration\n\n2.1 Register\n\n  To register a function-return probe, the user populates the following\n  fields in a kretprobe object and calls register_kretprobe() with the\n  kretprobe address as an argument:\n\n  kp.addr - the function\u0027s address\n\n  handler - this function is run after the ret instruction executes, but\n  before control returns to the return address in the caller.\n\n  maxactive - The maximum number of instances of the probed function that\n  can be active concurrently.  For example, if the function is non-\n  recursive and is called with a spinlock or mutex held, maxactive \u003d 1\n  should be enough.  If the function is non-recursive and can never\n  relinquish the CPU (e.g., via a semaphore or preemption), NR_CPUS should\n  be enough.  maxactive is used to determine how many kretprobe_instance\n  objects to allocate for this particular probed function.  If maxactive \u003c\u003d\n  0, it is set to a default value (if CONFIG_PREEMPT maxactive\u003dmax(10, 2 *\n  NR_CPUS) else maxactive\u003dNR_CPUS)\n\n  For example:\n\n    struct kretprobe rp;\n    rp.kp.addr \u003d /* entrypoint address */\n    rp.handler \u003d /*return probe handler */\n    rp.maxactive \u003d /* e.g., 1 or NR_CPUS or 0, see the above explanation */\n    register_kretprobe(\u0026rp);\n\n  The following field may also be of interest:\n\n  nmissed - Initialized to zero when the function-return probe is\n  registered, and incremented every time the probed function is entered but\n  there is no kretprobe_instance object available for establishing the\n  function-return probe (i.e., because maxactive was set too low).\n\n2.2 Unregister\n\n  To unregiter a function-return probe, the user calls\n  unregister_kretprobe() with the same kretprobe object as registered\n  previously.  If a probed function is running when the return probe is\n  unregistered, the function will return as expected, but the handler won\u0027t\n  be run.\n\n3. Limitations\n\n3.1 This patch supports only the i386 architecture, but patches for\n    x86_64 and ppc64 are anticipated soon.\n\n3.2 Return probes operates by replacing the return address in the stack\n    (or in a known register, such as the lr register for ppc).  This may\n    cause __builtin_return_address(0), when invoked from the return-probed\n    function, to return the address of the return-probes trampoline.\n\n3.3 This implementation uses the \"Multiprobes at an address\" feature in\n    2.6.12-rc3-mm3.\n\n3.4 Due to a limitation in multi-probes, you cannot currently establish\n    a return probe and a jprobe on the same function.  A patch to remove\n    this limitation is being tested.\n\nThis feature is required by SystemTap (http://sourceware.org/systemtap),\nand reflects ideas contributed by several SystemTap developers, including\nWill Cohen and Ananth Mavinakayanahalli.\n\nSigned-off-by: Hien Nguyen \u003chien@us.ibm.com\u003e\nSigned-off-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Frederik Deweerdt \u003cfrederik.deweerdt@laposte.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64f562c6df3cfc5d1b2b4bdbcb7951457df9c237",
      "tree": "5fecfd97cfa1965185ec2254668d90d8f03e3f5f",
      "parents": [
        "04dea5f93231204cc3ca0ab793ce76dbb10c86ba"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "amavin@redhat.com",
        "time": "Thu May 05 16:15:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:39 2005 -0700"
      },
      "message": "[PATCH] kprobes: Allow multiple kprobes at the same address\n\nAllow registration of multiple kprobes at an address in an architecture\nagnostic way.  Corresponding handlers will be invoked in a sequence.  But,\na kprobe and a jprobe can\u0027t (yet) co-exist at the same address.\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003camavin@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "04dea5f93231204cc3ca0ab793ce76dbb10c86ba",
      "tree": "b47e20371a62b46bedea4337f191d245b44b097f",
      "parents": [
        "0b9e2cac8a56e197d0a9e06268db4c8652d23dd5"
      ],
      "author": {
        "name": "Prasanna S Panchamukhi",
        "email": "prasanna@in.ibm.com",
        "time": "Thu May 05 16:15:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:39 2005 -0700"
      },
      "message": "[PATCH] Kprobes: Oops! in unregister_kprobe()\n\nkernel oops!  when unregister_kprobe() is called on a non-registered\nkprobe.  This patch fixes the above problem by checking if the probe exists\nbefore unregistering.\n\nSigned-off-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
