On Tue, 7 Apr 2020 09:54:00 -0400 Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > On Tue, 7 Apr 2020 14:34:19 +0800 > Xiao Yang <yangx.jy@xxxxxxxxxxxxxx> wrote: > > > It is possible to get multiple records from trace during test and then more > > than 4 arguments are assigned to ARGS. This situation results in the failure > > of kprobe_args_type.tc. For example: > > ----------------------------------------------------------- > > grep testprobe trace > > ftracetest-5902 [001] d... 111195.682227: testprobe: (_do_fork+0x0/0x460) arg1=334823024 arg2=334823024 arg3=0x13f4fe70 arg4=7 > > pmlogger-5949 [000] d... 111195.709898: testprobe: (_do_fork+0x0/0x460) arg1=345308784 arg2=345308784 arg3=0x1494fe70 arg4=7 > > grep testprobe trace > > sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/' > > ARGS='334823024 334823024 0x13f4fe70 7 > > 345308784 345308784 0x1494fe70 7' > > ----------------------------------------------------------- > > > > We don't care which process calls do_fork so just check the first record to > > fix the issue. > > Looks good to me, but Masami will need to ack it. > Ah, good catch! I had fixed similar issue but missed this one. Acked-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx> Thank you! > -- Steve > > > > > Signed-off-by: Xiao Yang <yangx.jy@xxxxxxxxxxxxxx> > > --- > > .../testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc > > index 1bcb67dcae26..81490ecaaa92 100644 > > --- a/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc > > +++ b/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_args_type.tc > > @@ -38,7 +38,7 @@ for width in 64 32 16 8; do > > echo 0 > events/kprobes/testprobe/enable > > > > : "Confirm the arguments is recorded in given types correctly" > > - ARGS=`grep "testprobe" trace | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'` > > + ARGS=`grep "testprobe" trace | head -n 1 | sed -e 's/.* arg1=\(.*\) arg2=\(.*\) arg3=\(.*\) arg4=\(.*\)/\1 \2 \3 \4/'` > > check_types $ARGS $width > > > > : "Clear event for next loop" > -- Masami Hiramatsu <mhiramat@xxxxxxxxxx>