From: Frederic Weisbecker on
On Thu, Jul 29, 2010 at 02:04:14PM +0900, Masami Hiramatsu wrote:
> Srikar Dronamraju wrote:
> > diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> > index c681fa7..16e2a8c 100644
> > --- a/kernel/trace/Kconfig
> > +++ b/kernel/trace/Kconfig
> > @@ -482,6 +482,22 @@ config RING_BUFFER_BENCHMARK
> >
> > If unsure, say N.
> >
> > +config UPROBE_EVENT
> > + bool "Enable uprobes-based dynamic events"
> > + depends on ARCH_SUPPORTS_UPROBES
> > + depends on MMU
> > + select UPROBES
> > + select PROBE_EVENTS
> > + select TRACING
> > + default n
> > + help
> > + This allows the user to add tracing events on top of userspace dynamic
> > + events (similar to tracepoints) on the fly via the traceevents interface.
> > + Those events can be inserted wherever uprobes can probe, and record
> > + various registers.
> > + This option is required if you plan to use perf-probe subcommand of perf
> > + tools on user space applications.
> > +
>
> Possible enhancement: Moving this config right after KPROBE_EVENT, because
> those two provide similar dynamic events.
>
> Thank you,


In fact this could be a menu "Dynamic Probes", perhaps default off, inside
which Kprobes and Uprobes would be default on (but depend on "Dynamic Probes").

So that you can quickly enable them all in one.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Frederic Weisbecker on
On Mon, Aug 02, 2010 at 12:45:08PM +0900, Masami Hiramatsu wrote:
> Frederic Weisbecker wrote:
> > On Thu, Jul 29, 2010 at 02:04:14PM +0900, Masami Hiramatsu wrote:
> >> Srikar Dronamraju wrote:
> >>> diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
> >>> index c681fa7..16e2a8c 100644
> >>> --- a/kernel/trace/Kconfig
> >>> +++ b/kernel/trace/Kconfig
> >>> @@ -482,6 +482,22 @@ config RING_BUFFER_BENCHMARK
> >>>
> >>> If unsure, say N.
> >>>
> >>> +config UPROBE_EVENT
> >>> + bool "Enable uprobes-based dynamic events"
> >>> + depends on ARCH_SUPPORTS_UPROBES
> >>> + depends on MMU
> >>> + select UPROBES
> >>> + select PROBE_EVENTS
> >>> + select TRACING
> >>> + default n
> >>> + help
> >>> + This allows the user to add tracing events on top of userspace dynamic
> >>> + events (similar to tracepoints) on the fly via the traceevents interface.
> >>> + Those events can be inserted wherever uprobes can probe, and record
> >>> + various registers.
> >>> + This option is required if you plan to use perf-probe subcommand of perf
> >>> + tools on user space applications.
> >>> +
> >> Possible enhancement: Moving this config right after KPROBE_EVENT, because
> >> those two provide similar dynamic events.
> >>
> >> Thank you,
> >
> >
> > In fact this could be a menu "Dynamic Probes", perhaps default off, inside
> > which Kprobes and Uprobes would be default on (but depend on "Dynamic Probes").
> >
> > So that you can quickly enable them all in one.
>
> Hmm, I disagree with it, because both Kprobes and Uprobes provides
> APIs for modules too.


I'm not sure there is a point in maintaining a leightweight version
for out of tree code. These modules could just select kprobes/uprobes
events as well.

As you prefer, that was just a suggestion to make it more simple.



>
> I'd like to suggest below config tree
>
> Kenrel hacking
> - Kprobes
> - Uprobes
> - Tracing
> -- Dynamic Events
> depends on Kprobes || Uprobes


Yep, that version looks good.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Frederic Weisbecker on
On Mon, Aug 02, 2010 at 12:16:38PM +0530, Srikar Dronamraju wrote:
> > >
> > > In fact this could be a menu "Dynamic Probes", perhaps default off, inside
> > > which Kprobes and Uprobes would be default on (but depend on "Dynamic Probes").
> > >
> > > So that you can quickly enable them all in one.
> >
> > Hmm, I disagree with it, because both Kprobes and Uprobes provides
> > APIs for modules too.
> >
> > I'd like to suggest below config tree
> >
> > Kenrel hacking
> > - Kprobes
> > - Uprobes
> > - Tracing
> > -- Dynamic Events
> > depends on Kprobes || Uprobes
> > or
> > select Kprobes && Uprobes
>
> I would agree with Masami since there could be people who might be
> apprehensive to try out Uprobes (which would still be experimental) but
> would be interested to use kprobes only since its more mature.
>
> One change I would suggest would be to select respective events(i.e
> kprobe_event, uprobe_event) instead of kprobes and uprobes.


Yeah sure. The goal was to still have both selectable independently, but
have a menu that can select all in one.

ie:

config DYNAMIC_PROBE
depends on (KPROBES || UPROBES) && EVENTS_TRACING
default n

config KPROBES_EVENT:
depends on DYNAMIC_PROBE && KPROBES
default y

config UPROBES_EVENT:
depends on DYNAMIC_PROBE && UPROBES
default y


So that people who want dynamic probes just don't care and select dynamic probe.
Those who want more granularity can still unselect uprobes events or kprobes
events after that.

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