RE: Re: [RFC PATCH perf/core v3 00/17] perf-probe --cache and SDT support

From: åæéå / HIRAMATUïMASAMI
Date: Wed Aug 19 2015 - 11:15:38 EST


Hi Namhyung,

> From: Namhyung Kim [mailto:namhyung@xxxxxxxxx] On Behalf Of Namhyung Kim
> > - (ftrace) Support multiple SDTs on single event.
> >
> > Since multiple same SDTs are defined in a single binary (e.g. libc:setjump
> > has 3 different entries on libc-2.17.so), we need the last feature on
> > ftrace, so that a single uprobe event can occur several different
> > probe points.
>
> Do you want to have multiple events of same name in the kernel? Or
> to make perf handle those same names with different kernel events?

Good point, I meant the former. But the latter is also possible.

Here is my idea;

Suppose to define an event "foo" at "bar" function + 10byte offset with
2 arguments as below:
# echo p:foo bar+10 arg1=%ax arg2=%dx > kprobe_events

To add a probe point on the same event, use "+p" or "+r" instead of "p" or "r"
and we can also change the assignment for each argument.
# echo +p:foo bar+20 arg1=%cx arg2=0 >> kprobe_events

Also, I guess we'll need to support a fixed value assignment because sometimes
local valiables are optimized out.

Thank you,