Re: [PATCH 6/6] uprobes/perf: Always increment trace_uprobe->nhit

From: Srikar Dronamraju
Date: Mon Feb 04 2013 - 11:28:34 EST


* Oleg Nesterov <oleg@xxxxxxxxxx> [2013-02-04 16:18:50]:

> On 02/04, Srikar Dronamraju wrote:
> >
> > * Oleg Nesterov <oleg@xxxxxxxxxx> [2013-01-31 20:18:32]:
> >
> > > Move tu->nhit++ from uprobe_trace_func() to uprobe_dispatcher().
> > >
> > > ->nhit counts how many time we hit the breakpoint inserted by this
> > > uprobe, we do not want to loose this info if uprobe was enabled by
> > > sys_perf_event_open().
> > >
> >
> > Though I dont see a problem with this change, It seems unnecessary for
> > me.
> >
> > Info from nhits is mostly for /sys/kernel/debug/tracing/uprobe_profile
>
> It is only for uprobe_profile, yes, and it is useful. Why should we hide
> this info if this uprobe is used by perf?

Fine with me.

Steve, Masami, Do you have comments/suggestions on this.
(Since kprobe_profile just accounts for kprobetracer and doesnt account
for perf record.)
May we should make a similar change in kprobetracer to keep things
similar.

--
Thanks and Regards
Srikar Dronamraju

>
> > I am not sure how sys_perf_event_open() is making use of this?
>
> I hope I'll send the final series today. From the changelog of the patch
> which actually turns the filtering on:
>
> Testing:
>
> # perf probe -x /lib/libc.so.6 syscall
>
> # perl -e 'syscall -1 while 1' &
> [1] 530
>
> # perf record -e probe_libc:syscall perl -e 'syscall -1 for 1..10; sleep 1'
>
> # perf report --show-total-period
> 100.00% 10 perl libc-2.8.so [.] syscall
>
> Before this patch:
>
> # cat /sys/kernel/debug/tracing/uprobe_profile
> /lib/libc.so.6 syscall 79291
>
> A huge ->nrhit == 79291 reflects the fact that the background process
> 530 constantly hits this breakpoint too, even if doesn't contribute to
> the output.
>
> After the patch:
>
> # cat /sys/kernel/debug/tracing/uprobe_profile
> /lib/libc.so.6 syscall 10
>
> This shows that only the target process was punished by int3.
>
> Oleg.
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/