Thread (4 messages) 4 messages, 3 authors, 2021-07-18

Re: [PATCH v2] perf probe: Fix add event failed when 32-bit perf running in 64-bit kernel

From: Yang Jihong <hidden>
Date: 2021-07-15 11:41:04
Also in: lkml

Hello Hiramatsu,

On 2021/7/15 17:05, Masami Hiramatsu wrote:
On Thu, 15 Jul 2021 14:37:23 +0800
Yang Jihong [off-list ref] wrote:
quoted
The "address" member  of "struct probe_trace_point" uses long data type.
If kernel is 64-bit and perf program is 32-bit, size of "address" variable is
32 bits. As a result, upper 32 bits of address read from kernel are truncated,
An error occurs during address comparison in kprobe_warn_out_range function.

Before:

   # perf probe -a schedule
   schedule is out of .text, skip it.
     Error: Failed to add events.

Solution:
   Change data type of "address" variable to u64 and change corresponding
address printing and value assignment.

After:

   # perf.new.new probe -a schedule
   Added new event:
     probe:schedule       (on schedule)

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

           perf record -e probe:schedule -aR sleep 1

   # perf probe -l
     probe:schedule       (on schedule@kernel/sched/core.c)
   # perf record -e probe:schedule -aR sleep 1
   [ perf record: Woken up 1 times to write data ]
   [ perf record: Captured and wrote 0.156 MB perf.data (1366 samples) ]
   # perf report --stdio
   # To display the perf.data header info, please use --header/--header-only options.
   #
   #
   # Total Lost Samples: 0
   #
   # Samples: 1K of event 'probe:schedule'
   # Event count (approx.): 1366
   #
   # Overhead  Command          Shared Object      Symbol
   # ........  ...............  .................  ............
   #
        6.22%  migration/0      [kernel.kallsyms]  [k] schedule
        6.22%  migration/1      [kernel.kallsyms]  [k] schedule
        6.22%  migration/2      [kernel.kallsyms]  [k] schedule
        6.22%  migration/3      [kernel.kallsyms]  [k] schedule
        6.15%  migration/10     [kernel.kallsyms]  [k] schedule
        6.15%  migration/11     [kernel.kallsyms]  [k] schedule
        6.15%  migration/12     [kernel.kallsyms]  [k] schedule
        6.15%  migration/13     [kernel.kallsyms]  [k] schedule
        6.15%  migration/14     [kernel.kallsyms]  [k] schedule
        6.15%  migration/15     [kernel.kallsyms]  [k] schedule
        6.15%  migration/4      [kernel.kallsyms]  [k] schedule
        6.15%  migration/5      [kernel.kallsyms]  [k] schedule
        6.15%  migration/6      [kernel.kallsyms]  [k] schedule
        6.15%  migration/7      [kernel.kallsyms]  [k] schedule
        6.15%  migration/8      [kernel.kallsyms]  [k] schedule
        6.15%  migration/9      [kernel.kallsyms]  [k] schedule
        0.22%  rcu_sched        [kernel.kallsyms]  [k] schedule
   ...
   #
   # (Cannot load tips.txt file, please install perf!)
   #
OK, this looks good to me :)

Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Thanks for the Acked :)

Jihong
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help