perf intel-pt: Add a test for pause / resume

Add a simple sub-test to the "Miscellaneous Intel PT testing" test to
check pause / resume.

Reviewed-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Ian Rogers <irogers@google.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Leo Yan <leo.yan@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20241216070244.14450-8-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Adrian Hunter 2024-12-16 09:02:43 +02:00 committed by Arnaldo Carvalho de Melo
parent f8b301e0a4
commit 4c7f9ee2eb

@ -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
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