[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <a04c37c6-8f83-45e9-a39f-1e1ba613f7f4@amd.com>
Date: Fri, 25 Apr 2025 15:42:39 +0530
From: Ravi Bangoria <ravi.bangoria@....com>
To: "Liang, Kan" <kan.liang@...ux.intel.com>
Cc: Luo Gengkun <luogengkun@...weicloud.com>,
"peterz@...radead.org" <peterz@...radead.org>,
"mingo@...hat.com" <mingo@...hat.com>, "acme@...nel.org" <acme@...nel.org>,
"namhyung@...nel.org" <namhyung@...nel.org>,
"mark.rutland@....com" <mark.rutland@....com>,
"alexander.shishkin@...ux.intel.com" <alexander.shishkin@...ux.intel.com>,
"jolsa@...nel.org" <jolsa@...nel.org>,
"irogers@...gle.com" <irogers@...gle.com>,
"adrian.hunter@...el.com" <adrian.hunter@...el.com>,
"tglx@...utronix.de" <tglx@...utronix.de>, "bp@...en8.de" <bp@...en8.de>,
"dave.hansen@...ux.intel.com" <dave.hansen@...ux.intel.com>,
"x86@...nel.org" <x86@...nel.org>, "hpa@...or.com" <hpa@...or.com>,
"linux-perf-users@...r.kernel.org" <linux-perf-users@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Ravi Bangoria <ravi.bangoria@....com>
Subject: Re: [PATCH] perf/x86: Fix open counting event error
Hi Kan,
>>> Perf doesn't work at perf stat for hardware events:
>>>
>>> $perf stat -- sleep 1
>>> Performance counter stats for 'sleep 1':
>>> 16.44 msec task-clock # 0.016 CPUs utilized
>>> 2 context-switches # 121.691 /sec
>>> 0 cpu-migrations # 0.000 /sec
>>> 54 page-faults # 3.286 K/sec
>>> <not supported> cycles
>>> <not supported> instructions
>>> <not supported> branches
>>> <not supported> branch-misses
>>
>> Wondering if it is worth to add this in perf test. Something like
>> below?
>>
>> --- a/tools/perf/tests/shell/stat.sh
>> +++ b/tools/perf/tests/shell/stat.sh
>> @@ -16,6 +16,24 @@ test_default_stat() {
>> echo "Basic stat command test [Success]"
>> }
>>
>> +test_stat_count() {
>> + echo "stat count test"
>> +
>> + if ! perf list | grep -q "cpu-cycles OR cycles"
>> + then
>> + echo "stat count test [Skipped cpu-cycles event missing]"
>> + return
>> + fi
>> +
>> + if perf stat -e cycles true 2>&1 | grep -E -q "<not supported>"
>> + then
>> + echo "stat count test [Failed]"
>> + err=1
>> + return
>> + fi
>> + echo "stat count test [Success]"
>> +}
>> +
>> test_stat_record_report() {
>> echo "stat record and report test"
>> if ! perf stat record -o - true | perf stat report -i - 2>&1 | \
>> @@ -201,6 +219,7 @@ test_hybrid() {
>> }
>>
>> test_default_stat
>> +test_stat_count
>
> I think the perf stat default should always be supported, not just cycles.
> Maybe we should add the check in test_default_stat?
Do you mean:
if perf stat true 2>&1 | grep -E -q "<not supported>"
err=1
Isn't this ambiguous? Also, this fails on machines where HW pmu
is not supported. For ex, on my qemu guest with `-cpu pmu=off`:
$ ./perf list | grep "cpu-cycles OR cycles"
<empty output>
$ ./perf stat true
Performance counter stats for 'true':
0.42 msec task-clock:u # 0.470 CPUs utilized
0 context-switches:u # 0.000 /sec
0 cpu-migrations:u # 0.000 /sec
48 page-faults:u # 113.874 K/sec
<not supported> cycles:u
Thanks,
Ravi
Powered by blists - more mailing lists