| From 8dc75421ec91c40fbee5eb4f7744ae310e985dff Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 7 Apr 2020 14:34:19 +0800 |
| Subject: selftests/ftrace: Check the first record for kprobe_args_type.tc |
| |
| From: Xiao Yang <yangx.jy@cn.fujitsu.com> |
| |
| [ Upstream commit f0c0d0cf590f71b2213b29a7ded2cde3d0a1a0ba ] |
| |
| 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. |
| |
| Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com> |
| Acked-by: Masami Hiramatsu <mhiramat@kernel.org> |
| Signed-off-by: Shuah Khan <skhan@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| .../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 1bcb67dcae267..81490ecaaa927 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" |
| -- |
| 2.20.1 |
| |