Re: [PATCH v2 5/5] uprobes: make uprobe_register() return struct uprobe *

From: Andrii Nakryiko
Date: Wed Jul 31 2024 - 13:13:25 EST


On Wed, Jul 31, 2024 at 10:05 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> On Wed, Jul 31, 2024 at 10:01:47AM -0700, Andrii Nakryiko wrote:
> > On Wed, Jul 31, 2024 at 9:56 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> > >
> > > On Wed, Jul 31, 2024 at 09:18:00AM -0700, Andrii Nakryiko wrote:
> > > > On Mon, Jul 29, 2024 at 6:45 AM Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
> > > > >
> > > > > This way uprobe_unregister() and uprobe_apply() can use "struct uprobe *"
> > > > > rather than inode + offset. This simplifies the code and allows to avoid
> > > > > the unnecessary find_uprobe() + put_uprobe() in these functions.
> > > > >
> > > > > TODO: uprobe_unregister() still needs get_uprobe/put_uprobe to ensure that
> > > > > this uprobe can't be freed before up_write(&uprobe->register_rwsem).
> > > > >
> > > > > Signed-off-by: Oleg Nesterov <oleg@xxxxxxxxxx>
> > > > > Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx>
> > > > > ---
> > > > > include/linux/uprobes.h | 15 +++++-----
> > > > > kernel/events/uprobes.c | 56 +++++++++++++++----------------------
> > > > > kernel/trace/bpf_trace.c | 25 ++++++++---------
> > > > > kernel/trace/trace_uprobe.c | 26 ++++++++---------
> > > > > 4 files changed, 55 insertions(+), 67 deletions(-)
> > > > >
> > > >
> > > > You'll need something like below to not break our bpf_testmod. And
> > > > please send pull patch sets, not individually updated patches, it's a
> > > > PITA to deal with. Thanks!
> > >
> > > Do I stuff this on top of Oleg's patch or do you want me to fold it in
> > > one of them?
> >
> > Please fold so we have better (potential) bisectability of BPF
> > selftests, thanks!
>
> Fold where, patch 5?

Yep, this one, where Oleg changed uprobe_register/uprobe_unregister API.

But note, I did the lazy thing and just copy/pasted `git show` output
into Gmail. So all the whitespaces are butchered and unlikely you'll
be able to apply that patch as is. My expectation was that Oleg will
just incorporate that by hand and will send the final v4 patch set.