Re: [BUGFIX PATCH perf/core ] perf-probe: Fix to show lines of sys_ functions correctly

From: 平松雅巳 / HIRAMATU,MASAMI
Date: Wed Aug 12 2015 - 17:37:43 EST


> From: Arnaldo Carvalho de Melo [mailto:acme@xxxxxxxxxx]
>
> Em Wed, Aug 12, 2015 at 10:23:55AM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Wed, Aug 12, 2015 at 10:24:07AM +0900, Masami Hiramatsu escreveu:
> > > "perf probe --lines sys_poll" shows only the first line of
> > > sys_poll, because the SYSCALL_DEFINE macro
> > > ----
>
> > Thanks! Just try prefixing those ---- lines one space so that git-am
> > works on your messages :-)
>
> > Now to build and test, will report here the results.
>
> Ok, now -L works:
>
> [root@zoo ~]# perf probe -L sys_select
> <SyS_select@/home/git/linux/fs/select.c:0>
> 0 SYSCALL_DEFINE5(select, int, n, fd_set __user *, inp, fd_set __user *, outp,
> fd_set __user *, exp, struct timeval __user *, tvp)
> {
> 3 struct timespec end_time, *to = NULL;
> struct timeval tv;
> int ret;
>
> 7 if (tvp) {
> 8 if (copy_from_user(&tv, tvp, sizeof(tv)))
> 9 return -EFAULT;
>
> 11 to = &end_time;
> 12 if (poll_select_set_timeout(to,
> tv.tv_sec + (tv.tv_usec / USEC_PER_SEC),
> 14 (tv.tv_usec % USEC_PER_SEC) * NSEC_PER_USEC))
> 15 return -EINVAL;
> }
>
> 18 ret = core_sys_select(n, inp, outp, exp, to);
> 19 ret = poll_select_copy_remaining(&end_time, tvp, 1, ret);
>
> 21 return ret;
> }
>
> static long do_pselect(int n, fd_set __user *inp, fd_set __user *outp,
>
> But then adding a probe doesn't work on sys_select, even with -L stating that I
> can add a probe at that line, maybe the code you added to make -L work needs to
> be shared with the other operations in 'perf probe'?

Oops, I missed a {} around new if statement...
I'll update the patch asap.

Thanks!

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