tracing: Fixes to synthetic events
Subsystems (3)
Steven Rostedt
maintainerLinus,
This is not my 4.20 pull request (that will be coming shortly). This is just some last minute fixes that Masami sent me that I finally got around to test.
Masami had a couple more fixes to the synthetic events. One was a proper error return value, and the other is for the self tests.
Please pull the latest trace-v4.19-rc8-3 tree, which can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
trace-v4.19-rc8-3
Tag SHA1: 11638fdbcb30c761886e38a7efb561d6ca11272a Head SHA1: 0d0352d8b3d6d7ca9a710b40e194cbbaeb841c88
Masami Hiramatsu (2):
tracing: Return -ENOENT if there is no target synthetic event selftests/ftrace: Fix synthetic event test to delete event correctly
----
kernel/trace/trace_events_hist.c | 4 +++- .../inter-event/trigger-synthetic-event-createremove.tc | 12 ++++++------ 2 files changed, 9 insertions(+), 7 deletions(-)
Steven Rostedt
maintainerPATCH 1/2 tracing: Return -ENOENT if there is no target synthetic event
From: Masami Hiramatsu <[email protected]>
Return -ENOENT error if there is no target synthetic event. This notices an operation failure to user as below;
# echo 'wakeup_latency u64 lat; pid_t pid;' > synthetic_events # echo '!wakeup' >> synthetic_events sh: write error: No such file or directory
--- kernel/trace/trace_events_hist.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
kernel/trace/trace_events_hist.c +3 -1
@@ -1063,8 +1063,10 @@ static int create_synth_event(int argc, char **argv) event =NULL ; ret = -EEXIST ; goto out; - }else if (delete_event) + }else if (delete_event) { + ret = -ENOENT ; goto out; + }if (argc <2 ) { ret = -EINVAL ;
Signature · 1 line
2.19.0
Steven Rostedt
maintainerPATCH 2/2 selftests/ftrace: Fix synthetic event test to delete event correctly
In reply to Steven RostedtFrom: Masami Hiramatsu <[email protected]>
Fix the synthetic event test case to remove event correctly. If redirecting command to synthetic_event file without append mode, it cleans up all existing events and execute (parse) the command. This means "delete event" always fails to find the target event.
Since previous synthetic event has a bug which doesn't return -ENOENT even if it fails to find the deleting event, this test passed. But fixing that bug, this test fails because this test itself has a bug.
This fixes that bug by trying to delete event right after adding an event, and use append mode redirection ('>>') instead of normal redirection ('>').
--- .../trigger-synthetic-event-createremove.tc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic-event-createremove.tc +6 -6
@@ -35,18 +35,18 @@ fi reset_trigger -echo "Test create synthetic event with an error" -echo 'wakeup_latency u64 lat pid_t pid char' > synthetic_events > /dev/null +echo "Test remove synthetic event" +echo '!wakeup_latency u64 lat pid_t pid char comm[16]' >> synthetic_events if [ -d events/synthetic/wakeup_latency ]; then - fail "Created wakeup_latency synthetic event with an invalid format" + fail "Failed to delete wakeup_latency synthetic event" fi reset_trigger -echo "Test remove synthetic event" -echo '!wakeup_latency u64 lat pid_t pid char comm[16]' > synthetic_events +echo "Test create synthetic event with an error" +echo 'wakeup_latency u64 lat pid_t pid char' > synthetic_events > /dev/null if [ -d events/synthetic/wakeup_latency ]; then - fail "Failed to delete wakeup_latency synthetic event" + fail "Created wakeup_latency synthetic event with an invalid format" fi do_reset
Signature · 1 line
2.19.0
Quoted 4 lines · Steven Rostedt
This is not my 4.20 pull request (that will be coming shortly). This is just some last minute fixes that Masami sent me that I finally got around to test.
Pulled. Real pull request is next,
Linus