[Patch v2 5/5] perf tests: Add topdown events counting and sampling tests

Dapeng Mi posted 5 patches 1 year, 7 months ago
There is a newer version of this series
[Patch v2 5/5] perf tests: Add topdown events counting and sampling tests
Posted by Dapeng Mi 1 year, 7 months ago
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
Re: [Patch v2 5/5] perf tests: Add topdown events counting and sampling tests
Posted by Liang, Kan 1 year, 7 months ago

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]"
>  }
>
Re: [Patch v2 5/5] perf tests: Add topdown events counting and sampling tests
Posted by Mi, Dapeng 1 year, 7 months ago
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]"
>>  }
>>