]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
perf tests base_probe: Fix check for the count of existing probes in test_adding_kernel
authorAthira Rajeev <atrajeev@linux.vnet.ibm.com>
Fri, 10 Jan 2025 09:43:24 +0000 (15:13 +0530)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 14 Jan 2025 17:57:19 +0000 (14:57 -0300)
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 <atrajeev@linux.vnet.ibm.com>
Acked-by: Veronika Molnarova <vmolnaro@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Disha Goel <disgoel@linux.vnet.ibm.com>
Cc: Hari Bathini <hbathini@linux.ibm.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20250110094324.94604-1-atrajeev@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/tests/shell/base_probe/test_adding_kernel.sh

index d541ffd44a9332b69df2beb9dff1c950e277a4b8..f8b5f096d0d723460b580e1d2e44051a32c0bc2e 100755 (executable)
@@ -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"