On Wed, Mar 16, 2022 at 01:24:09PM +0100, Jiri Olsa wrote:
> +static int
> +kprobe_multi_link_prog_run(struct bpf_kprobe_multi_link *link,
> + struct pt_regs *regs)
> +{
> + int err;
> +
> + if (unlikely(__this_cpu_inc_return(bpf_prog_active) != 1)) {
> + err = 0;
> + goto out;
> + }
That's a heavy hammer.
It's ok-ish for now, but would be good to switch to
__this_cpu_inc_return(*(prog->active)) at some point.
The way fentry/fexit progs do.
On Wed, Mar 16, 2022 at 11:53:33AM -0700, Alexei Starovoitov wrote:
> On Wed, Mar 16, 2022 at 01:24:09PM +0100, Jiri Olsa wrote:
> > +static int
> > +kprobe_multi_link_prog_run(struct bpf_kprobe_multi_link *link,
> > + struct pt_regs *regs)
> > +{
> > + int err;
> > +
> > + if (unlikely(__this_cpu_inc_return(bpf_prog_active) != 1)) {
> > + err = 0;
> > + goto out;
> > + }
>
> That's a heavy hammer.
> It's ok-ish for now, but would be good to switch to
> __this_cpu_inc_return(*(prog->active)) at some point.
> The way fentry/fexit progs do.
ok, will check
thanks,
jirka