On 1/10/25 10:43, Athira Rajeev wrote:
> perftool-testsuite_probe fails in test_adding_kernel as below:
> Regexp not found: "probe:inode_permission_11"
> -- [ FAIL ] -- perf_probe :: test_adding_kernel :: force-adding probes
> ::
> second probe adding (with force) (output regexp parsing)
> event syntax error: 'probe:inode_permission_11'
> \___ unknown tracepoint
>
> Error: File /sys/kernel/tracing//events/probe/inode_permission_11
> not found.
> Hint: Perhaps this kernel misses some CONFIG_ setting to
> enable this feature?.
>
> The test does the following:
> 1) Adds a probe point first using :
> $CMD_PERF probe --add $TEST_PROBE
> 2) Then tries to add same probe again without —force
> and expects it to fail. Next tries to add same probe again
> with —force. In this case, perf probe succeeds and adds
> the probe with a suffix number. Example:
>
> ./perf probe --add inode_permission
> Added new event:
> probe:inode_permission (on inode_permission)
>
> ./perf probe --add inode_permission --force
> Added new event:
> probe:inode_permission_1 (on inode_permission)
>
> ./perf probe --add inode_permission --force
> Added new event:
> probe:inode_permission_2 (on inode_permission)
>
> Each time, suffix is added to existing probe name.
> To get the suffix number, test cases uses :
> NO_OF_PROBES=`$CMD_PERF probe -l | wc -l`
>
> This will work if there is no other probe existing
> in the system. If there are any other probes other than
> kernel probes or inode_permission, ( example: any probe),
> "perf probe -l" will include count for other probes too.
>
> Example, in the system where this failed, already some
> probes were default added. So count became 10
> ./perf probe -l | wc -l
> 10
>
> So to be specific for "inode_permission", restrict the
> probe count check to that probe point alone using :
> NO_OF_PROBES=`$CMD_PERF probe -l $TEST_PROBE| wc -l`
>
> Similarly while removing the probe using "probe --del *",
> ( removing all probes ), check uses:
>
> ../common/check_all_lines_matched.pl "Removed event: probe:$TEST_PROBE"
>
> But if there are other probes in the system, the log will
> contain reference to other existing probe too. Hence change
> usage of check_all_lines_matched.pl to check_all_patterns_found.pl
> This will make sure expecting string comes in the result
>
> Signed-off-by: Athira Rajeev <atraj...@linux.vnet.ibm.com>
Acked-by: Veronika Molnarova <vmoln...@redhat.com>
Thanks,
Veronika
> ---
> Changelog:
> v1 -> v2:
> No code changes. After being reviewed by Michael Petlan, since
> initial patch was posted in 2024-10-14, rebased on top of latest
> perf-tools-next
>
> tools/perf/tests/shell/base_probe/test_adding_kernel.sh | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tools/perf/tests/shell/base_probe/test_adding_kernel.sh
> b/tools/perf/tests/shell/base_probe/test_adding_kernel.sh
> index d541ffd44a93..f8b5f096d0d7 100755
> --- a/tools/perf/tests/shell/base_probe/test_adding_kernel.sh
> +++ b/tools/perf/tests/shell/base_probe/test_adding_kernel.sh
> @@ -169,7 +169,7 @@ print_results $PERF_EXIT_CODE $CHECK_EXIT_CODE
> "force-adding probes :: second pr
> (( TEST_RESULT += $? ))
>
> # adding existing probe with '--force' should pass
> -NO_OF_PROBES=`$CMD_PERF probe -l | wc -l`
> +NO_OF_PROBES=`$CMD_PERF probe -l $TEST_PROBE| wc -l`
> $CMD_PERF probe --force --add $TEST_PROBE 2>
> $LOGS_DIR/adding_kernel_forceadd_03.err
> PERF_EXIT_CODE=$?
>
> @@ -205,7 +205,7 @@ print_results $PERF_EXIT_CODE $CHECK_EXIT_CODE "using
> doubled probe"
> $CMD_PERF probe --del \* 2> $LOGS_DIR/adding_kernel_removing_wildcard.err
> PERF_EXIT_CODE=$?
>
> -../common/check_all_lines_matched.pl "Removed event: probe:$TEST_PROBE"
> "Removed event: probe:${TEST_PROBE}_1" <
> $LOGS_DIR/adding_kernel_removing_wildcard.err
> +../common/check_all_patterns_found.pl "Removed event: probe:$TEST_PROBE"
> "Removed event: probe:${TEST_PROBE}_1" <
> $LOGS_DIR/adding_kernel_removing_wildcard.err
> CHECK_EXIT_CODE=$?
>
> print_results $PERF_EXIT_CODE $CHECK_EXIT_CODE "removing multiple probes"