Re: [PATCH V16 7/7] perf intel-pt: Add a test for pause / resume

From: Adrian Hunter
Date: Sat Dec 21 2024 - 14:30:51 EST


On 21/12/24 19:10, Ian Rogers wrote:
> On Sun, Dec 15, 2024 at 11:03 PM Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote:
>>
>> Add a simple sub-test to the "Miscellaneous Intel PT testing" test to
>> check pause / resume.
>>
>> Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
>> Acked-by: Ian Rogers <irogers@xxxxxxxxxx>
>> Reviewed-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
>> ---
>> tools/perf/tests/shell/test_intel_pt.sh | 28 +++++++++++++++++++++++++
>> 1 file changed, 28 insertions(+)
>>
>> diff --git a/tools/perf/tests/shell/test_intel_pt.sh b/tools/perf/tests/shell/test_intel_pt.sh
>> index e6f0070975f6..f3a9a040bacc 100755
>> --- a/tools/perf/tests/shell/test_intel_pt.sh
>> +++ b/tools/perf/tests/shell/test_intel_pt.sh
>> @@ -644,6 +644,33 @@ test_pipe()
>> return 0
>> }
>>
>> +test_pause_resume()
>> +{
>> + echo "--- Test with pause / resume ---"
>> + if ! perf_record_no_decode -o "${perfdatafile}" -e intel_pt/aux-action=start-paused/u uname ; then
>> + echo "SKIP: pause / resume is not supported"
>> + return 2
>> + fi
>> + if ! perf_record_no_bpf -o "${perfdatafile}" \
>> + -e intel_pt/aux-action=start-paused/u \
>> + -e instructions/period=50000,aux-action=resume,name=Resume/u \
>> + -e instructions/period=100000,aux-action=pause,name=Pause/u uname ; then
>> + echo "perf record with pause / resume failed"
>> + return 1
>> + fi
>> + if ! perf script -i "${perfdatafile}" --itrace=b -Fperiod,event | \
>> + awk 'BEGIN {paused=1;branches=0}
>> + /Resume/ {paused=0}
>> + /branches/ {if (paused) exit 1;branches=1}
>> + /Pause/ {paused=1}
>> + END {if (!branches) exit 1}' ; then
>> + echo "perf record with pause / resume failed"
>> + return 1
>> + fi
>> + echo OK
>
> Hi,
>
> this new test is now constantly making "Miscellaneous Intel PT testing" fail:
>
> ```
> ...
> --- Test with pause / resume ---
> Error:
> Failure to open event 'intel_pt/aux-action=start-paused/u' on PMU
> 'intel_pt' which will be removed.
> The 'aux_action' feature is not supported, update the kernel.
> Linux
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.003 MB
> /tmp/perf-test-intel-pt-sh.Hs8jcq0ADc/test-perf.data ]
> Error:
> Failure to open event 'intel_pt/aux-action=start-paused/u' on PMU
> 'intel_pt' which will be removed.
> The 'aux_action' feature is not supported, update the kernel.
> Error:
> Failure to open event 'Resume' on PMU 'cpu' which will be removed.
> The 'aux_action' feature is not supported, update the kernel.
> Error:
> Failure to open event 'Pause' on PMU 'cpu' which will be removed.
> The 'aux_action' feature is not supported, update the kernel.
> Linux
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.005 MB
> /tmp/perf-test-intel-pt-sh.Hs8jcq0ADc/test-perf.data ]
> perf record with pause / resume failed
> --- Cleaning up ---
> ...
> ```
>
> Should the fail be turned into a skip for missing kernel support?

Seems to skip for me with perf-tools-next:

--- Test with pause / resume ---
Error:
The 'aux_action' feature is not supported, update the kernel.
SKIP: pause / resume is not supported

perf version 6.13.rc2.g39c2547579aa


>
> Thanks,
> Ian
>
>> + return 0
>> +}
>> +
>> count_result()
>> {
>> if [ "$1" -eq 2 ] ; then
>> @@ -672,6 +699,7 @@ test_power_event || ret=$? ; count_result $ret ; ret=0
>> test_no_tnt || ret=$? ; count_result $ret ; ret=0
>> test_event_trace || ret=$? ; count_result $ret ; ret=0
>> test_pipe || ret=$? ; count_result $ret ; ret=0
>> +test_pause_resume || ret=$? ; count_result $ret ; ret=0
>>
>> cleanup
>>
>> --
>> 2.43.0
>>