All of lore.kernel.org
 help / color / mirror / Atom feed
From: Franck Bui-Huu <vagabon.xyz@gmail.com>
To: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
	lkml <linux-kernel@vger.kernel.org>,
	2nddept-manager@sdl.hitachi.co.jp
Subject: Re: [PATCH] perf-probe: make "perf-probe -L <function>" display the absolute path and absolute line number
Date: Fri, 14 Jan 2011 10:03:53 +0100	[thread overview]
Message-ID: <m3tyhb6eme.fsf@gmail.com> (raw)
In-Reply-To: <4D2FC17D.5010203@hitachi.com> (Masami Hiramatsu's message of "Fri, 14 Jan 2011 12:22:37 +0900")

Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> writes:

> (2011/01/14 4:42), Franck Bui-Huu wrote:

[...]

>> Well, for consistency, I thought that the additional information
>> (given inside angle brackets) should always be the same: a full path
>> and an absolute line number which clearly identify which source file
>> perf-probe is listing.
>
> No, that is NOT an additional information. That indicates from where
> those lines are started

But this indication is currently not enough, it's too ambiguous to be
usefull:

        <schedule:10>

there might be several 'schedule()' functions inside the kernel, also we
don't know which kernel tree is used.

BTW, if there're several 'do_something' functions defined inside the
kernel, what is the behaviour of:

  $ perf probe do_something

Does it set a probe to all 'do_something' functions ? I don't think it's
documented.

> , and also gives you a hint how you can specify the actual probe
> point. For example,
>
> $ perf probe -L schedule:10
> <schedule:10>
>      10         rq = cpu_rq(cpu);
>      11         rcu_note_context_switch(cpu);
>      12         prev = rq->curr;
>
> this indicates the lines started from 10th line of schedule(), and

but I'm not sure it's really usefull since you've asked for it when
invoking perf-probe so it seems to be redundant.

> if you want to put a new event on "prev = rq->curr;" line, you just
> need to say "perf probe schedule:12"

yes and this patch doesn't change that, does it ?

> $ perf probe -L kernel/sched.c:4077
> </home/mhiramat/ksrc/linux-2.6-tip/kernel/sched.c:4077>
>    4077         rq = cpu_rq(cpu);
>    4078         rcu_note_context_switch(cpu);
>    4079         prev = rq->curr;
>
> And this also gives you a hint to say (just copy & paste)

No copy & paste in my case, I just reuse the shell history. This is the
reason why I didn't understand your suggestion.

So to get back to my initial suggestion and with this patch applied:

   $ perf probe -L schedule:10-15
   </usr/src/debug/kernel-2.6.35.fc14/linux-2.6.35.x86_64/kernel/sched.c:3823>
        10         rq = cpu_rq(cpu);
        11         rcu_note_context_switch(cpu);
        12         prev = rq->curr;
        13         switch_count = &prev->nivcsw;
            
        15         release_kernel_lock(prev);

I know exactly which bit of code I'm looking at, and to put a probe I
can still simply do (without any copy and paste):

    $ perf probe schedule:12

I still use the function name of the probe and the relative line number
showed by perf-probe.

For probe specified by filename:

    $ perf probe -L kernel/sched.c:3823-3826
    </usr/src/debug/kernel-2.6.35.fc14/linux-2.6.35.x86_64/kernel/sched.c:3823>
       3823         rq = cpu_rq(cpu);
       3824         rcu_note_context_switch(cpu);
       3825         prev = rq->curr;
       3826         switch_count = &prev->nivcsw;

now to set a probe, I would do:

    $ perf probe kernel/sched.c:3825

I still use the linenum showed by perf-probe, and the additional
information is always consistent and still usefull since it shows which
tree perf-probe is using.

But if you think it should be used to hint for a probe point syntax,
(you'll probably use copy & paste since it uses absolute path name),
then this patch is wrong.

Thanks
-- 
		Franck

  reply	other threads:[~2011-01-14  9:04 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-13 10:20 [PATCH] perf-probe: make "perf-probe -L <function>" display the absolute path and absolute line number Franck Bui-Huu
2011-01-13 11:03 ` Masami Hiramatsu
2011-01-13 19:42   ` Franck Bui-Huu
2011-01-14  3:22     ` Masami Hiramatsu
2011-01-14  9:03       ` Franck Bui-Huu [this message]
2011-01-14 10:08         ` Masami Hiramatsu
2011-01-14 10:33         ` Masami Hiramatsu
2011-01-14 19:53           ` Franck Bui-Huu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3tyhb6eme.fsf@gmail.com \
    --to=vagabon.xyz@gmail.com \
    --cc=2nddept-manager@sdl.hitachi.co.jp \
    --cc=acme@ghostprotocols.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masami.hiramatsu.pt@hitachi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.