)]}'
{
  "log": [
    {
      "commit": "b2be84df99ebc93599c69e931a3c4a5105abfabc",
      "tree": "35f720b12bed1cc98c7d261dc3a6af96916faa44",
      "parents": [
        "afd66255b9a48f5851326ddae50e2203fbf71dc9"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Thu Feb 25 08:34:15 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 17:49:25 2010 +0100"
      },
      "message": "kprobes: Jump optimization sysctl interface\n\nAdd /proc/sys/debug/kprobes-optimization sysctl which enables\nand disables kprobes jump optimization on the fly for debugging.\n\nChanges in v7:\n - Remove ctl_name \u003d CTL_UNNUMBERED for upstream compatibility.\n\nChanges in v6:\n- Update comments and coding style.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: systemtap \u003csystemtap@sources.redhat.com\u003e\nCc: DLE \u003cdle-develop@lists.sourceforge.net\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Anders Kaseorg \u003candersk@ksplice.com\u003e\nCc: Tim Abbott \u003ctabbott@ksplice.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Mathieu Desnoyers \u003ccompudj@krystal.dyndns.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nLKML-Reference: \u003c20100225133415.6725.8274.stgit@localhost6.localdomain6\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "afd66255b9a48f5851326ddae50e2203fbf71dc9",
      "tree": "32c7a36a8e2c740b989f16b3e2878f8c565d57f8",
      "parents": [
        "4610ee1d3638fa05ba8e87ccfa971db8e4033ae7"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Thu Feb 25 08:34:07 2010 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 25 17:49:24 2010 +0100"
      },
      "message": "kprobes: Introduce kprobes jump optimization\n\nIntroduce kprobes jump optimization arch-independent parts.\nKprobes uses breakpoint instruction for interrupting execution\nflow, on some architectures, it can be replaced by a jump\ninstruction and interruption emulation code. This gains kprobs\u0027\nperformance drastically.\n\nTo enable this feature, set CONFIG_OPTPROBES\u003dy (default y if the\narch supports OPTPROBE).\n\nChanges in v9:\n - Fix a bug to optimize probe when enabling.\n - Check nearby probes can be optimize/unoptimize when disarming/arming\n   kprobes, instead of registering/unregistering. This will help\n   kprobe-tracer because most of probes on it are usually disabled.\n\nChanges in v6:\n - Cleanup coding style for readability.\n - Add comments around get/put_online_cpus().\n\nChanges in v5:\n - Use get_online_cpus()/put_online_cpus() for avoiding text_mutex\n   deadlock.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: systemtap \u003csystemtap@sources.redhat.com\u003e\nCc: DLE \u003cdle-develop@lists.sourceforge.net\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Anders Kaseorg \u003candersk@ksplice.com\u003e\nCc: Tim Abbott \u003ctabbott@ksplice.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Mathieu Desnoyers \u003ccompudj@krystal.dyndns.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nLKML-Reference: \u003c20100225133407.6725.81992.stgit@localhost6.localdomain6\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7a4b414eed51f1653bb05ebe84122bf9a7ae18b",
      "tree": "bd6603a0c27de4c138a1767871897e9cd3e1a1d2",
      "parents": [
        "1f0ab40976460bc4673fa204ce917a725185d8f2",
        "a724eada8c2a7b62463b73ccf73fd0bb6e928aeb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 23 23:08:43 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Sep 23 23:08:43 2009 +0200"
      },
      "message": "Merge commit \u0027linus/master\u0027 into tracing/kprobes\n\nConflicts:\n\tkernel/trace/Makefile\n\tkernel/trace/trace.h\n\tkernel/trace/trace_event_types.h\n\tkernel/trace/trace_export.c\n\nMerge reason:\n\tSync with latest significant tracing core changes.\n"
    },
    {
      "commit": "fe832a3a48737b24f95fab202b1c67fb588b071d",
      "tree": "333abe938711216a4400819c2bc658184a7398e1",
      "parents": [
        "6ca6cca31ddc7cc8b1dc38b12d7593d2667defe8"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Sep 15 23:51:31 2009 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Sep 15 23:51:31 2009 -0400"
      },
      "message": "tracing: remove notrace from __kprobes annotation\n\nWhen ftrace had issues with NMIs, it was needed to annotate all\nthe areas that kprobes had issues with notrace. Now that ftrace is\nNMI safe, the functions that limit ftrace from tracing are just a\nsmall few.\n\nKprobes is too big of a set for ftrace not to trace. Remove the\ncoupling.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "24851d2447830e6cba4c4b641cb73e713f312373",
      "tree": "b0aa315fc67b3aedab3bd84ef99ea3d933fd365c",
      "parents": [
        "30a7e073b590ebd1829a906164b0a637e77cc967"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Aug 26 23:38:30 2009 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 27 02:33:03 2009 +0200"
      },
      "message": "tracing/kprobes: Dump the culprit kprobe in case of kprobe recursion\n\nKprobes can enter into a probing recursion, ie: a kprobe that does an\nendless loop because one of its core mechanism function used during\nprobing is also probed itself.\n\nThis patch helps pinpointing the kprobe that raised such recursion\nby dumping it and raising a BUG instead of a warning (we also disarm\nthe kprobe to try avoiding recursion in BUG itself). Having a BUG\ninstead of a warning stops the stacktrace in the right place and\ndoesn\u0027t pollute the logs with hundreds of traces that eventually end\nup in a stack overflow.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\n"
    },
    {
      "commit": "8f9b15286a8ea49e997e845d02d357ed33ebd090",
      "tree": "e6d2905679a938a92982ff48994f1623c6a87031",
      "parents": [
        "de5bd88d5a5cce3cacea904d3503e5ebdb3852a2"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 06 19:01:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:08 2009 -0700"
      },
      "message": "kprobes: support kretprobe and jprobe per-probe disabling\n\nAdd disable/enable_kretprobe() and disable/enable_jprobe().\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de5bd88d5a5cce3cacea904d3503e5ebdb3852a2",
      "tree": "da24ac8b38d371ee03a21ed0f3647c518689ebd3",
      "parents": [
        "e579abeb58eb4b8d7321c6eb44dd9e2d0cbaebaa"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 06 19:01:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:08 2009 -0700"
      },
      "message": "kprobes: support per-kprobe disabling\n\nAdd disable_kprobe() and enable_kprobe() to disable/enable kprobes\ntemporarily.\n\ndisable_kprobe() asynchronously disables probe handlers of specified\nkprobe.  So, after calling it, some handlers can be called at a while.\nenable_kprobe() enables specified kprobe.\n\naggr_pre_handler and aggr_post_handler check disabled probes.  On the\nother hand aggr_break_handler and aggr_fault_handler don\u0027t check it\nbecause these handlers will be called while executing pre or post handlers\nand usually those help error handling.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc00e9cfe0e5c4c31057c722e49fdf2c76dd5953",
      "tree": "eef4a6fe899e1ea84cb517bc807aae0dd79ebed0",
      "parents": [
        "99081ab553d6a88dd6b3774af5eef94dbb8faad7"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 06 19:01:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:08 2009 -0700"
      },
      "message": "kprobes: cleanup comment style in kprobes.h\n\nFix comment style in kprobes.h.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b18018126f422f5b706fd750373425e10e84b486",
      "tree": "e3e4954ca44999b25475307afb0653eed39ff63f",
      "parents": [
        "b814d41f0987c7648d7ed07471258101c95c026b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 20 22:42:57 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Feb 21 00:09:42 2009 +0100"
      },
      "message": "x86, mm, kprobes: fault.c, simplify notify_page_fault()\n\nImpact: cleanup\n\nRemove an #ifdef from notify_page_fault(). The function still\ncompiles to nothing in the !CONFIG_KPROBES case.\n\nIntroduce kprobes_built_in() and kprobe_fault_handler() helpers\nto allow this - they returns 0 if !CONFIG_KPROBES.\n\nNo code changed:\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n   4618\t     32\t     24\t   4674\t   1242\tfault.o.before\n   4618\t     32\t     24\t   4674\t   1242\tfault.o.after\n\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dc19835df6c47ff676ad6c98722d5e529db5d74c",
      "tree": "78e5eeb534e133cf487b96676883eaf176e993ef",
      "parents": [
        "252523ef2421b803de4810876223e4d695f23ec6"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Thu Jan 29 14:25:08 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 18:04:43 2009 -0800"
      },
      "message": "kprobes: fix module compilation error with CONFIG_KPROBES\u003dn\n\nDefine kprobes related data structures even if CONFIG_KPROBES is not set.\nThis fixes compilation errors which occur if CONFIG_KPROBES is not set, in\nkprobe using modules.\n\n[akpm@linux-foundation.org: fix build for non-kprobes-supporting architectures]\nReviewed-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8386a0cb22f4a2d439384212c494ad0bda848fe",
      "tree": "84c462bccddead49c0e2c0dcfcc0f70cd9cf60f7",
      "parents": [
        "017c39bdb1b3ac1da6db339474a77b528043c05a"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:52 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:21 2009 -0800"
      },
      "message": "kprobes: support probing module __exit function\n\nAllows kprobes to probe __exit routine.  This adds flags member to struct\nkprobe.  When module is freed(kprobes hooks module_notifier to get this\nevent), kprobes which probe the functions in that module are set to \"Gone\"\nflag to the flags member.  These \"Gone\" probes are never be enabled.\nUsers can check the GONE flag through debugfs.\n\nThis also removes mod_refcounted, because we couldn\u0027t free a module if\nkprobe incremented the refcount of that module.\n\n[akpm@linux-foundation.org: document some locking]\n[mhiramat@redhat.com: bugfix: pass aggr_kprobe to arch_remove_kprobe]\n[mhiramat@redhat.com: bugfix: release old_p\u0027s insn_slot before error return]\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "129415607845d4daea11ddcba706005c69dcb942",
      "tree": "9046ea79a0b81c8823b9d42f00fd7c158861ed5c",
      "parents": [
        "a06f6211ef9b1785922f9d0e8766d63ac4e66de1"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Jan 06 14:41:50 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:20 2009 -0800"
      },
      "message": "kprobes: add kprobe_insn_mutex and cleanup arch_remove_kprobe()\n\nAdd kprobe_insn_mutex for protecting kprobe_insn_pages hlist, and remove\nkprobe_mutex from architecture dependent code.\n\nThis allows us to call arch_remove_kprobe() (and free_insn_slot) while\nholding kprobe_mutex.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36dcd67ae994fece615b7c700958d215e884b9ae",
      "tree": "2a4bed0cb9de673b7760b81f9fe03fd5f262c77e",
      "parents": [
        "9795302acf2817d0842e56d23df6008e43df0970"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 29 12:00:59 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:34:22 2008 +0200"
      },
      "message": "ftrace: ignore functions that cannot be kprobe-ed\n\nkprobes already has an extensive list of annotations for functions\nthat should not be instrumented. Add notrace annotations to these\nfunctions as well.\n\nThis is particularly useful for functions called by the NMI path.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ef53d9c5e4da147ecaa43c44c5e5945eb83970a2",
      "tree": "3b596445e5d0613fda4b33a4ae96e0e3fffdcf1e",
      "parents": [
        "53a9600c634e3bfd6230e0597aca159bf4d4d010"
      ],
      "author": {
        "name": "Srinivasa D S",
        "email": "srinivasa@in.ibm.com",
        "time": "Fri Jul 25 01:46:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:30 2008 -0700"
      },
      "message": "kprobes: improve kretprobe scalability with hashed locking\n\nCurrently list of kretprobe instances are stored in kretprobe object (as\nused_instances,free_instances) and in kretprobe hash table.  We have one\nglobal kretprobe lock to serialise the access to these lists.  This causes\nonly one kretprobe handler to execute at a time.  Hence affects system\nperformance, particularly on SMP systems and when return probe is set on\nlot of functions (like on all systemcalls).\n\nSolution proposed here gives fine-grain locks that performs better on SMP\nsystem compared to present kretprobe implementation.\n\nSolution:\n\n 1) Instead of having one global lock to protect kretprobe instances\n    present in kretprobe object and kretprobe hash table.  We will have\n    two locks, one lock for protecting kretprobe hash table and another\n    lock for kretporbe object.\n\n 2) We hold lock present in kretprobe object while we modify kretprobe\n    instance in kretprobe object and we hold per-hash-list lock while\n    modifying kretprobe instances present in that hash list.  To prevent\n    deadlock, we never grab a per-hash-list lock while holding a kretprobe\n    lock.\n\n 3) We can remove used_instances from struct kretprobe, as we can\n    track used instances of kretprobe instances using kretprobe hash\n    table.\n\nTime duration for kernel compilation (\"make -j 8\") on a 8-way ppc64 system\nwith return probes set on all systemcalls looks like this.\n\ncacheline              non-cacheline             Un-patched kernel\naligned patch \t       aligned patch\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nreal    9m46.784s       9m54.412s                  10m2.450s\nuser    40m5.715s       40m7.142s                  40m4.273s\nsys     2m57.754s       2m58.583s                  3m17.430s\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nTime duration for kernel compilation (\"make -j 8) on the same system, when\nkernel is not probed.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nreal    9m26.389s\nuser    40m8.775s\nsys     2m7.283s\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nSigned-off-by: Srinivasa DS \u003csrinivasa@in.ibm.com\u003e\nSigned-off-by: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "785656a41f9a9c0e843a23d1ae05d900b5158f8f",
      "tree": "0e1dcb8508febe2504a0f28806e26d48367c09af",
      "parents": [
        "395a59d0f8e86bb39cd700c3d185d30c670bb958"
      ],
      "author": {
        "name": "Abhishek Sagar",
        "email": "sagar.abhishek@gmail.com",
        "time": "Sat Jun 21 23:47:39 2008 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 23 22:10:57 2008 +0200"
      },
      "message": "kprobes: enable clean usage of get_kprobe\n\nAllow clean use of get_kprobe() outside of core kprobe code. Ftrace makes use\nof get_kprobe to identify probes installed on mcount call-sites.\n\nSigned-off-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: jkenisto@us.ibm.com\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "26b31c1908e02a316edfba08080373342e662c14",
      "tree": "d9140d82ccc9ed3faa2062549d0e7471da9c9b29",
      "parents": [
        "4a296e07c3a410c09b9155da4c2fa84a07964f38"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 28 02:14:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "kprobes: add (un)register_jprobes for batch registration\n\nIntroduce unregister_/register_jprobes() for jprobe batch registration.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4a296e07c3a410c09b9155da4c2fa84a07964f38",
      "tree": "d6070555a2ddf026a7c8534689b425c0e931dcfe",
      "parents": [
        "9861668f747895608cea425f8457989d8dd2edf2"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 28 02:14:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "kprobes: add (un)register_kretprobes for batch registration\n\nIntroduce unregister_/register_kretprobes() for kretprobe batch registration.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9861668f747895608cea425f8457989d8dd2edf2",
      "tree": "db5dad352826407afb549a8cfa44d4c66823af15",
      "parents": [
        "99602572812442d47403d85f376ad51298dd82a6"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 28 02:14:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "kprobes: add (un)register_kprobes for batch registration\n\nIntroduce unregister_/register_kprobes() for kprobe batch registration.  This\ncan reduce waiting time for synchronized_sched() when a lot of probes have to\nbe unregistered at once.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: \"Frank Ch. Eigler\" \u003cfche@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d8d996e0ca5b4093203d3f050b0f70b5c949ae8",
      "tree": "2b19d3a47bf723c3bf6ff7c8a0d90078feaee08c",
      "parents": [
        "0341a4d0fdd2a0a3d9e2bb3a9afef9f8292c8502"
      ],
      "author": {
        "name": "Srinivasa Ds",
        "email": "srinivasa@in.ibm.com",
        "time": "Mon Apr 28 02:14:26 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:32 2008 -0700"
      },
      "message": "kprobes: prevent probing of preempt_schedule()\n\nProhibit users from probing preempt_schedule().  One way of prohibiting the\nuser from probing functions is by marking such functions with __kprobes.  But\nthis method doesn\u0027t work for those functions, which are already marked to\ndifferent section like preempt_schedule() (belongs to __sched section).  So we\nuse blacklist approach to refuse user from probing these functions.\n\nIn blacklist approach we populate the blacklisted function\u0027s starting address\nand its size in kprobe_blacklist structure.  Then we verify the user specified\naddress against start and end of the blacklisted function.  So any attempt to\nregister probe on blacklisted functions will be rejected.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Srinivasa DS \u003csrinivasa@in.ibm.com\u003e\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9edddaa200df18e08fe0cf21036e8ae467b1363c",
      "tree": "26f5319fac24fb6c76b1276b19725caeb5ec24bc",
      "parents": [
        "8182ec49a73729334f5a6c65a607ba7009ebd6d6"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Tue Mar 04 14:28:37 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:11 2008 -0800"
      },
      "message": "Kprobes: indicate kretprobe support in Kconfig\n\nAdd CONFIG_HAVE_KRETPROBES to the arch/\u003carch\u003e/Kconfig file for relevant\narchitectures with kprobes support.  This facilitates easy handling of\nin-kernel modules (like samples/kprobes/kretprobe_example.c) that depend on\nkretprobes being present in the kernel.\n\nThanks to Sam Ravnborg for helping make the patch more lean.\n\nPer Mathieu\u0027s suggestion, added CONFIG_KRETPROBES and fixed up dependencies.\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f47cd9b553aaada602449204513b5a5b29cba263",
      "tree": "079ddd399b1aa00a8c413ef51f3b8681a19a6e7e",
      "parents": [
        "5beec4aa2ac261b0b4992fb41df40a7ab91e4fad"
      ],
      "author": {
        "name": "Abhishek Sagar",
        "email": "sagar.abhishek@gmail.com",
        "time": "Wed Feb 06 01:38:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:11 2008 -0800"
      },
      "message": "kprobes: kretprobe user entry-handler\n\nProvide support to add an optional user defined callback to be run at\nfunction entry of a kretprobe\u0027d function.  Also modify the kprobe smoke\ntests to include an entry-handler during the kretprobe sanity test.\n\nSigned-off-by: Abhishek Sagar \u003csagar.abhishek@gmail.com\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\nAcked-by: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8c1c9356429741a82ff176d0f3400fb9e06b2a30",
      "tree": "4daa7864163b77943e3d303c32a08672f443685e",
      "parents": [
        "3334052a321aca0ffecb54244d666311f98f5487"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Wed Jan 30 13:32:53 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:32:53 2008 +0100"
      },
      "message": "x86: kprobes: add kprobes smoke tests that run on boot\n\nHere is a quick and naive smoke test for kprobes. This is intended to\njust verify if some unrelated change broke the *probes subsystem. It is\nself contained, architecture agnostic and isn\u0027t of any great use by itself.\n\nThis needs to be built in the kernel and runs a basic set of tests to\nverify if kprobes, jprobes and kretprobes run fine on the kernel. In case\nof an error, it\u0027ll print out a message with a \"BUG\" prefix.\n\nThis is a start; we intend to add more tests to this bucket over time.\n\nThanks to Jim Keniston and Masami Hiramatsu for comments and suggestions.\n\nTested on x86 (32/64) and powerpc.\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nAcked-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f438d914b220051d4cbc65cbc5d98e163c85c93b",
      "tree": "75e7fda155a8494595f6ae0539bbb64ef98230f6",
      "parents": [
        "49dce689ad4ef0fd1f970ef762168e4bd46f69a3"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Tue Oct 16 01:27:49 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:10 2007 -0700"
      },
      "message": "kprobes: support kretprobe blacklist\n\nIntroduce architecture dependent kretprobe blacklists to prohibit users\nfrom inserting return probes on the function in which kprobes can be\ninserted but kretprobes can not.\n\nThis patch also removes \"__kprobes\" mark from \"__switch_to\" on x86_64 and\nregisters \"__switch_to\" to the blacklist on x86-64, because that mark is to\nprohibit user from inserting only kretprobe.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3d7e33825d8799115dd2495c9944badd3272a623",
      "tree": "869eeefa9dd88c622db199f636cd1785c6099947",
      "parents": [
        "9e367d859297b9377d65574f538cf52730e9eda8"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Thu Jul 19 01:48:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "jprobes: make jprobes a little safer for users\n\nI realise jprobes are a razor-blades-included type of interface, but that\ndoesn\u0027t mean we can\u0027t try and make them safer to use.  This guy I know once\nwrote code like this:\n\nstruct jprobe jp \u003d { .kp.symbol_name \u003d \"foo\", .entry \u003d \"jprobe_foo\" };\n\nAnd then his kernel exploded. Oops.\n\nThis patch adds an arch hook, arch_deref_entry_point() (I don\u0027t like it\neither) which takes the void * in a struct jprobe, and gives back the text\naddress that it represents.\n\nWe can then use that in register_jprobe() to check that the entry point we\u0027re\npassed is actually in the kernel text, rather than just some random value.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e367d859297b9377d65574f538cf52730e9eda8",
      "tree": "c7d4e7c3d1521810981d1623c5100a44600c603f",
      "parents": [
        "81eae375eceba481ca4c605d42913871f093f6d5"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Thu Jul 19 01:48:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "jprobes: remove JPROBE_ENTRY()\n\nAFAICT now that jprobe.entry is a void *, JPROBE_ENTRY doesn\u0027t do anything\nuseful - so remove it ..\n\nI\u0027ve left a do-nothing version so that out-of-tree jprobes code will still\ncompile without modifications.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81eae375eceba481ca4c605d42913871f093f6d5",
      "tree": "c3f1b345b4a42674ea4087aef336f0bf5be1df5e",
      "parents": [
        "f9acc8c7b35a100f3a9e0e6977f7807b0169f9a5"
      ],
      "author": {
        "name": "Michael Ellerman",
        "email": "michael@ellerman.id.au",
        "time": "Thu Jul 19 01:48:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Jul 19 10:04:44 2007 -0700"
      },
      "message": "jprobes: make struct jprobe.entry a void *\n\nCurrently jprobe.entry is a kprobe_opcode_t *, but that\u0027s a lie.  On some\nplatforms it doesn\u0027t point to an opcode at all, it points to a function\ndescriptor.\n\nIt\u0027s really a pointer to something that the arch code can turn into a function\nentry point.  And that\u0027s what actually happens, none of the generic code ever\nlooks at jprobe.entry, it\u0027s only ever dereferenced by arch code.\n\nSo just make it a void *.\n\nSigned-off-by: Michael Ellerman \u003cmichael@ellerman.id.au\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf8f6e5b3e51ee0c64c2d1350c70198ddc8ad3f7",
      "tree": "c48ebb92f836cfac58465eacc9658fbc2bac4783",
      "parents": [
        "4c4308cb93450989846ac49faeb6dab943e7657e"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Tue May 08 00:34:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:19 2007 -0700"
      },
      "message": "Kprobes: The ON/OFF knob thru debugfs\n\nThis patch provides a debugfs knob to turn kprobes on/off\n\no A new file /debug/kprobes/enabled indicates if kprobes is enabled or\n  not (default enabled)\no Echoing 0 to this file will disarm all installed probes\no Any new probe registration when disabled will register the probe but\n  not arm it. A message will be printed out in such a case.\no When a value 1 is echoed to the file, all probes (including ones\n  registered in the intervening period) will be enabled\no Unregistration will happen irrespective of whether probes are globally\n  enabled or not.\no Update Documentation/kprobes.txt to reflect these changes. While there\n  also update the doc to make it current.\n\nWe are also looking at providing sysrq key support to tie to the disabling\nfeature provided by this patch.\n\n[akpm@linux-foundation.org: Use bool like a bool!]\n[akpm@linux-foundation.org: add printk facility levels]\n[cornelia.huck@de.ibm.com: Add the missing arch_trampoline_kprobe() for s390]\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Srinivasa DS \u003csrinivasa@in.ibm.com\u003e\nSigned-off-by: Cornelia Huck \u003ccornelia.huck@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c4308cb93450989846ac49faeb6dab943e7657e",
      "tree": "c06092cae6f95a243cdd758d07491cf5fa24a1dd",
      "parents": [
        "6f716acd5fa20ae6a35ab29ae37fa9189e839ed5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue May 08 00:34:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:19 2007 -0700"
      },
      "message": "kprobes: kretprobes simplifications\n\n - consolidate duplicate code in all arch_prepare_kretprobe instances\n   into common code\n - replace various odd helpers that use hlist_for_each_entry to get\n   the first elemenet of a list with either a hlist_for_each_entry_save\n   or an opencoded access to the first element in the caller\n - inline add_rp_inst into it\u0027s only remaining caller\n - use kretprobe_inst_table_head instead of opencoding it\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0f95b7fc839bc3272b1bf2325d8748a649bd3534",
      "tree": "c5cbf5eabc5b58867d7a8949c412163e37182542",
      "parents": [
        "8f0c45cdf87dc9141e87b0ad2fc6fff216a95f79"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Tue May 08 00:28:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:08 2007 -0700"
      },
      "message": "Kprobes: print details of kretprobe on assertion failure\n\nIn certain cases like when the real return address can\u0027t be found or when\nthe number of tracked calls to a kretprobed function is less than the\nnumber of returns, we may not be able to find the correct return address\nafter processing a kretprobe.  Currently we just do a BUG_ON, but no\ninformation is provided about the actual failing kretprobe.\n\nPrint out details of the kretprobe before calling BUG().\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b3af29bf33bfe08c604769632799d27d56ae103",
      "tree": "e4709e8023b717b0b20632c11f393eda568a31c2",
      "parents": [
        "6de02123bf3e8baeee97fff7efc50bc192332804"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Tue May 08 00:26:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:03 2007 -0700"
      },
      "message": "Kprobes: Make kprobe.symbol_name const\n\nKprobes doesn\u0027t scribble the kprobe.symbol_name field.  Its only set by the\nmodule when registering the probe.  Modules that exercise good hygiene\nusing the \"const\" qualifier will see warnings...\n\n\twarning: assignment discards qualifiers from pointer target type\n\nMake struct kprobe.symbol_name const char *\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4c6c34a530b4d1c626f4ac0a884e0a9b849378c",
      "tree": "5705a4621b6668bced1969396465800256d76c76",
      "parents": [
        "c15bb296403f1ce448384d58742e0dc04f49d664"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "masami.hiramatsu.pt@hitachi.com",
        "time": "Wed Dec 06 20:38:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:38 2006 -0800"
      },
      "message": "[PATCH] kprobes: enable booster on the preemptible kernel\n\nWhen we are unregistering a kprobe-booster, we can\u0027t release its\ninstruction buffer immediately on the preemptive kernel, because some\nprocesses might be preempted on the buffer.  The freeze_processes() and\nthaw_processes() functions can clean most of processes up from the buffer.\nThere are still some non-frozen threads who have the PF_NOFREEZE flag.  If\nthose threads are sleeping (not preempted) at the known place outside the\nbuffer, we can ensure safety of freeing.\n\nHowever, the processing of this check routine takes a long time.  So, this\npatch introduces the garbage collection mechanism of insn_slot.  It also\nintroduces the \"dirty\" flag to free_insn_slot because of efficiency.\n\nThe \"clean\" instruction slots (dirty flag is cleared) are released\nimmediately.  But the \"dirty\" slots which are used by boosted kprobes, are\nmarked as garbages.  collect_garbage_slots() will be invoked to release\n\"dirty\" slots if there are more than INSNS_PER_PAGE garbage slots or if\nthere are no unused slots.\n\nCc: \"Keshavamurthy, Anil S\" \u003canil.s.keshavamurthy@intel.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: \"bibo,mao\" \u003cbibo.mao@intel.com\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Yumiko Sugita \u003cyumiko.sugita.yf@hitachi.com\u003e\nCc: Satoshi Oshima \u003csoshima@redhat.com\u003e\nCc: Hideo Aoki \u003chaoki@redhat.com\u003e\nSigned-off-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "99219a3fbc2dcf2eaa954f7b2ac27299fd7894cd",
      "tree": "895abde156c9fbeea9c5a87cfaaa411d4ad175c6",
      "parents": [
        "f2aa85a0ccd90110e76c6375535adc3ae358f971"
      ],
      "author": {
        "name": "bibo,mao",
        "email": "bibo.mao@intel.com",
        "time": "Mon Oct 02 02:17:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:16 2006 -0700"
      },
      "message": "[PATCH] kretprobe spinlock deadlock patch\n\nkprobe_flush_task() possibly calls kfree function during holding\nkretprobe_lock spinlock, if kfree function is probed by kretprobe that will\nincur spinlock deadlock.  This patch moves kfree function out scope of\nkretprobe_lock.\n\nSigned-off-by: bibo, mao \u003cbibo.mao@intel.com\u003e\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": "3a872d89baae821a0f6e2c1055d4b47650661137",
      "tree": "5ac6aa55e04960e02f25ff5079078f975957b1b3",
      "parents": [
        "782237a2418e2561a87c86a4832726931adce737"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Mon Oct 02 02:17:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:16 2006 -0700"
      },
      "message": "[PATCH] Kprobes: Make kprobe modules more portable\n\nIn an effort to make kprobe modules more portable, here is a patch that:\n\no Introduces the \"symbol_name\" field to struct kprobe.\n  The symbol-\u003eaddress resolution now happens in the kernel in an\n  architecture agnostic manner. 64-bit powerpc users no longer have\n  to specify the \".symbols\"\no Introduces the \"offset\" field to struct kprobe to allow a user to\n  specify an offset into a symbol.\no The legacy mechanism of specifying the kprobe.addr is still supported.\n  However, if both the kprobe.addr and kprobe.symbol_name are specified,\n  probe registration fails with an -EINVAL.\no The symbol resolution code uses kallsyms_lookup_name(). So\n  CONFIG_KPROBES now depends on CONFIG_KALLSYMS\no Apparantly kprobe modules were the only legitimate out-of-tree user of\n  the kallsyms_lookup_name() EXPORT. Now that the symbol resolution\n  happens in-kernel, remove the EXPORT as suggested by Christoph Hellwig\no Modify tcp_probe.c that uses the kprobe interface so as to make it\n  work on multiple platforms (in its earlier form, the code wouldn\u0027t\n  work, say, on powerpc)\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nSigned-off-by: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.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": "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": "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": "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": "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": "00d7c05ab168c10f9b520e07400923267bc04419",
      "tree": "5899743965a801e34e7dc6bfe59dba20ba023540",
      "parents": [
        "cda315aba34ff4fb66bbb2945b723688f3414a75"
      ],
      "author": {
        "name": "Keshavamurthy Anil S",
        "email": "anil.s.keshavamurthy@intel.com",
        "time": "Mon Dec 12 00:37:33 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:45 2005 -0800"
      },
      "message": "[PATCH] kprobes: no probes on critical path\n\nFor Kprobes critical path is the path from debug break exception handler\ntill the control reaches kprobes exception code.  No probes can be\nsupported in this path as we will end up in recursion.\n\nThis patch prevents this by moving the below function to safe __kprobes\nsection onto which no probes can be inserted.\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": "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": "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": "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": "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"
    }
  ]
}
