Re: Re: [PATCH] perf/probe: Provide perf interface for uprobes

From: Arnaldo Carvalho de Melo
Date: Thu Apr 12 2012 - 10:09:21 EST


Em Thu, Apr 12, 2012 at 12:27:47PM +0900, Masami Hiramatsu escreveu:
> > * Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxx> [2012-04-11 11:49:18]:
> > Yeah, if one needs to disambiguate, sure, use these keywords, but for
> > things like:
> >
> > $ perf probe /lib/libc.so.6 malloc
> >
> > I think it is easy to figure out it is userspace. I.e. some regex would
> > figure it out.
>
> That's interessting to me too. Maybe it is also useful syntax for
> module specifying too.
>
> e.g.
> perf probe -m kvm kvm_timer_fn
>
> can be
>
> perf probe kvm.ko kvm_timer_fn
>
> (.ko is required) or if unloaded
>
> perf probe /lib/modules/XXX/kernel/virt/kvm.ko kvm_timer_fn

It may not even be required, since we can check in /proc/modules
if "kvm" is there and as well if it has a function named "kvm_timer_fn".

Also probably there is no library or binary on the current
directory with such a name :-)

Likewise, if we do:

$ perf probe libc-2.12.so malloc

It should just figure out it is the /lib64/libc-2.12.so

Heck, even:

$ perf probe libc malloc

Makes it even easier to use.

Its just when one asks for something that has ambiguities that
the tool should ask the user to be a bit more precise to remove such
ambiguity.

After all...

[acme@sandy linux]$ locate libc-2.12.so
/home/acme/.debug/lib64/libc-2.12.so
/home/acme/.debug/lib64/libc-2.12.so/293f8b6f5e6cea240d1bb0b47ec269ee91f31673
/home/acme/.debug/lib64/libc-2.12.so/5a7fad9dfcbb67af098a258bc2a20137cc954424
/lib64/libc-2.12.so
/usr/lib/debug/lib64/libc-2.12.so.debug
[acme@sandy linux]$

Only /lib64/libc-2.12.so is on the ld library path :-)

And after people really start depending on this tool for day to
day use, they may do like me:

[root@sandy ~]# alias probe="perf probe"
[root@sandy ~]# probe -F | grep skb_queue
skb_queue_head
skb_queue_purge
skb_queue_tail
[root@sandy ~]#

Which gets it to the shortest possible form:

$ probe libc malloc

:-)

Git has this nice feature that is on the same line of making
things easier for the user:

[acme@sandy linux]$ git fack
git: 'fack' is not a git command. See 'git --help'.

Did you mean this?
fsck
[acme@sandy linux]$

Hell, yes, fsck is what I meant! :-)

- Arnaldo
--
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/