Add counting and leader sampling tests to verify topdown events including
raw format can be reordered correctly.
Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
---
tools/perf/tests/shell/record.sh | 6 ++++++
tools/perf/tests/shell/stat.sh | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/tools/perf/tests/shell/record.sh b/tools/perf/tests/shell/record.sh
index 8e3e66780fed..164f0cf9648e 100755
--- a/tools/perf/tests/shell/record.sh
+++ b/tools/perf/tests/shell/record.sh
@@ -214,6 +214,12 @@ test_leader_sampling() {
index=$(($index+1))
prev_branches=$branches
done < $script_output
+ if ! perf record -o "${perfdata}" -e "{instructions,slots,topdown-retiring}:S" true 2> /dev/null
+ then
+ echo "Leader sampling [Failed topdown events not reordered correctly]"
+ err=1
+ return
+ fi
echo "Basic leader sampling test [Success]"
}
diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
index 3f1e67795490..092a7a2abcf8 100755
--- a/tools/perf/tests/shell/stat.sh
+++ b/tools/perf/tests/shell/stat.sh
@@ -79,6 +79,12 @@ test_topdown_groups() {
err=1
return
fi
+ if perf stat -e '{instructions,r400,r8000}' true 2>&1 | grep -E -q "<not supported>"
+ then
+ echo "Topdown event group test [Failed raw format slots not reordered first]"
+ err=1
+ return
+ fi
echo "Topdown event group test [Success]"
}
--
2.40.1
On 2024-07-08 10:42 a.m., Dapeng Mi wrote:
> Add counting and leader sampling tests to verify topdown events including
> raw format can be reordered correctly.
>
> Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
> ---
> tools/perf/tests/shell/record.sh | 6 ++++++
> tools/perf/tests/shell/stat.sh | 6 ++++++
> 2 files changed, 12 insertions(+)
>
> diff --git a/tools/perf/tests/shell/record.sh b/tools/perf/tests/shell/record.sh
> index 8e3e66780fed..164f0cf9648e 100755
> --- a/tools/perf/tests/shell/record.sh
> +++ b/tools/perf/tests/shell/record.sh
> @@ -214,6 +214,12 @@ test_leader_sampling() {
> index=$(($index+1))
> prev_branches=$branches
> done < $script_output
The topdown is a model specific feature and only be available for the
big core.
We need to check if topdown is supported before doing the test.
The same check in the test_topdown_groups() may be used here as well.
if ! perf stat -e '{slots,topdown-retiring}' true > /dev/null 2>&1
then
echo "Topdown sampling read test [Skipped event parsing failed]"
return
fi
Thanks,
Kan
> + if ! perf record -o "${perfdata}" -e "{instructions,slots,topdown-retiring}:S" true 2> /dev/null
> + then
> + echo "Leader sampling [Failed topdown events not reordered correctly]"
> + err=1
> + return
> + fi
> echo "Basic leader sampling test [Success]"
> }
>
> diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
> index 3f1e67795490..092a7a2abcf8 100755
> --- a/tools/perf/tests/shell/stat.sh
> +++ b/tools/perf/tests/shell/stat.sh
> @@ -79,6 +79,12 @@ test_topdown_groups() {
> err=1
> return
> fi
> + if perf stat -e '{instructions,r400,r8000}' true 2>&1 | grep -E -q "<not supported>"
> + then
> + echo "Topdown event group test [Failed raw format slots not reordered first]"
> + err=1
> + return
> + fi
> echo "Topdown event group test [Success]"
> }
>
On 7/8/2024 9:40 PM, Liang, Kan wrote:
>
> On 2024-07-08 10:42 a.m., Dapeng Mi wrote:
>> Add counting and leader sampling tests to verify topdown events including
>> raw format can be reordered correctly.
>>
>> Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
>> ---
>> tools/perf/tests/shell/record.sh | 6 ++++++
>> tools/perf/tests/shell/stat.sh | 6 ++++++
>> 2 files changed, 12 insertions(+)
>>
>> diff --git a/tools/perf/tests/shell/record.sh b/tools/perf/tests/shell/record.sh
>> index 8e3e66780fed..164f0cf9648e 100755
>> --- a/tools/perf/tests/shell/record.sh
>> +++ b/tools/perf/tests/shell/record.sh
>> @@ -214,6 +214,12 @@ test_leader_sampling() {
>> index=$(($index+1))
>> prev_branches=$branches
>> done < $script_output
> The topdown is a model specific feature and only be available for the
> big core.
>
> We need to check if topdown is supported before doing the test.
>
> The same check in the test_topdown_groups() may be used here as well.
>
> if ! perf stat -e '{slots,topdown-retiring}' true > /dev/null 2>&1
> then
> echo "Topdown sampling read test [Skipped event parsing failed]"
> return
> fi
Sure. Thanks.
>
> Thanks,
> Kan
>
>> + if ! perf record -o "${perfdata}" -e "{instructions,slots,topdown-retiring}:S" true 2> /dev/null
>> + then
>> + echo "Leader sampling [Failed topdown events not reordered correctly]"
>> + err=1
>> + return
>> + fi
>> echo "Basic leader sampling test [Success]"
>> }
>>
>> diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
>> index 3f1e67795490..092a7a2abcf8 100755
>> --- a/tools/perf/tests/shell/stat.sh
>> +++ b/tools/perf/tests/shell/stat.sh
>> @@ -79,6 +79,12 @@ test_topdown_groups() {
>> err=1
>> return
>> fi
>> + if perf stat -e '{instructions,r400,r8000}' true 2>&1 | grep -E -q "<not supported>"
>> + then
>> + echo "Topdown event group test [Failed raw format slots not reordered first]"
>> + err=1
>> + return
>> + fi
>> echo "Topdown event group test [Success]"
>> }
>>
© 2016 - 2026 Red Hat, Inc.