All of lore.kernel.org
 help / color / mirror / Atom feed
From: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>, Steven Rostedt <rostedt@goodmis.org>,
	Linux-mm <linux-mm@kvack.org>,
	Arnaldo Carvalho de Melo <acme@infradead.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
	Hugh Dickins <hughd@google.com>,
	Christoph Hellwig <hch@infradead.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Thomas Gleixner <tglx@linutronix.de>,
	Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
	Oleg Nesterov <oleg@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Jim Keniston <jkenisto@linux.vnet.ibm.com>,
	Roland McGrath <roland@hack.frob.com>,
	Andi Kleen <andi@firstfloor.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v5 3.1.0-rc4-tip 4/26]   uprobes: Define hooks for mmap/munmap.
Date: Tue, 27 Sep 2011 18:38:50 +0530	[thread overview]
Message-ID: <20110927130850.GD3685@linux.vnet.ibm.com> (raw)
In-Reply-To: <1317123435.15383.33.camel@twins>

* Peter Zijlstra <peterz@infradead.org> [2011-09-27 13:37:15]:

> On Mon, 2011-09-26 at 21:14 +0530, Srikar Dronamraju wrote:
> > 
> > > > +
> > > > +/*
> > > > + * Called from mmap_region.
> > > > + * called with mm->mmap_sem acquired.
> > > > + *
> > > > + * Return -ve no if we fail to insert probes and we cannot
> > > > + * bail-out.
> > > > + * Return 0 otherwise. i.e :
> > > > + * - successful insertion of probes
> > > > + * - (or) no possible probes to be inserted.
> > > > + * - (or) insertion of probes failed but we can bail-out.
> > > > + */
> > > > +int mmap_uprobe(struct vm_area_struct *vma)
> > > > +{
> > > > +   struct list_head tmp_list;
> > > > +   struct uprobe *uprobe, *u;
> > > > +   struct inode *inode;
> > > > +   int ret = 0;
> > > > +
> > > > +   if (!valid_vma(vma))
> > > > +           return ret;     /* Bail-out */
> > > > +
> > > > +   inode = igrab(vma->vm_file->f_mapping->host);
> > > > +   if (!inode)
> > > > +           return ret;
> > > > +
> > > > +   INIT_LIST_HEAD(&tmp_list);
> > > > +   mutex_lock(&uprobes_mmap_mutex);
> > > > +   build_probe_list(inode, &tmp_list);
> > > > +   list_for_each_entry_safe(uprobe, u, &tmp_list, pending_list) {
> > > > +           loff_t vaddr;
> > > > +
> > > > +           list_del(&uprobe->pending_list);
> > > > +           if (!ret && uprobe->consumers) {
> > > > +                   vaddr = vma->vm_start + uprobe->offset;
> > > > +                   vaddr -= vma->vm_pgoff << PAGE_SHIFT;
> > > > +                   if (vaddr < vma->vm_start || vaddr >= vma->vm_end)
> > > > +                           continue;
> > > > +                   ret = install_breakpoint(vma->vm_mm, uprobe);
> > > > +
> > > > +                   if (ret && (ret == -ESRCH || ret == -EEXIST))
> > > > +                           ret = 0;
> > > > +           }
> > > > +           put_uprobe(uprobe);
> > > > +   }
> > > > +
> > > > +   mutex_unlock(&uprobes_mmap_mutex);
> > > > +   iput(inode);
> > > > +   return ret;
> > > > +}
> > > > +
> > > > +static void dec_mm_uprobes_count(struct vm_area_struct *vma,
> > > > +           struct inode *inode)
> > > > +{
> > > > +   struct uprobe *uprobe;
> > > > +   struct rb_node *n;
> > > > +   unsigned long flags;
> > > > +
> > > > +   n = uprobes_tree.rb_node;
> > > > +   spin_lock_irqsave(&uprobes_treelock, flags);
> > > > +   uprobe = __find_uprobe(inode, 0, &n);
> > > > +
> > > > +   /*
> > > > +    * If indeed there is a probe for the inode and with offset zero,
> > > > +    * then lets release its reference. (ref got thro __find_uprobe)
> > > > +    */
> > > > +   if (uprobe)
> > > > +           put_uprobe(uprobe);
> > > > +   for (; n; n = rb_next(n)) {
> > > > +           loff_t vaddr;
> > > > +
> > > > +           uprobe = rb_entry(n, struct uprobe, rb_node);
> > > > +           if (uprobe->inode != inode)
> > > > +                   break;
> > > > +           vaddr = vma->vm_start + uprobe->offset;
> > > > +           vaddr -= vma->vm_pgoff << PAGE_SHIFT;
> > > > +           if (vaddr < vma->vm_start || vaddr >= vma->vm_end)
> > > > +                   continue;
> > > > +           atomic_dec(&vma->vm_mm->mm_uprobes_count);
> > > > +   }
> > > > +   spin_unlock_irqrestore(&uprobes_treelock, flags);
> > > > +}
> > > > +
> > > > +/*
> > > > + * Called in context of a munmap of a vma.
> > > > + */
> > > > +void munmap_uprobe(struct vm_area_struct *vma)
> > > > +{
> > > > +   struct inode *inode;
> > > > +
> > > > +   if (!valid_vma(vma))
> > > > +           return;         /* Bail-out */
> > > > +
> > > > +   if (!atomic_read(&vma->vm_mm->mm_uprobes_count))
> > > > +           return;
> > > > +
> > > > +   inode = igrab(vma->vm_file->f_mapping->host);
> > > > +   if (!inode)
> > > > +           return;
> > > > +
> > > > +   dec_mm_uprobes_count(vma, inode);
> > > > +   iput(inode);
> > > > +   return;
> > > > +}
> > > 
> > > One has to wonder why mmap_uprobe() can be one function but
> > > munmap_uprobe() cannot.
> > > 
> > 
> > I didnt understand this comment, Can you please elaborate?
> > mmap_uprobe uses build_probe_list and munmap_uprobe uses
> > dec_mm_uprobes_count. 
> 
> Ah, I missed build_probe_list(), but I didn't see a reason for the
> existence of dec_mm_uprobe_count(), the name doesn't make sense and the
> content is 'small' enough to just put in munmap_uprobe.
> 
> To me it looks similar to the list iteration you have in mmap_uprobe(),
> you didn't split that out into another function either.

Hmm, For me whats done in dec_mm_uprobe_count() is similar to whats
done in build_probe_list(), just that build_probe_list does a atomic_inc
+ list_add while dec_mm_uprobe_count() does a atomic_dec.

When I kept dec_mm_uprobe_count() inside munmap_uprobe(), I found most
of the code nested too deep. Hence carved it out as a separate function.

I open to suggestions for dec_mm_uprobe_count()

-- 
Thanks and Regards
Srikar

WARNING: multiple messages have this Message-ID (diff)
From: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>, Steven Rostedt <rostedt@goodmis.org>,
	Linux-mm <linux-mm@kvack.org>,
	Arnaldo Carvalho de Melo <acme@infradead.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
	Hugh Dickins <hughd@google.com>,
	Christoph Hellwig <hch@infradead.org>,
	Jonathan Corbet <corbet@lwn.net>,
	Thomas Gleixner <tglx@linutronix.de>,
	Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
	Oleg Nesterov <oleg@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Jim Keniston <jkenisto@linux.vnet.ibm.com>,
	Roland McGrath <roland@hack.frob.com>,
	Andi Kleen <andi@firstfloor.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v5 3.1.0-rc4-tip 4/26]   uprobes: Define hooks for mmap/munmap.
Date: Tue, 27 Sep 2011 18:38:50 +0530	[thread overview]
Message-ID: <20110927130850.GD3685@linux.vnet.ibm.com> (raw)
In-Reply-To: <1317123435.15383.33.camel@twins>

* Peter Zijlstra <peterz@infradead.org> [2011-09-27 13:37:15]:

> On Mon, 2011-09-26 at 21:14 +0530, Srikar Dronamraju wrote:
> > 
> > > > +
> > > > +/*
> > > > + * Called from mmap_region.
> > > > + * called with mm->mmap_sem acquired.
> > > > + *
> > > > + * Return -ve no if we fail to insert probes and we cannot
> > > > + * bail-out.
> > > > + * Return 0 otherwise. i.e :
> > > > + * - successful insertion of probes
> > > > + * - (or) no possible probes to be inserted.
> > > > + * - (or) insertion of probes failed but we can bail-out.
> > > > + */
> > > > +int mmap_uprobe(struct vm_area_struct *vma)
> > > > +{
> > > > +   struct list_head tmp_list;
> > > > +   struct uprobe *uprobe, *u;
> > > > +   struct inode *inode;
> > > > +   int ret = 0;
> > > > +
> > > > +   if (!valid_vma(vma))
> > > > +           return ret;     /* Bail-out */
> > > > +
> > > > +   inode = igrab(vma->vm_file->f_mapping->host);
> > > > +   if (!inode)
> > > > +           return ret;
> > > > +
> > > > +   INIT_LIST_HEAD(&tmp_list);
> > > > +   mutex_lock(&uprobes_mmap_mutex);
> > > > +   build_probe_list(inode, &tmp_list);
> > > > +   list_for_each_entry_safe(uprobe, u, &tmp_list, pending_list) {
> > > > +           loff_t vaddr;
> > > > +
> > > > +           list_del(&uprobe->pending_list);
> > > > +           if (!ret && uprobe->consumers) {
> > > > +                   vaddr = vma->vm_start + uprobe->offset;
> > > > +                   vaddr -= vma->vm_pgoff << PAGE_SHIFT;
> > > > +                   if (vaddr < vma->vm_start || vaddr >= vma->vm_end)
> > > > +                           continue;
> > > > +                   ret = install_breakpoint(vma->vm_mm, uprobe);
> > > > +
> > > > +                   if (ret && (ret == -ESRCH || ret == -EEXIST))
> > > > +                           ret = 0;
> > > > +           }
> > > > +           put_uprobe(uprobe);
> > > > +   }
> > > > +
> > > > +   mutex_unlock(&uprobes_mmap_mutex);
> > > > +   iput(inode);
> > > > +   return ret;
> > > > +}
> > > > +
> > > > +static void dec_mm_uprobes_count(struct vm_area_struct *vma,
> > > > +           struct inode *inode)
> > > > +{
> > > > +   struct uprobe *uprobe;
> > > > +   struct rb_node *n;
> > > > +   unsigned long flags;
> > > > +
> > > > +   n = uprobes_tree.rb_node;
> > > > +   spin_lock_irqsave(&uprobes_treelock, flags);
> > > > +   uprobe = __find_uprobe(inode, 0, &n);
> > > > +
> > > > +   /*
> > > > +    * If indeed there is a probe for the inode and with offset zero,
> > > > +    * then lets release its reference. (ref got thro __find_uprobe)
> > > > +    */
> > > > +   if (uprobe)
> > > > +           put_uprobe(uprobe);
> > > > +   for (; n; n = rb_next(n)) {
> > > > +           loff_t vaddr;
> > > > +
> > > > +           uprobe = rb_entry(n, struct uprobe, rb_node);
> > > > +           if (uprobe->inode != inode)
> > > > +                   break;
> > > > +           vaddr = vma->vm_start + uprobe->offset;
> > > > +           vaddr -= vma->vm_pgoff << PAGE_SHIFT;
> > > > +           if (vaddr < vma->vm_start || vaddr >= vma->vm_end)
> > > > +                   continue;
> > > > +           atomic_dec(&vma->vm_mm->mm_uprobes_count);
> > > > +   }
> > > > +   spin_unlock_irqrestore(&uprobes_treelock, flags);
> > > > +}
> > > > +
> > > > +/*
> > > > + * Called in context of a munmap of a vma.
> > > > + */
> > > > +void munmap_uprobe(struct vm_area_struct *vma)
> > > > +{
> > > > +   struct inode *inode;
> > > > +
> > > > +   if (!valid_vma(vma))
> > > > +           return;         /* Bail-out */
> > > > +
> > > > +   if (!atomic_read(&vma->vm_mm->mm_uprobes_count))
> > > > +           return;
> > > > +
> > > > +   inode = igrab(vma->vm_file->f_mapping->host);
> > > > +   if (!inode)
> > > > +           return;
> > > > +
> > > > +   dec_mm_uprobes_count(vma, inode);
> > > > +   iput(inode);
> > > > +   return;
> > > > +}
> > > 
> > > One has to wonder why mmap_uprobe() can be one function but
> > > munmap_uprobe() cannot.
> > > 
> > 
> > I didnt understand this comment, Can you please elaborate?
> > mmap_uprobe uses build_probe_list and munmap_uprobe uses
> > dec_mm_uprobes_count. 
> 
> Ah, I missed build_probe_list(), but I didn't see a reason for the
> existence of dec_mm_uprobe_count(), the name doesn't make sense and the
> content is 'small' enough to just put in munmap_uprobe.
> 
> To me it looks similar to the list iteration you have in mmap_uprobe(),
> you didn't split that out into another function either.

Hmm, For me whats done in dec_mm_uprobe_count() is similar to whats
done in build_probe_list(), just that build_probe_list does a atomic_inc
+ list_add while dec_mm_uprobe_count() does a atomic_dec.

When I kept dec_mm_uprobe_count() inside munmap_uprobe(), I found most
of the code nested too deep. Hence carved it out as a separate function.

I open to suggestions for dec_mm_uprobe_count()

-- 
Thanks and Regards
Srikar

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-09-27 13:24 UTC|newest]

Thread overview: 330+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-20 11:59 [PATCH v5 3.1.0-rc4-tip 0/26] Uprobes patchset with perf probe support Srikar Dronamraju
2011-09-20 11:59 ` Srikar Dronamraju
2011-09-20 11:59 ` [PATCH v5 3.1.0-rc4-tip 1/26] uprobes: Auxillary routines to insert, find, delete uprobes Srikar Dronamraju
2011-09-20 11:59   ` Srikar Dronamraju
2011-09-20 15:42   ` Stefan Hajnoczi
2011-09-20 15:42     ` Stefan Hajnoczi
2011-09-26 11:18     ` Peter Zijlstra
2011-09-26 11:18       ` Peter Zijlstra
2011-09-26 11:59       ` Srikar Dronamraju
2011-09-26 11:59         ` Srikar Dronamraju
2011-09-26 11:18   ` Peter Zijlstra
2011-09-26 11:18     ` Peter Zijlstra
2011-09-26 12:02     ` Srikar Dronamraju
2011-09-26 12:02       ` Srikar Dronamraju
2011-09-26 13:35   ` Peter Zijlstra
2011-09-26 13:35     ` Peter Zijlstra
2011-09-26 16:19     ` Srikar Dronamraju
2011-09-26 16:19       ` Srikar Dronamraju
2011-09-20 12:00 ` [PATCH v5 3.1.0-rc4-tip 2/26] Uprobes: Allow multiple consumers for an uprobe Srikar Dronamraju
2011-09-20 12:00   ` Srikar Dronamraju
2011-09-26 12:29   ` Peter Zijlstra
2011-09-26 12:29     ` Peter Zijlstra
2011-09-20 12:00 ` [PATCH v5 3.1.0-rc4-tip 3/26] Uprobes: register/unregister probes Srikar Dronamraju
2011-09-20 12:00   ` Srikar Dronamraju
2011-09-20 16:50   ` Stefan Hajnoczi
2011-09-20 16:50     ` Stefan Hajnoczi
2011-09-21  4:07     ` Srikar Dronamraju
2011-09-21  4:07       ` Srikar Dronamraju
2011-09-26 13:15   ` Peter Zijlstra
2011-09-26 13:15     ` Peter Zijlstra
2011-09-26 13:23     ` Srikar Dronamraju
2011-09-26 13:23       ` Srikar Dronamraju
2011-10-03 12:46   ` Oleg Nesterov
2011-10-03 12:46     ` Oleg Nesterov
2011-10-05 17:04     ` Srikar Dronamraju
2011-10-05 17:04       ` Srikar Dronamraju
2011-10-05 18:50       ` Oleg Nesterov
2011-10-05 18:50         ` Oleg Nesterov
2011-10-06  6:51         ` Srikar Dronamraju
2011-10-06  6:51           ` Srikar Dronamraju
2011-10-07 17:03           ` Oleg Nesterov
2011-10-07 17:03             ` Oleg Nesterov
2011-09-20 12:00 ` [PATCH v5 3.1.0-rc4-tip 4/26] uprobes: Define hooks for mmap/munmap Srikar Dronamraju
2011-09-20 12:00   ` Srikar Dronamraju
2011-09-20 17:03   ` Stefan Hajnoczi
2011-09-20 17:03     ` Stefan Hajnoczi
2011-09-21  4:03     ` Srikar Dronamraju
2011-09-21  4:03       ` Srikar Dronamraju
2011-09-26 13:53   ` Peter Zijlstra
2011-09-26 13:53     ` Peter Zijlstra
2011-09-26 15:44     ` Srikar Dronamraju
2011-09-26 15:44       ` Srikar Dronamraju
2011-09-27 11:37       ` Peter Zijlstra
2011-09-27 11:37         ` Peter Zijlstra
2011-09-27 13:08         ` Srikar Dronamraju [this message]
2011-09-27 13:08           ` Srikar Dronamraju
2011-09-27 11:41       ` Peter Zijlstra
2011-09-27 11:41         ` Peter Zijlstra
2011-09-27 12:59         ` Srikar Dronamraju
2011-09-27 12:59           ` Srikar Dronamraju
2011-09-27 11:42       ` Peter Zijlstra
2011-09-27 11:42         ` Peter Zijlstra
2011-10-03 13:37   ` Oleg Nesterov
2011-10-03 13:37     ` Oleg Nesterov
2011-10-06 11:05     ` Srikar Dronamraju
2011-10-06 11:05       ` Srikar Dronamraju
2011-10-07 17:36       ` Oleg Nesterov
2011-10-07 17:36         ` Oleg Nesterov
2011-10-10 12:31         ` Srikar Dronamraju
2011-10-10 12:31           ` Srikar Dronamraju
2011-09-20 12:00 ` [PATCH v5 3.1.0-rc4-tip 5/26] Uprobes: copy of the original instruction Srikar Dronamraju
2011-09-20 12:00   ` Srikar Dronamraju
2011-10-03 16:29   ` Oleg Nesterov
2011-10-03 16:29     ` Oleg Nesterov
2011-10-05 10:52     ` Srikar Dronamraju
2011-10-05 10:52       ` Srikar Dronamraju
2011-10-05 15:11       ` Oleg Nesterov
2011-10-05 15:11         ` Oleg Nesterov
2011-10-05 16:09     ` Srikar Dronamraju
2011-10-05 16:09       ` Srikar Dronamraju
2011-10-05 17:53       ` Oleg Nesterov
2011-10-05 17:53         ` Oleg Nesterov
2011-09-20 12:01 ` [PATCH v5 3.1.0-rc4-tip 6/26] Uprobes: define fixups Srikar Dronamraju
2011-09-20 12:01   ` Srikar Dronamraju
2011-09-20 12:01 ` [PATCH v5 3.1.0-rc4-tip 7/26] Uprobes: uprobes arch info Srikar Dronamraju
2011-09-20 12:01   ` Srikar Dronamraju
2011-09-20 12:01 ` [PATCH v5 3.1.0-rc4-tip 8/26] x86: analyze instruction and determine fixups Srikar Dronamraju
2011-09-20 12:01   ` Srikar Dronamraju
2011-09-20 17:13   ` Stefan Hajnoczi
2011-09-20 17:13     ` Stefan Hajnoczi
2011-09-20 18:12     ` Christoph Hellwig
2011-09-20 18:12       ` Christoph Hellwig
2011-09-20 20:53       ` Stefan Hajnoczi
2011-09-20 20:53         ` Stefan Hajnoczi
2011-09-23 11:53         ` Masami Hiramatsu
2011-09-23 11:53           ` Masami Hiramatsu
2011-09-23 16:51           ` Stefan Hajnoczi
2011-09-23 16:51             ` Stefan Hajnoczi
2011-09-26 19:59             ` Josh Stone
2011-09-26 19:59               ` Josh Stone
2011-09-27  1:32               ` Masami Hiramatsu
2011-09-27  2:59                 ` Josh Stone
2011-09-27  2:59                   ` Josh Stone
2011-09-27  7:08               ` Stefan Hajnoczi
2011-09-26 18:30         ` Mark Wielaard
2011-09-22  1:05   ` Josh Stone
2011-09-22  1:05     ` Josh Stone
2011-10-06 23:58     ` [PATCH] x86: Make variable_test_bit reference all of *addr Josh Stone
2011-10-07  1:37       ` hpanvin@gmail.com
2011-10-07  2:02         ` Andi Kleen
2011-10-07  2:50           ` Josh Stone
2011-10-07  3:12             ` hpanvin@gmail.com
2011-10-07  3:30               ` Andi Kleen
2011-10-07  4:35             ` Masami Hiramatsu
2011-10-07  4:55             ` Masami Hiramatsu
2011-10-18  1:00               ` [PATCH] x86: Make kprobes' twobyte_is_boostable volatile Josh Stone
2011-10-18  1:21                 ` Masami Hiramatsu
2011-10-07  3:13           ` [PATCH] x86: Make variable_test_bit reference all of *addr hpanvin@gmail.com
2011-10-05 15:48   ` [PATCH v5 3.1.0-rc4-tip 8/26] x86: analyze instruction and determine fixups Oleg Nesterov
2011-10-05 15:48     ` Oleg Nesterov
2011-10-05 16:12     ` Srikar Dronamraju
2011-10-05 16:12       ` Srikar Dronamraju
2011-09-20 12:01 ` [PATCH v5 3.1.0-rc4-tip 9/26] Uprobes: Background page replacement Srikar Dronamraju
2011-09-20 12:01   ` Srikar Dronamraju
2011-10-05 16:19   ` Oleg Nesterov
2011-10-05 16:19     ` Oleg Nesterov
2011-10-06  6:53     ` Srikar Dronamraju
2011-10-06  6:53       ` Srikar Dronamraju
2011-09-20 12:01 ` [PATCH v5 3.1.0-rc4-tip 10/26] x86: Set instruction pointer Srikar Dronamraju
2011-09-20 12:01   ` Srikar Dronamraju
2011-10-05 16:29   ` Oleg Nesterov
2011-10-05 16:29     ` Oleg Nesterov
2011-09-20 12:02 ` [PATCH v5 3.1.0-rc4-tip 11/26] x86: Introduce TIF_UPROBE FLAG Srikar Dronamraju
2011-09-20 12:02   ` Srikar Dronamraju
2011-09-20 12:02 ` [PATCH v5 3.1.0-rc4-tip 12/26] Uprobes: Handle breakpoint and Singlestep Srikar Dronamraju
2011-09-20 12:02   ` Srikar Dronamraju
2011-09-26 13:59   ` Peter Zijlstra
2011-09-26 13:59     ` Peter Zijlstra
2011-09-26 16:01     ` Srikar Dronamraju
2011-09-26 16:01       ` Srikar Dronamraju
2011-09-26 16:25       ` Peter Zijlstra
2011-09-26 16:25         ` Peter Zijlstra
2011-10-05 17:48         ` Oleg Nesterov
2011-10-05 17:48           ` Oleg Nesterov
2011-09-26 14:02   ` Peter Zijlstra
2011-09-26 14:02     ` Peter Zijlstra
2011-10-07 18:28   ` Oleg Nesterov
2011-10-07 18:28     ` Oleg Nesterov
2011-10-09 13:31     ` Oleg Nesterov
2011-10-09 13:31       ` Oleg Nesterov
2011-09-20 12:02 ` [PATCH v5 3.1.0-rc4-tip 13/26] x86: define a x86 specific exception notifier Srikar Dronamraju
2011-09-20 12:02   ` Srikar Dronamraju
2011-09-26 14:19   ` Peter Zijlstra
2011-09-26 14:19     ` Peter Zijlstra
2011-09-26 15:52     ` Srikar Dronamraju
2011-09-26 15:52       ` Srikar Dronamraju
2011-09-27 11:46       ` Peter Zijlstra
2011-09-27 11:46         ` Peter Zijlstra
2011-10-07 18:31   ` Oleg Nesterov
2011-10-07 18:31     ` Oleg Nesterov
2011-09-20 12:02 ` [PATCH v5 3.1.0-rc4-tip 14/26] uprobe: register " Srikar Dronamraju
2011-09-20 12:02   ` Srikar Dronamraju
2011-09-20 12:03 ` [PATCH v5 3.1.0-rc4-tip 15/26] x86: Define x86_64 specific uprobe_task_arch_info structure Srikar Dronamraju
2011-09-20 12:03   ` Srikar Dronamraju
2011-09-20 12:03 ` [PATCH v5 3.1.0-rc4-tip 16/26] uprobes: Introduce " Srikar Dronamraju
2011-09-20 12:03   ` Srikar Dronamraju
2011-09-20 12:03 ` [PATCH v5 3.1.0-rc4-tip 17/26] x86: arch specific hooks for pre/post singlestep handling Srikar Dronamraju
2011-09-20 12:03   ` Srikar Dronamraju
2011-09-26 14:23   ` Peter Zijlstra
2011-09-26 14:23     ` Peter Zijlstra
2011-09-26 16:34     ` Srikar Dronamraju
2011-09-26 16:34       ` Srikar Dronamraju
2011-09-27 11:44       ` Peter Zijlstra
2011-09-27 11:44         ` Peter Zijlstra
2011-09-20 12:03 ` [PATCH v5 3.1.0-rc4-tip 18/26] uprobes: slot allocation Srikar Dronamraju
2011-09-20 12:03   ` Srikar Dronamraju
2011-09-27 11:49   ` Peter Zijlstra
2011-09-27 11:49     ` Peter Zijlstra
2011-09-27 12:32     ` Srikar Dronamraju
2011-09-27 12:32       ` Srikar Dronamraju
2011-09-27 12:59       ` Peter Zijlstra
2011-09-27 12:59         ` Peter Zijlstra
2011-09-27 12:18   ` Peter Zijlstra
2011-09-27 12:18     ` Peter Zijlstra
2011-09-27 12:45     ` Srikar Dronamraju
2011-09-27 12:45       ` Srikar Dronamraju
2011-09-27 12:36   ` Peter Zijlstra
2011-09-27 12:36     ` Peter Zijlstra
2011-09-27 12:37   ` Peter Zijlstra
2011-09-27 12:37     ` Peter Zijlstra
2011-09-27 12:50     ` Srikar Dronamraju
2011-09-27 12:50       ` Srikar Dronamraju
2011-09-27 12:50   ` Peter Zijlstra
2011-09-27 12:50     ` Peter Zijlstra
2011-09-27 12:55   ` Peter Zijlstra
2011-09-27 12:55     ` Peter Zijlstra
2011-10-07 18:37   ` Oleg Nesterov
2011-10-07 18:37     ` Oleg Nesterov
2011-10-09 11:47     ` Srikar Dronamraju
2011-10-09 11:47       ` Srikar Dronamraju
2011-09-20 12:03 ` [PATCH v5 3.1.0-rc4-tip 19/26] tracing: Extract out common code for kprobes/uprobes traceevents Srikar Dronamraju
2011-09-20 12:03   ` Srikar Dronamraju
2011-09-28  5:04   ` Masami Hiramatsu
2011-09-28  5:04     ` Masami Hiramatsu
2011-09-20 12:04 ` [PATCH v5 3.1.0-rc4-tip 20/26] tracing: uprobes trace_event interface Srikar Dronamraju
2011-09-20 12:04   ` Srikar Dronamraju
2011-09-20 12:04 ` [PATCH v5 3.1.0-rc4-tip 21/26] tracing: uprobes Documentation Srikar Dronamraju
2011-09-20 12:04   ` Srikar Dronamraju
2011-09-20 12:04 ` [PATCH v5 3.1.0-rc4-tip 22/26] perf: rename target_module to target Srikar Dronamraju
2011-09-20 12:04   ` Srikar Dronamraju
2011-09-20 12:04 ` [PATCH v5 3.1.0-rc4-tip 23/26] perf: perf interface for uprobes Srikar Dronamraju
2011-09-20 12:04   ` Srikar Dronamraju
2011-09-20 12:04 ` [PATCH v5 3.1.0-rc4-tip 24/26] perf: show possible probes in a given executable file or library Srikar Dronamraju
2011-09-20 12:04   ` Srikar Dronamraju
2011-09-20 12:05 ` [PATCH v5 3.1.0-rc4-tip 25/26] perf: Documentation for perf uprobes Srikar Dronamraju
2011-09-20 12:05   ` Srikar Dronamraju
2011-09-28  9:20   ` Masami Hiramatsu
2011-09-28  9:20     ` Masami Hiramatsu
2011-09-20 12:05 ` [PATCH v5 3.1.0-rc4-tip 26/26] uprobes: queue signals while thread is singlestepping Srikar Dronamraju
2011-09-20 12:05   ` Srikar Dronamraju
2011-09-27 13:03   ` Peter Zijlstra
2011-09-27 13:03     ` Peter Zijlstra
2011-09-27 13:12     ` Srikar Dronamraju
2011-09-27 13:12       ` Srikar Dronamraju
2011-10-05 18:01       ` Oleg Nesterov
2011-10-05 18:01         ` Oleg Nesterov
2011-10-06  5:47         ` Srikar Dronamraju
2011-10-06  5:47           ` Srikar Dronamraju
2011-10-07 16:58           ` Oleg Nesterov
2011-10-07 16:58             ` Oleg Nesterov
2011-10-10 12:25             ` Srikar Dronamraju
2011-10-10 12:25               ` Srikar Dronamraju
2011-10-10 18:25               ` Oleg Nesterov
2011-10-10 18:25                 ` Oleg Nesterov
2011-10-11 17:24                 ` Oleg Nesterov
2011-10-11 17:24                   ` Oleg Nesterov
2011-10-11 17:38                   ` Srikar Dronamraju
2011-10-11 17:38                     ` Srikar Dronamraju
2011-10-11 17:26                 ` Srikar Dronamraju
2011-10-11 17:26                   ` Srikar Dronamraju
2011-10-11 18:56                   ` Oleg Nesterov
2011-10-11 18:56                     ` Oleg Nesterov
2011-10-12 12:01                     ` Srikar Dronamraju
2011-10-12 12:01                       ` Srikar Dronamraju
2011-10-12 19:34                       ` Oleg Nesterov
2011-10-12 19:34                         ` Oleg Nesterov
2011-10-12 19:59                   ` Oleg Nesterov
2011-10-12 19:59                     ` Oleg Nesterov
2011-09-20 13:34 ` [PATCH v5 3.1.0-rc4-tip 0/26] Uprobes patchset with perf probe support Christoph Hellwig
2011-09-20 13:34   ` Christoph Hellwig
2011-09-20 14:12   ` Srikar Dronamraju
2011-09-20 14:12     ` Srikar Dronamraju
2011-09-20 14:28     ` Christoph Hellwig
2011-09-20 14:28       ` Christoph Hellwig
2011-09-20 15:19       ` Srikar Dronamraju
2011-09-20 15:19         ` Srikar Dronamraju
2011-10-15 19:00 ` [PATCH 0/X] (Was: Uprobes patchset with perf probe support) Oleg Nesterov
2011-10-15 19:00   ` Oleg Nesterov
2011-10-15 19:00   ` [PATCH 1/X] uprobes: write_opcode: the new page needs PG_uptodate Oleg Nesterov
2011-10-15 19:00     ` Oleg Nesterov
2011-10-17 10:59     ` Srikar Dronamraju
2011-10-17 10:59       ` Srikar Dronamraju
2011-10-15 19:00   ` [PATCH 2/X] uprobes: write_opcode() needs put_page(new_page) unconditionally Oleg Nesterov
2011-10-15 19:00     ` Oleg Nesterov
2011-10-18 16:47     ` Srikar Dronamraju
2011-10-18 16:47       ` Srikar Dronamraju
2011-10-15 19:01   ` [PATCH 3/X] uprobes: xol_add_vma: fix ->uprobes_xol_area initialization Oleg Nesterov
2011-10-15 19:01     ` Oleg Nesterov
2011-10-15 19:01   ` [PATCH 4/X] uprobes: xol_add_vma: misc cleanups Oleg Nesterov
2011-10-15 19:01     ` Oleg Nesterov
2011-10-15 19:01   ` [PATCH 5/X] uprobes: xol_alloc_area() needs memory barriers Oleg Nesterov
2011-10-15 19:01     ` Oleg Nesterov
2011-10-16 16:13   ` [PATCH 6/X] uprobes: reimplement xol_add_vma() via install_special_mapping() Oleg Nesterov
2011-10-16 16:13     ` Oleg Nesterov
2011-10-17 10:50     ` Srikar Dronamraju
2011-10-17 10:50       ` Srikar Dronamraju
2011-10-17 13:34       ` Stephen Smalley
2011-10-17 13:34         ` Stephen Smalley
2011-10-17 18:55         ` Oleg Nesterov
2011-10-17 18:55           ` Oleg Nesterov
2011-10-16 16:14   ` [PATCH 7/X] uprobes: xol_add_vma: simply use TASK_SIZE as a hint Oleg Nesterov
2011-10-16 16:14     ` Oleg Nesterov
2011-10-19 21:51   ` [PATCH 8-14/X] (Was: Uprobes patchset with perf probe support) Oleg Nesterov
2011-10-19 21:51     ` Oleg Nesterov
2011-10-19 21:52     ` [PATCH 8/X] uprobes: kill sstep_complete() Oleg Nesterov
2011-10-19 21:52       ` Oleg Nesterov
2011-10-19 21:52     ` [PATCH 9/X] uprobes: introduce UTASK_SSTEP_ACK state Oleg Nesterov
2011-10-19 21:52       ` Oleg Nesterov
2011-10-19 21:52     ` [PATCH 10/X] uprobes: introduce uprobe_deny_signal() Oleg Nesterov
2011-10-19 21:52       ` Oleg Nesterov
2011-10-19 21:53     ` [PATCH 11/X] uprobes: x86: introduce xol_was_trapped() Oleg Nesterov
2011-10-19 21:53       ` Oleg Nesterov
2011-10-24 14:55       ` Srikar Dronamraju
2011-10-24 14:55         ` Srikar Dronamraju
2011-10-24 16:07         ` Oleg Nesterov
2011-10-24 16:07           ` Oleg Nesterov
2011-10-19 21:53     ` [PATCH 12/X] uprobes: x86: introduce abort_xol() Oleg Nesterov
2011-10-19 21:53       ` Oleg Nesterov
2011-10-21 14:42       ` Srikar Dronamraju
2011-10-21 14:42         ` Srikar Dronamraju
2011-10-21 16:22         ` Oleg Nesterov
2011-10-21 16:22           ` Oleg Nesterov
2011-10-21 16:26         ` Ananth N Mavinakayanahalli
2011-10-21 16:26           ` Ananth N Mavinakayanahalli
2011-10-21 16:42           ` Oleg Nesterov
2011-10-21 16:42             ` Oleg Nesterov
2011-10-21 17:59             ` test-case (Was: [PATCH 12/X] uprobes: x86: introduce abort_xol()) Oleg Nesterov
2011-10-21 17:59               ` Oleg Nesterov
2011-10-25 14:06               ` Srikar Dronamraju
2011-10-25 14:06                 ` Srikar Dronamraju
2011-10-25 15:49                 ` Oleg Nesterov
2011-10-25 15:49                   ` Oleg Nesterov
2011-10-22  7:09             ` [PATCH 12/X] uprobes: x86: introduce abort_xol() Ananth N Mavinakayanahalli
2011-10-22  7:09               ` Ananth N Mavinakayanahalli
2011-10-19 21:53     ` [PATCH 13/X] uprobes: introduce UTASK_SSTEP_TRAPPED logic Oleg Nesterov
2011-10-19 21:53       ` Oleg Nesterov
2011-10-22  7:20       ` Ananth N Mavinakayanahalli
2011-10-22  7:20         ` Ananth N Mavinakayanahalli
2011-10-24 14:41         ` Oleg Nesterov
2011-10-24 14:41           ` Oleg Nesterov
2011-10-24 15:16           ` Ananth N Mavinakayanahalli
2011-10-24 15:16             ` Ananth N Mavinakayanahalli
2011-10-24 16:13             ` Oleg Nesterov
2011-10-24 16:13               ` Oleg Nesterov
2011-10-25  6:01               ` Ananth N Mavinakayanahalli
2011-10-25  6:01                 ` Ananth N Mavinakayanahalli
2011-10-25 14:30                 ` Oleg Nesterov
2011-10-25 14:30                   ` Oleg Nesterov
2011-10-19 21:54     ` [PATCH 14/X] uprobes: uprobe_deny_signal: check __fatal_signal_pending() Oleg Nesterov
2011-10-19 21:54       ` Oleg Nesterov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110927130850.GD3685@linux.vnet.ibm.com \
    --to=srikar@linux.vnet.ibm.com \
    --cc=acme@infradead.org \
    --cc=akpm@linux-foundation.org \
    --cc=ananth@in.ibm.com \
    --cc=andi@firstfloor.org \
    --cc=corbet@lwn.net \
    --cc=hch@infradead.org \
    --cc=hughd@google.com \
    --cc=jkenisto@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=masami.hiramatsu.pt@hitachi.com \
    --cc=mingo@elte.hu \
    --cc=oleg@redhat.com \
    --cc=peterz@infradead.org \
    --cc=roland@hack.frob.com \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.