perf tests: Add topdown events counting and sampling tests
authorDapeng Mi <dapeng1.mi@linux.intel.com>
Fri, 13 Sep 2024 08:47:11 +0000 (08:47 +0000)
committerNamhyung Kim <namhyung@kernel.org>
Mon, 30 Sep 2024 22:23:44 +0000 (15:23 -0700)
Add counting and leader sampling tests to verify topdown events including
raw format can be reordered correctly.

Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
Cc: Yongwei Ma <yongwei.ma@intel.com>
Link: https://lore.kernel.org/r/20240913084712.13861-6-dapeng1.mi@linux.intel.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/tests/shell/record.sh
tools/perf/tests/shell/stat.sh

index 45baf79106403204a08aec9a28d2c5e864d84ea7..8d6366d96883edb3b50d26421407a227c660363c 100755 (executable)
@@ -255,6 +255,22 @@ test_leader_sampling() {
   echo "Basic leader sampling test [Success]"
 }
 
+test_topdown_leader_sampling() {
+  echo "Topdown leader sampling test"
+  if ! perf stat -e "{slots,topdown-retiring}" true 2> /dev/null
+  then
+    echo "Topdown leader sampling [Skipped event parsing failed]"
+    return
+  fi
+  if ! perf record -o "${perfdata}" -e "{instructions,slots,topdown-retiring}:S" true 2> /dev/null
+  then
+    echo "Topdown leader sampling [Failed topdown events not reordered correctly]"
+    err=1
+    return
+  fi
+  echo "Topdown leader sampling test [Success]"
+}
+
 # raise the limit of file descriptors to minimum
 if [[ $default_fd_limit -lt $min_fd_limit ]]; then
        ulimit -Sn $min_fd_limit
@@ -267,6 +283,7 @@ test_workload
 test_branch_counter
 test_cgroup
 test_leader_sampling
+test_topdown_leader_sampling
 
 # restore the default value
 ulimit -Sn $default_fd_limit
index 5a2ca2bcf94d136bb9d8ca2b7c352a0b0ba54b14..b90a35906ee7d7741b6e152acf093014e5c21cca 100755 (executable)
@@ -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]"
 }