Re: [PATCH 2/2] uprobes: add speculative lockless VMA-to-inode-to-uprobe resolution
From: Andrii Nakryiko
Date: Sun Sep 08 2024 - 21:09:02 EST
On Sat, Sep 7, 2024 at 6:22 PM Liam R. Howlett <Liam.Howlett@xxxxxxxxxx> wrote:
>
> * Andrii Nakryiko <andrii@xxxxxxxxxx> [240906 01:12]:
>
> ...
>
> > ---
> > kernel/events/uprobes.c | 51 +++++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 51 insertions(+)
> >
> > diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
> > index a2e6a57f79f2..b7e0baa83de1 100644
> ...
>
> > @@ -2088,6 +2135,10 @@ static struct uprobe *find_active_uprobe_rcu(unsigned long bp_vaddr, int *is_swb
>
> I'm having issues locating this function in akpm/mm-unstable. What
> tree/commits am I missing to do a full review of this code?
Hey Liam,
These patches are based on tip/perf/core, find_active_uprobe_rcu()
just landed a few days ago. See [0].
[0] https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/log/?h=perf/core
>
> > struct uprobe *uprobe = NULL;
> > struct vm_area_struct *vma;
> >
> > + uprobe = find_active_uprobe_speculative(bp_vaddr);
> > + if (uprobe)
> > + return uprobe;
> > +
> > mmap_read_lock(mm);
> > vma = vma_lookup(mm, bp_vaddr);
> > if (vma) {
> > --
> > 2.43.5
> >
> >