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. -- 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"