Messages in this thread | | | Date | Tue, 7 Nov 2023 13:36:37 -0500 | Subject | Re: [PATCH] perf test: Basic branch counter support | From | "Liang, Kan" <> |
| |
On 2023-11-07 1:05 p.m., Ian Rogers wrote: > On Tue, Nov 7, 2023 at 9:44 AM <kan.liang@linux.intel.com> wrote: >> >> From: Kan Liang <kan.liang@linux.intel.com> >> >> Add a basic test for the branch counter feature. >> >> The test verifies that >> - The new filter can be successfully applied on the supported platforms. >> - The counter value can be outputted via the perf report -D >> >> Signed-off-by: Kan Liang <kan.liang@linux.intel.com> > > Thanks Kan! > >> --- >> tools/perf/tests/shell/record.sh | 30 ++++++++++++++++++++++++++++++ >> 1 file changed, 30 insertions(+) >> >> diff --git a/tools/perf/tests/shell/record.sh b/tools/perf/tests/shell/record.sh >> index 4fbc74805d52..2783e867c07c 100755 >> --- a/tools/perf/tests/shell/record.sh >> +++ b/tools/perf/tests/shell/record.sh >> @@ -11,6 +11,9 @@ err=0 >> perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX) >> testprog="perf test -w thloop" >> testsym="test_loop" >> +cpu_pmu_dir="/sys/bus/event_source/devices/cpu*" >> +br_cntr_file="/caps/branch_counter_nr" >> +br_cntr_output="branch stack counters" >> >> cleanup() { >> rm -rf "${perfdata}" >> @@ -154,10 +157,37 @@ test_workload() { >> echo "Basic target workload test [Success]" >> } >> >> +test_branch_counter() { >> + echo "Basic branch counter test" >> + # Check if the branch counter feature is supported > > If $cpu_pmu_dir is empty, e.g. ARM and S390, this should also skip. >
Yes, I've tested with a fake unsupported dir. The test case is skipped as well.
>> + for dir in $cpu_pmu_dir >> + do >> + if [ ! -e "$dir$br_cntr_file" ] >> + then >> + echo "Not support branch counter feature [Skipped]" > > Perhaps here it'd be clearer to output: > echo "branch counter feature not supported on all core PMUs ($dir) [Skipped]" >
Sure, I will change it in V2.
Thanks, Kan
> Thanks, > Ian > >> + return >> + fi >> + done >> + if ! perf record -o "${perfdata}" -j any,counter ${testprog} 2> /dev/null >> + then >> + echo "Basic branch counter test [Failed record]" >> + err=1 >> + return >> + fi >> + if ! perf report -i "${perfdata}" -D -q | grep -q "$br_cntr_output" >> + then >> + echo "Basic branch record test [Failed missing output]" >> + err=1 >> + return >> + fi >> + echo "Basic branch counter test [Success]" >> +} >> + >> test_per_thread >> test_register_capture >> test_system_wide >> test_workload >> +test_branch_counter >> >> cleanup >> exit $err >> -- >> 2.35.1 >> >
| |