public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Liang, Kan" <kan.liang@linux.intel.com>
To: Ian Rogers <irogers@google.com>,
	Caleb Biggers <caleb.biggers@intel.com>,
	Perry Taylor <perry.taylor@intel.com>,
	Kshipra Bopardikar <kshipra.bopardikar@intel.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Ravi Bangoria <ravi.bangoria@amd.com>,
	Andi Kleen <ak@linux.intel.com>, Haowen Bai <baihaowen@meizu.com>,
	Riccardo Mancini <rickyman7@gmail.com>,
	Kim Phillips <kim.phillips@amd.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Shunsuke Nakamura <nakamura.shun@fujitsu.com>,
	Florian Fischer <florian.fischer@muhq.space>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Zhengjun Xing <zhengjun.xing@linux.intel.com>
Cc: Stephane Eranian <eranian@google.com>
Subject: Re: [PATCH 2/2] perf test: Add basic stat and topdown group test
Date: Thu, 5 May 2022 08:12:24 -0400	[thread overview]
Message-ID: <cb6065af-7e3f-53fa-5d82-67be04ca833f@linux.intel.com> (raw)
In-Reply-To: <20220505043846.3165303-2-irogers@google.com>



On 5/5/2022 12:38 AM, Ian Rogers wrote:
> Add a basic stat test.
> Add two tests of grouping behavior for topdown events. Topdown events
> are special as they must be grouped with the slots event first.
> 
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>   tools/perf/tests/shell/stat.sh | 65 ++++++++++++++++++++++++++++++++++
>   1 file changed, 65 insertions(+)
>   create mode 100755 tools/perf/tests/shell/stat.sh
> 
> diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
> new file mode 100755
> index 000000000000..80869ea6debc
> --- /dev/null
> +++ b/tools/perf/tests/shell/stat.sh
> @@ -0,0 +1,65 @@
> +#!/bin/sh
> +# perf stat tests
> +# SPDX-License-Identifier: GPL-2.0
> +
> +set -e
> +
> +err=0
> +test_default_stat() {
> +  echo "Basic stat command test"
> +  if ! perf stat true 2>&1 | egrep -q "Performance counter stats for 'true':"
> +  then
> +    echo "Basic stat command test [Failed]"
> +    err=1
> +    return
> +  fi
> +  echo "Basic stat command test [Success]"
> +}
> +
> +test_topdown_groups() {
> +  # Topdown events must be grouped with the slots event first. Test that
> +  # parse-events reorders this.
> +  echo "Topdown event group test"
> +  if ! perf stat -e '{slots,topdown-retiring}' true > /dev/null 2>&1
> +  then
> +    echo "Topdown event group test [Skipped event parsing failed]"
> +    return
> +  fi
> +  if perf stat -e '{slots,topdown-retiring}' true 2>&1 | egrep -q "<not supported>"
> +  then
> +    echo "Topdown event group test [Failed events not supported]"
> +    err=1
> +    return
> +  fi
> +  if perf stat -e '{topdown-retiring,slots}' true 2>&1 | egrep -q "<not supported>"
> +  then
> +    echo "Topdown event group test [Failed slots not reordered first]"
> +    err=1
> +    return
> +  fi
> +  echo "Topdown event group test [Success]"
> +}
> +
> +test_topdown_weak_groups() {
> +  # Weak groups break if the perf_event_open of multiple grouped events
> +  # fails. Breaking a topdown group causes the events to fail. Test a very large
> +  # grouping to see that the topdown events aren't broken out.
> +  echo "Topdown weak groups test"
> +  if ! perf stat -e '{slots,topdown-bad-spec,topdown-be-bound,topdown-fe-bound,topdown-retiring},branch-instructions,branch-misses,bus-cycles,cache-misses,cache-references,cpu-cycles,instructions,mem-loads,mem-stores,ref-cycles,baclears.any,ARITH.DIVIDER_ACTIVE' true > /dev/null 2>&1
> +  then
> +    echo "Topdown weak groups test [Skipped event parsing failed]"
> +    return
> +  fi
> +  if perf stat -e '{slots,topdown-bad-spec,topdown-be-bound,topdown-fe-bound,topdown-retiring,branch-instructions,branch-misses,bus-cycles,cache-misses,cache-references,cpu-cycles,instructions,mem-loads,mem-stores,ref-cycles,baclears.any,ARITH.DIVIDER_ACTIVE}:W' true 2>&1 | egrep -q "<not supported>"
> +  then
> +    echo "Topdown weak groups test [Failed events not supported]"
> +    err=1
> +    return
> +  fi
> +  echo "Topdown weak groups test [Success]"
> +}
> +

Should we check the existence of the slots event before the test?
The perf metrics feature only be available on the new platform after 
ICL. It doesn't work on Atom.

Also, I think the test may fails on the hybrid platform, since big core 
and small core have different formula for the topdown. I think we should 
avoid the test for the hybrid platform for now.
+Zhengjun, who is fixing the topdown gap for the hybrid platform. I 
think he may take care of the hybrid support later.

Thanks,
Kan
> +test_default_stat
> +test_topdown_groups
> +test_topdown_weak_groups
> +exit $err

  reply	other threads:[~2022-05-05 12:12 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-05  4:38 [PATCH 1/2] perf evlist: Keep topdown counters in weak group Ian Rogers
2022-05-05  4:38 ` [PATCH 2/2] perf test: Add basic stat and topdown group test Ian Rogers
2022-05-05 12:12   ` Liang, Kan [this message]
2022-05-05 15:22     ` Ian Rogers
2022-05-05 18:19       ` Liang, Kan
2022-05-05 18:35         ` Ian Rogers
2022-05-05 20:27           ` Liang, Kan
2022-05-05 11:56 ` [PATCH 1/2] perf evlist: Keep topdown counters in weak group Liang, Kan
2022-05-05 15:18   ` Ian Rogers
2022-05-05 18:15     ` Liang, Kan
2022-05-05 18:31       ` Ian Rogers
2022-05-05 19:43         ` Liang, Kan
2022-05-09 17:28           ` Ian Rogers
2022-05-09 21:01             ` Liang, Kan
2022-05-10 16:58               ` Ian Rogers
2022-05-10 19:24                 ` Liang, Kan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cb6065af-7e3f-53fa-5d82-67be04ca833f@linux.intel.com \
    --to=kan.liang@linux.intel.com \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=baihaowen@meizu.com \
    --cc=caleb.biggers@intel.com \
    --cc=eranian@google.com \
    --cc=florian.fischer@muhq.space \
    --cc=irogers@google.com \
    --cc=jolsa@kernel.org \
    --cc=kim.phillips@amd.com \
    --cc=kshipra.bopardikar@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=maddy@linux.ibm.com \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=nakamura.shun@fujitsu.com \
    --cc=namhyung@kernel.org \
    --cc=perry.taylor@intel.com \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@amd.com \
    --cc=rickyman7@gmail.com \
    --cc=zhengjun.xing@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox