)]}'
{
  "log": [
    {
      "commit": "cbc91f71b51b8335f1fc7ccfca8011f31a717367",
      "tree": "31bc32a4ee512c9056c93e8c46d58bc217d31bc2",
      "parents": [
        "7396fa818d6278694a44840f389ddc40a3269a9a"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Wed Apr 11 16:05:27 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Apr 14 13:25:48 2012 +0200"
      },
      "message": "uprobes/core: Decrement uprobe count before the pages are unmapped\n\nUprobes has a callback (uprobe_munmap()) in the unmap path to\nmaintain the uprobes count.\n\nIn the exit path this callback gets called in unlink_file_vma().\nHowever by the time unlink_file_vma() is called, the pages would\nhave been unmapped (in unmap_vmas()) and the task-\u003erss_stat counts\naccounted (in zap_pte_range()).\n\nIf the exiting process has probepoints, uprobe_munmap() checks if\nthe breakpoint instruction was around before decrementing the probe\ncount.\n\nThis results in a file backed page being reread by uprobe_munmap()\nand hence it does not find the breakpoint.\n\nThis patch fixes this problem by moving the callback to\nunmap_single_vma(). Since unmap_single_vma() may not unmap the\ncomplete vma, add start and end parameters to uprobe_munmap().\n\nThis bug became apparent courtesy of commit c3f0327f8e9d\n(\"mm: add rss counters consistency check\").\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Linux-mm \u003clinux-mm@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120411103527.23245.9835.sendpatchset@srdronam.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "7396fa818d6278694a44840f389ddc40a3269a9a",
      "tree": "9d6cc56c1dc8475ab9096b23914982d373aa126d",
      "parents": [
        "6ac1ef482d7ae0c690f1640bf6eb818ff9a2d91e"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Wed Apr 11 16:05:16 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Apr 14 13:25:47 2012 +0200"
      },
      "message": "uprobes/core: Make background page replacement logic account for rss_stat counters\n\nBackground page replacement logic adds a new anonymous page\ninstead of a file backed (while inserting a breakpoint) /\nanonymous page (while removing a breakpoint).\n\nHence the uprobes logic should take care to update the\ntask-\u003ess_stat counters accordingly.\n\nThis bug became apparent courtesy of commit c3f0327f8e9d\n(\"mm: add rss counters consistency check\").\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Linux-mm \u003clinux-mm@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120411103516.23245.2700.sendpatchset@srdronam.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "682968e0c425c60f0dde37977e5beb2b12ddc4cc",
      "tree": "875eb289aa0e08189b2cf7dc99ee522f91e647e7",
      "parents": [
        "d4b3b6384f98f8692ad0209891ccdbc7e78bbefe"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Fri Mar 30 23:56:46 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Mar 31 11:50:02 2012 +0200"
      },
      "message": "uprobes/core: Optimize probe hits with the help of a counter\n\nMaintain a per-mm counter: number of uprobes that are inserted\non this process address space.\n\nThis counter can be used at probe hit time to determine if we\nneed a lookup in the uprobes rbtree. Everytime a probe gets\ninserted successfully, the probe count is incremented and\neverytime a probe gets removed, the probe count is decremented.\n\nThe new uprobe_munmap hook ensures the count is correct on a\nunmap or remap of a region. We expect that once a\nuprobe_munmap() is called, the vma goes away.  So\nuprobe_unregister() finding a probe to unregister would either\nmean unmap event hasnt occurred yet or a mmap event on the same\nexecutable file occured after a unmap event.\n\nAdditionally, uprobe_mmap hook now also gets called:\n\n a. on every executable vma that is COWed at fork.\n b. a vma of interest is newly mapped; breakpoint insertion also\n    happens at the required address.\n\nOn process creation, make sure the probes count in the child is\nset correctly.\n\nSpecial cases that are taken care include:\n\n a. mremap\n b. VM_DONTCOPY vmas on fork()\n c. insertion/removal races in the parent during fork().\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Linux-mm \u003clinux-mm@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120330182646.10018.85805.sendpatchset@srdronam.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "d4b3b6384f98f8692ad0209891ccdbc7e78bbefe",
      "tree": "29c703af306a3b0e42d7ee3bdfce58db78d702b7",
      "parents": [
        "0326f5a94ddea33fa331b2519f4172f4fb387baa"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Fri Mar 30 23:56:31 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Mar 31 11:50:01 2012 +0200"
      },
      "message": "uprobes/core: Allocate XOL slots for uprobes use\n\nUprobes executes the original instruction at a probed location\nout of line. For this, we allocate a page (per mm) upon the\nfirst uprobe hit, in the process user address space, divide it\ninto slots that are used to store the actual instructions to be\nsinglestepped. These slots are known as xol (execution out of\nline) slots.\n\nCare is taken to ensure that the allocation is in an unmapped\narea as close to the top of the user address space as possible,\nwith appropriate permission settings to keep selinux like\nframeworks happy.\n\nUpon a uprobe hit, a free slot is acquired, and is released\nafter the singlestep completes.\n\nLots of improvements courtesy suggestions/inputs from Peter and\nOleg.\n\n[ Folded a fix for build issue on powerpc fixed and reported by\n  Stephen Rothwell. ]\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Linux-mm \u003clinux-mm@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120330182631.10018.48175.sendpatchset@srdronam.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "0326f5a94ddea33fa331b2519f4172f4fb387baa",
      "tree": "5485c637754a126c90852e5285842e8462d2826a",
      "parents": [
        "ef15eda98217f5183f457e7a2de8b79555ef908b"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Tue Mar 13 23:30:11 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 14 07:41:36 2012 +0100"
      },
      "message": "uprobes/core: Handle breakpoint and singlestep exceptions\n\nUprobes uses exception notifiers to get to know if a thread hit\na breakpoint or a singlestep exception.\n\nWhen a thread hits a uprobe or is singlestepping post a uprobe\nhit, the uprobe exception notifier sets its TIF_UPROBE bit,\nwhich will then be checked on its return to userspace path\n(do_notify_resume() -\u003euprobe_notify_resume()), where the\nconsumers handlers are run (in task context) based on the\ndefined filters.\n\nUprobe hits are thread specific and hence we need to maintain\ninformation about if a task hit a uprobe, what uprobe was hit,\nthe slot where the original instruction was copied for xol so\nthat it can be singlestepped with appropriate fixups.\n\nIn some cases, special care is needed for instructions that are\nexecuted out of line (xol). These are architecture specific\nartefacts, such as handling RIP relative instructions on x86_64.\n\nSince the instruction at which the uprobe was inserted is\nexecuted out of line, architecture specific fixups are added so\nthat the thread continues normal execution in the presence of a\nuprobe.\n\nPostpone the signals until we execute the probed insn.\npost_xol() path does a recalc_sigpending() before return to\nuser-mode, this ensures the signal can\u0027t be lost.\n\nUprobes relies on DIE_DEBUG notification to notify if a\nsinglestep is complete.\n\nAdds x86 specific uprobe exception notifiers and appropriate\nhooks needed to determine a uprobe hit and subsequent post\nprocessing.\n\nAdd requisite x86 fixups for xol for uprobes. Specific cases\nneeding fixups include relative jumps (x86_64), calls, etc.\n\nWhere possible, we check and skip singlestepping the\nbreakpointed instructions. For now we skip single byte as well\nas few multibyte nop instructions. However this can be extended\nto other instructions too.\n\nCredits to Oleg Nesterov for suggestions/patches related to\nsignal, breakpoint, singlestep handling code.\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Linux-mm \u003clinux-mm@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120313180011.29771.89027.sendpatchset@srdronam.in.ibm.com\n[ Performed various cleanliness edits ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5cb4ac3a583d4ee18c8682ab857e093c4a0d0895",
      "tree": "f11a73e9fe8d2666008f799433fde243cddd1757",
      "parents": [
        "e3343e6a2819ff5d0dfc4bb5c9fb7f9a4d04da73"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Mon Mar 12 14:55:45 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 13 06:22:21 2012 +0100"
      },
      "message": "uprobes/core: Rename bkpt to swbp\n\nbkpt doesnt seem to be a correct abbrevation for breakpoint.\nChoice was between bp and breakpoint. Since bp can refer to\nthings other than breakpoint, use swbp to refer to breakpoints.\n\nThis is pure cleanup, no functional change intended.\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Linux-mm \u003clinux-mm@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120312092545.5379.91251.sendpatchset@srdronam.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e3343e6a2819ff5d0dfc4bb5c9fb7f9a4d04da73",
      "tree": "4c391fa0cb4408e9fb2e8448c410fc54b9a8abe1",
      "parents": [
        "900771a483ef28915a48066d7895d8252315607a"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Mon Mar 12 14:55:30 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 13 06:22:20 2012 +0100"
      },
      "message": "uprobes/core: Make order of function parameters consistent across functions\n\nIf a function takes struct uprobe or struct arch_uprobe, then it\nis passed as the first parameter.\n\nThis is pure cleanup, no functional change intended.\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Linux-mm \u003clinux-mm@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120312092530.5379.18394.sendpatchset@srdronam.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "900771a483ef28915a48066d7895d8252315607a",
      "tree": "08941df642cc6bb61ef764b3344c87790c831145",
      "parents": [
        "35aa621b5ab9d08767f7bc8d209b696df281d715"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Mon Mar 12 14:55:14 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 13 06:22:20 2012 +0100"
      },
      "message": "uprobes/core: Make macro names consistent\n\nRename macros that refer to individual uprobe to start with\nUPROBE_ instead of UPROBES_.\n\nThis is pure cleanup, no functional change intended.\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Linux-mm \u003clinux-mm@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/20120312092514.5379.36595.sendpatchset@srdronam.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "35aa621b5ab9d08767f7bc8d209b696df281d715",
      "tree": "9de0a99dba4721351817b5224e54fdb8b6c5e491",
      "parents": [
        "3ff54efdfaace9e9b2b7c1959a865be6b91de96c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 22 11:37:29 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 22 11:37:29 2012 +0100"
      },
      "message": "uprobes: Update copyright notices\n\nAdd Peter Zijlstra\u0027s copyright to the uprobes code, whose\ncontributions to the uprobes code are not visible in the Git\nhistory, because they were backmerged.\n\nAlso update existing copyright notices to the year 2012.\n\nAcked-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/n/tip-vjqxst502pc1efz7ah8cyht4@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3ff54efdfaace9e9b2b7c1959a865be6b91de96c",
      "tree": "6218c7b40bd80704d059d5f3fa434974e675b070",
      "parents": [
        "96379f60075c75b261328aa7830ef8aa158247ac"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Wed Feb 22 14:46:02 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 22 11:26:09 2012 +0100"
      },
      "message": "uprobes/core: Move insn to arch specific structure\n\nFew cleanups suggested by Ingo Molnar.\n\n- Rename struct uprobe_arch_info to struct arch_uprobe.\n- Move insn from struct uprobe to struct arch_uprobe.\n- Make arch specific uprobe functions to accept struct arch_uprobe\n  instead of  struct uprobe.\n- Move struct uprobe to kernel/uprobes.c from include/linux/uprobes.h\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Josh Stone \u003cjistone@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20120222091602.15880.40249.sendpatchset@srdronam.in.ibm.com\n[ Made various small improvements ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "96379f60075c75b261328aa7830ef8aa158247ac",
      "tree": "c9aa431293c4a61ae30a4b34f0025ab30afed08b",
      "parents": [
        "04a3d984d32e47983770d314cdb4e4d8f38fccb7"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Wed Feb 22 14:45:49 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 22 11:26:08 2012 +0100"
      },
      "message": "uprobes/core: Remove uprobe_opcode_sz\n\nuprobe_opcode_sz refers to the smallest instruction size for\nthat architecture. UPROBES_BKPT_INSN_SIZE refers to the size of\nthe breakpoint instruction for that architecture.\n\nFor now we are assuming that both uprobe_opcode_sz and\nUPROBES_BKPT_INSN_SIZE are the same for all archs and hence\nremoving uprobe_opcode_sz in favour of UPROBES_BKPT_INSN_SIZE.\n\nHowever if we have to support architectures where the smallest\ninstruction size is different from the size of breakpoint\ninstruction, we may have to re-introduce uprobe_opcode_sz.\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@linux.vnet.ibm.com\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Josh Stone \u003cjistone@redhat.com\u003e\nLink: http://lkml.kernel.org/r/20120222091549.15880.67020.sendpatchset@srdronam.in.ibm.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a5f4374a9610fd7286c2164d4e680436727eff71",
      "tree": "8ccabfd8afe9f58a847ab80b8a6a10eee08009a8",
      "parents": [
        "7b2d81d48a2d8e37efb6ce7b4d5ef58822b30d89"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 22 11:01:49 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 22 11:08:00 2012 +0100"
      },
      "message": "uprobes: Move to kernel/events/\n\nConsolidate the uprobes code under kernel/events/, where the various\ncore kernel event handling routines live.\n\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nLink: http://lkml.kernel.org/n/tip-biuyhhwohxgbp2vzbap5yr8o@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7b2d81d48a2d8e37efb6ce7b4d5ef58822b30d89",
      "tree": "23987f194dcd91b0ba6d27f7f6e08c178797488e",
      "parents": [
        "2b144498350860b6ee9dc57ff27a93ad488de5dc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 17 09:27:41 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 17 10:18:07 2012 +0100"
      },
      "message": "uprobes/core: Clean up, refactor and improve the code\n\nMake the uprobes code readable to me:\n\n - improve the Kconfig text so that a mere mortal gets some idea\n   what CONFIG_UPROBES\u003dy is really about\n\n - do trivial renames to standardize around the uprobes_*() namespace\n\n - clean up and simplify various code flow details\n\n - separate basic blocks of functionality\n\n - line break artifact and white space related removal\n\n - use standard local varible definition blocks\n\n - use vertical spacing to make things more readable\n\n - remove unnecessary volatile\n\n - restructure comment blocks to make them more uniform and\n   more readable in general\n\nCc: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nCc: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nLink: http://lkml.kernel.org/n/tip-ewbwhb8o6navvllsauu7k07p@git.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2b144498350860b6ee9dc57ff27a93ad488de5dc",
      "tree": "029863b057f7a3f6b8da1c081e3fd4d6c0342149",
      "parents": [
        "d1e169da9e20efc0762da6ec160dd7740d0103f5"
      ],
      "author": {
        "name": "Srikar Dronamraju",
        "email": "srikar@linux.vnet.ibm.com",
        "time": "Thu Feb 09 14:56:42 2012 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Feb 17 10:00:01 2012 +0100"
      },
      "message": "uprobes, mm, x86: Add the ability to install and remove uprobes breakpoints\n\nAdd uprobes support to the core kernel, with x86 support.\n\nThis commit adds the kernel facilities, the actual uprobes\nuser-space ABI and perf probe support comes in later commits.\n\nGeneral design:\n\nUprobes are maintained in an rb-tree indexed by inode and offset\n(the offset here is from the start of the mapping). For a unique\n(inode, offset) tuple, there can be at most one uprobe in the\nrb-tree.\n\nSince the (inode, offset) tuple identifies a unique uprobe, more\nthan one user may be interested in the same uprobe. This provides\nthe ability to connect multiple \u0027consumers\u0027 to the same uprobe.\n\nEach consumer defines a handler and a filter (optional). The\n\u0027handler\u0027 is run every time the uprobe is hit, if it matches the\n\u0027filter\u0027 criteria.\n\nThe first consumer of a uprobe causes the breakpoint to be\ninserted at the specified address and subsequent consumers are\nappended to this list.  On subsequent probes, the consumer gets\nappended to the existing list of consumers. The breakpoint is\nremoved when the last consumer unregisters. For all other\nunregisterations, the consumer is removed from the list of\nconsumers.\n\nGiven a inode, we get a list of the mms that have mapped the\ninode. Do the actual registration if mm maps the page where a\nprobe needs to be inserted/removed.\n\nWe use a temporary list to walk through the vmas that map the\ninode.\n\n- The number of maps that map the inode, is not known before we\n  walk the rmap and keeps changing.\n- extending vm_area_struct wasn\u0027t recommended, it\u0027s a\n  size-critical data structure.\n- There can be more than one maps of the inode in the same mm.\n\nWe add callbacks to the mmap methods to keep an eye on text vmas\nthat are of interest to uprobes.  When a vma of interest is mapped,\nwe insert the breakpoint at the right address.\n\nUprobe works by replacing the instruction at the address defined\nby (inode, offset) with the arch specific breakpoint\ninstruction. We save a copy of the original instruction at the\nuprobed address.\n\nThis is needed for:\n\n a. executing the instruction out-of-line (xol).\n b. instruction analysis for any subsequent fixups.\n c. restoring the instruction back when the uprobe is unregistered.\n\nWe insert or delete a breakpoint instruction, and this\nbreakpoint instruction is assumed to be the smallest instruction\navailable on the platform. For fixed size instruction platforms\nthis is trivially true, for variable size instruction platforms\nthe breakpoint instruction is typically the smallest (often a\nsingle byte).\n\nWriting the instruction is done by COWing the page and changing\nthe instruction during the copy, this even though most platforms\nallow atomic writes of the breakpoint instruction. This also\nmirrors the behaviour of a ptrace() memory write to a PRIVATE\nfile map.\n\nThe core worker is derived from KSM\u0027s replace_page() logic.\n\nIn essence, similar to KSM:\n\n a. allocate a new page and copy over contents of the page that\n    has the uprobed vaddr\n b. modify the copy and insert the breakpoint at the required\n    address\n c. switch the original page with the copy containing the\n    breakpoint\n d. flush page tables.\n\nreplace_page() is being replicated here because of some minor\nchanges in the type of pages and also because Hugh Dickins had\nplans to improve replace_page() for KSM specific work.\n\nInstruction analysis on x86 is based on instruction decoder and\ndetermines if an instruction can be probed and determines the\nnecessary fixups after singlestep.  Instruction analysis is done\nat probe insertion time so that we avoid having to repeat the\nsame analysis every time a probe is hit.\n\nA lot of code here is due to the improvement/suggestions/inputs\nfrom Peter Zijlstra.\n\nChangelog:\n\n(v10):\n - Add code to clear REX.B prefix as suggested by Denys Vlasenko\n   and Masami Hiramatsu.\n\n(v9):\n - Use insn_offset_modrm as suggested by Masami Hiramatsu.\n\n(v7):\n\n Handle comments from Peter Zijlstra:\n\n - Dont take reference to inode. (expect inode to uprobe_register to be sane).\n - Use PTR_ERR to set the return value.\n - No need to take reference to inode.\n - use PTR_ERR to return error value.\n - register and uprobe_unregister share code.\n\n(v5):\n\n - Modified del_consumer as per comments from Peter.\n - Drop reference to inode before dropping reference to uprobe.\n - Use i_size_read(inode) instead of inode-\u003ei_size.\n - Ensure uprobe-\u003econsumers is NULL, before __uprobe_unregister() is called.\n - Includes errno.h as recommended by Stephen Rothwell to fix a build issue\n   on sparc defconfig\n - Remove restrictions while unregistering.\n - Earlier code leaked inode references under some conditions while\n   registering/unregistering.\n - Continue the vma-rmap walk even if the intermediate vma doesnt\n   meet the requirements.\n - Validate the vma found by find_vma before inserting/removing the\n   breakpoint\n - Call del_consumer under mutex_lock.\n - Use hash locks.\n - Handle mremap.\n - Introduce find_least_offset_node() instead of close match logic in\n   find_uprobe\n - Uprobes no more depends on MM_OWNER; No reference to task_structs\n   while inserting/removing a probe.\n - Uses read_mapping_page instead of grab_cache_page so that the pages\n   have valid content.\n - pass NULL to get_user_pages for the task parameter.\n - call SetPageUptodate on the new page allocated in write_opcode.\n - fix leaking a reference to the new page under certain conditions.\n - Include Instruction Decoder if Uprobes gets defined.\n - Remove const attributes for instruction prefix arrays.\n - Uses mm_context to know if the application is 32 bit.\n\nSigned-off-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nAlso-written-by: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nReviewed-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@infradead.org\u003e\nCc: Anton Arapov \u003canton@redhat.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Denys Vlasenko \u003cvda.linux@googlemail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linux-mm \u003clinux-mm@kvack.org\u003e\nLink: http://lkml.kernel.org/r/20120209092642.GE16600@linux.vnet.ibm.com\n[ Made various small edits to the commit log ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ]
}
