lkml.org 
[lkml]   [2019]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v2 1/4] perf probe: Generate event name with line number
    Em Fri, Nov 08, 2019 at 01:27:58AM +0900, Masami Hiramatsu escreveu:
    > Generate event name from function name with line number
    > as <function>_L<line_number>. Note that this is only for
    > the new event which is defined by the line number of
    > function (except for line 0).
    >
    > If there is another event on same line, you have to use
    > "-f" option. In that case, the new event has "_1" suffix.
    >
    > e.g.
    > # perf probe -a kernel_read:1
    > Added new events:
    > probe:kernel_read_L1 (on kernel_read:1)

    While testing this, using the same function (kernel_read), I found it
    confusing that it is possible to insert probes in lines seemingly with
    no code, for instance:

    [root@quaco ~]# perf probe -a kernel_read:1
    Added new event:
    probe:kernel_read_L1 (on kernel_read:1)

    You can now use it in all perf tools, such as:

    perf record -e probe:kernel_read_L1 -aR sleep 1

    [root@quaco ~]# perf probe -a kernel_read:2
    Added new event:
    probe:kernel_read_L2 (on kernel_read:2)

    You can now use it in all perf tools, such as:

    perf record -e probe:kernel_read_L2 -aR sleep 1

    [root@quaco ~]#
    [root@quaco ~]# perf probe --list
    probe:kernel_read_L1 (on kernel_read@fs/read_write.c)
    probe:kernel_read_L2 (on kernel_read:1@fs/read_write.c)
    [root@quaco ~]# perf probe -L kernel_read
    <kernel_read@/usr/src/debug/kernel-5.3.fc30/linux-5.3.8-200.fc30.x86_64/fs/read_write.c:0>
    0 ssize_t kernel_read(struct file *file, void *buf, size_t count, loff_t *pos)
    1 {
    2 mm_segment_t old_fs;
    3 ssize_t result;

    5 old_fs = get_fs();
    6 set_fs(KERNEL_DS);
    /* The cast to a user pointer is valid due to the set_fs() */
    8 result = vfs_read(file, (void __user *)buf, count, pos);
    9 set_fs(old_fs);
    10 return result;
    }
    EXPORT_SYMBOL(kernel_read);


    [root@quaco ~]#


    What is the point of putting a probe on line 2? I is not initializing,
    etc, 1 as well, notthing there and we already have 0 (or not specifying
    a line number) to put a probe at the start of a function, can you
    clarify?

    I'll apply this patch, the problem above isn't strictly related to it.

    - Arnaldo

    \
     
     \ /
      Last update: 2019-11-11 15:05    [W:2.978 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site