[PATCH] tools/perf/tests/base_probe: Fix check for the count of existing probes in test_adding_kernel

Athira Rajeev atrajeev at linux.vnet.ibm.com
Tue Dec 17 05:57:24 AEDT 2024



> On 5 Dec 2024, at 11:16 PM, Athira Rajeev <atrajeev at linux.vnet.ibm.com> wrote:
> 
> 
> 
>> On 14 Nov 2024, at 3:35 PM, Michael Petlan <mpetlan at redhat.com> wrote:
>> 
>> On Sun, 3 Nov 2024, Athira Rajeev wrote:
>>>> On 17 Oct 2024, at 3:44 PM, Michael Petlan <mpetlan at redhat.com> wrote:
>>>> 
>>>> On Mon, 14 Oct 2024, Athira Rajeev wrote:
>> [...]
>>>> 
>>>> I am wondering how it could happen that there were other
>>>> probes in the system?
>>> 
>>> Hi Michael,
>>> 
>> Hello Athira.
>> 
>>> Sorry for the late response.
>>> 
>>> Yes, there are uprobes listed as part of “perf probe” in the environment where I saw the test needing this change. Sharing the result below from perf probe: 
>>> 
>>> # ./perf probe -l
>>> uprobes:p_uprobe_dns_events_osquery4026531841 (on getaddrinfo in XX)
>>> uprobes:p_uprobe_dns_events_osquery4026532336 (on 0x129a60 in XX)
>>> uprobes:p_uprobe_dns_events_osquery4026532344 (on 0x129a60 in XX)
>>> uprobes:p_uprobe_ebpf_compat_check_osquery (on __GI___backtrace in XX)
>>> uprobes:p_uprobe_sys_hook_osquery (on backtrace_symbols in XX)
>>> 
>>> These can’t be removed.
>>> 
>>> # ./perf probe -d uprobes:p_uprobe_dns_events_osquery4026531841
>>> Removed event: uprobes:p_uprobe_dns_events_osquery4026531841
>>> Failed to delete event: Device or resource busy
>>> Error: Failed to delete events.
>>> 
>> 
>> Ah, this is interesting, I have never hit that. However, it makes sense,
>> if the resource is busy.
>> 
>> However, in that case it comes to my mind that in general, these tests
>> should not be run in any production environment, where one could rely on
>> some probes will exist, etc. In case some of the probes above was not
>> busy, it'd be probably cleaned up by the testcase, which might be unexpected
>> by the creator/user of the uprobes... Maybe we should get rid of the
>> probe cleaning for that cases, but I'd prefer to keep it.
>> 
>>> Considering above scenario, patch here takes the probe count using:
>>> NO_OF_PROBES=`$CMD_PERF probe -l $TEST_PROBE| wc -l`
>>> 
>>> Also similarly looks for TEST_PROBE in result log in case of probe —del as well
>>> 
>>> Any comments Michael ?
>>> 
>> Yes, we probably should tweak it as you suggest.
> 
> Hi,
> 
> Thanks for checking Michael.
> 
> If the patch looks good, can we please get this pulled in ?
> 

Hi,

Can we please pull in this patch if it looks fine.

Thanks
Athira
> Thanks
> Athira
>> 
>> Thanks,
>> Michael
>> 
>> 
>>> Thanks
>>> Athira
>>> 
>>>> 
>>>> Cheers,
>>>> 
>>>> Michael
>>>> 
>>>>> 
>>>>> 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 at linux.vnet.ibm.com>
>>>>> ---
>>>>> 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"
>>>>> -- 
>>>>> 2.43.5




More information about the Linuxppc-dev mailing list