selftests/ftrace: Use long for synthetic event probe test
authorSteven Rostedt (Google) <rostedt@goodmis.org>
Wed, 30 Nov 2022 22:31:34 +0000 (17:31 -0500)
committerShuah Khan <skhan@linuxfoundation.org>
Fri, 2 Dec 2022 17:53:03 +0000 (10:53 -0700)
On 32bit the trigger-synthetic-eprobe.tc selftest fails with the error:

hist:syscalls:sys_exit_openat: error: Param type doesn't match synthetic event field type
  Command: hist:keys=common_pid:filename=$__arg__1,ret=ret:onmatch(syscalls.sys_enter_openat).trace(synth_open,$filename,$ret)
                                                                                                               ^
This is because the synth_open synthetic event is created with:

  echo "$SYNTH u64 filename; s64 ret;" > synthetic_events

Which works fine on 64 bit, as filename is a pointer and the return is
also a long. But for 32 bit architectures, it doesn't work.

Use "unsigned long" and "long" instead so that it works for both 64 bit
and 32 bit architectures.

Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/ftrace/test.d/trigger/inter-event/trigger-synthetic-eprobe.tc

index 914fe2e5d0309375eed3594174bd68b5692a4910..a5c117e80ae0f2f124432ba0c7404fb7a05a5203 100644 (file)
@@ -14,7 +14,7 @@ FIELD="filename"
 SYNTH="synth_open"
 EPROBE="eprobe_open"
 
-echo "$SYNTH u64 filename; s64 ret;" > synthetic_events
+echo "$SYNTH unsigned long filename; long ret;" > synthetic_events
 echo "hist:keys=common_pid:__arg__1=$FIELD" > events/$SYSTEM/$START/trigger
 echo "hist:keys=common_pid:filename=\$__arg__1,ret=ret:onmatch($SYSTEM.$START).trace($SYNTH,\$filename,\$ret)" > events/$SYSTEM/$END/trigger