]> git.baikalelectronics.ru Git - kernel.git/commit
tracing/eprobe: Fix eprobe filter to make a filter correctly
authorMasami Hiramatsu (Google) <mhiramat@kernel.org>
Fri, 18 Nov 2022 01:15:34 +0000 (10:15 +0900)
committerMasami Hiramatsu (Google) <mhiramat@kernel.org>
Fri, 18 Nov 2022 01:15:34 +0000 (10:15 +0900)
commitc2c03ce3d4037e93a74c166c93f98094184d763c
treed113b8368169d5a717de3cd07240270bc85a87f1
parentc5391d6a7dd2aa1f782c07dd4891c44a048b240b
tracing/eprobe: Fix eprobe filter to make a filter correctly

Since the eprobe filter was defined based on the eprobe's trace event
itself, it doesn't work correctly. Use the original trace event of
the eprobe when making the filter so that the filter works correctly.

Without this fix:

 # echo 'e syscalls/sys_enter_openat \
flags_rename=$flags:u32 if flags < 1000' >> dynamic_events
 # echo 1 > events/eprobes/sys_enter_openat/enable
[  114.551550] event trace: Could not enable event sys_enter_openat
-bash: echo: write error: Invalid argument

With this fix:
 # echo 'e syscalls/sys_enter_openat \
flags_rename=$flags:u32 if flags < 1000' >> dynamic_events
 # echo 1 > events/eprobes/sys_enter_openat/enable
 # tail trace
cat-241     [000] ...1.   266.498449: sys_enter_openat: (syscalls.sys_enter_openat) flags_rename=0
cat-242     [000] ...1.   266.977640: sys_enter_openat: (syscalls.sys_enter_openat) flags_rename=0

Link: https://lore.kernel.org/all/166823166395.1385292.8931770640212414483.stgit@devnote3/
Fixes: c09b25eebc77 ("tracing/eprobe: Add eprobe filter support")
Reported-by: Rafael Mendonca <rafaelmendsr@gmail.com>
Tested-by: Rafael Mendonca <rafaelmendsr@gmail.com>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
kernel/trace/trace_eprobe.c