All of lore.kernel.org
 help / color / mirror / Atom feed
From: Namhyung Kim <namhyung@kernel.org>
To: Ian Rogers <irogers@google.com>
Cc: 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>,
	Adrian Hunter <adrian.hunter@intel.com>,
	Kan Liang <kan.liang@linux.intel.com>,
	James Clark <james.clark@linaro.org>,
	Weilin Wang <weilin.wang@intel.com>,
	linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2] perf test: Skip Intel TPEBS under hypervisor
Date: Wed, 29 Jan 2025 14:10:10 -0800	[thread overview]
Message-ID: <Z5qnQnnkxGjYkTAM@google.com> (raw)
In-Reply-To: <CAP-5=fUw2v9+Ufai3HQBUB8LcHNDL=88w+J2SZtunn_B4iLGiw@mail.gmail.com>

On Tue, Jan 28, 2025 at 09:59:38AM -0800, Ian Rogers wrote:
> On Tue, Jan 28, 2025 at 9:42 AM Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > On Mon, Jan 27, 2025 at 08:37:39PM -0800, Ian Rogers wrote:
> > > Intel TPEBS test skips on non-Intel CPUs. On Intel CPUs under a
> > > hypervisor the cache-misses event may not be present. Skip the test
> > > under this condition.
> > >
> > > Refactor the output code to be placed in a file so that on a signal
> > > the file can be dumped. This was necessary to catch the issue above as
> > > the failing perf record command would fail without output.
> > >
> > > Signed-off-by: Ian Rogers <irogers@google.com>
> > > ---
> > > v2: Fix lost :R and use :p with record as it is ignored by perf stat.
> > > ---
> > >  .../perf/tests/shell/test_stat_intel_tpebs.sh | 36 +++++++++++--------
> > >  1 file changed, 22 insertions(+), 14 deletions(-)
> > >
> > > diff --git a/tools/perf/tests/shell/test_stat_intel_tpebs.sh b/tools/perf/tests/shell/test_stat_intel_tpebs.sh
> > > index 695dcb93bb5e..a330ecdb7ba5 100755
> > > --- a/tools/perf/tests/shell/test_stat_intel_tpebs.sh
> > > +++ b/tools/perf/tests/shell/test_stat_intel_tpebs.sh
> > > @@ -20,31 +20,39 @@ then
> > >    exit 2
> > >  fi
> > >
> > > +stat_output=$(mktemp /tmp/__perf_stat_tpebs_output.XXXXX)
> > > +
> > >  cleanup() {
> > > +  rm -rf "${stat_output}"
> > >    trap - EXIT TERM INT
> > >  }
> > >
> > >  trap_cleanup() {
> > >    echo "Unexpected signal in ${FUNCNAME[1]}"
> > > +  cat "${stat_output}"
> > >    cleanup
> > >    exit 1
> > >  }
> > >  trap trap_cleanup EXIT TERM INT
> > >
> > > -# Use this event for testing because it should exist in all platforms
> > > -event=cache-misses:R
> > > -
> > > -# Hybrid platforms output like "cpu_atom/cache-misses/R", rather than as above
> > > -alt_name=/cache-misses/R
> > > +# Event to be used in tests
> > > +event=cache-misses
> > >
> > > -# Without this cmd option, default value or zero is returned
> > > -#echo "Testing without --record-tpebs"
> > > -#result=$(perf stat -e "$event" true 2>&1)
> > > -#[[ "$result" =~ $event || "$result" =~ $alt_name ]] || exit 1
> > > +if ! perf record -e "${event}:p" -a -o /dev/null sleep 0.01 > "${stat_output}" 2>&1
> >
> > Shouldn't it simply be
> >
> >   if ! perf list hw | grep -q cache-misses
> 
> No, because that would succeed even if precise events weren't supported.

Oh I see.

> 
> > ?  Doesn't it work on hybrid?
> 
> Untested, but I don't see a difference between grepping an event from
> a file to using a match in a bash line. Neither specify a PMU so it is
> unclear to me why you'd think this would break.

No specific reason.  I thought checking `perf list` would be more
intuitive and then started to think there should be a reason.

Thanks,
Namhyung


  reply	other threads:[~2025-01-29 22:10 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-28  4:37 [PATCH v2] perf test: Skip Intel TPEBS under hypervisor Ian Rogers
2025-01-28 17:42 ` Namhyung Kim
2025-01-28 17:59   ` Ian Rogers
2025-01-29 22:10     ` Namhyung Kim [this message]
2025-01-29 17:57 ` Falcon, Thomas
2025-01-30 16:41   ` Ian Rogers

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=Z5qnQnnkxGjYkTAM@google.com \
    --to=namhyung@kernel.org \
    --cc=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=irogers@google.com \
    --cc=james.clark@linaro.org \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=weilin.wang@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.