tools/perf/tests/shell/stat.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
The cycles event will fallback to task-clock in the hybrid test when
running virtualized. Change the test to not fail for this.
Fixes: a6b8bb2addd0 ("perf test: Add a test for default perf stat command")
Signed-off-by: Ian Rogers <irogers@google.com>
---
tools/perf/tests/shell/stat.sh | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
index 5a2ca2bcf94d..da42427bb077 100755
--- a/tools/perf/tests/shell/stat.sh
+++ b/tools/perf/tests/shell/stat.sh
@@ -163,7 +163,11 @@ test_hybrid() {
# Run default Perf stat
cycles_events=$(perf stat -- true 2>&1 | grep -E "/cycles/| cycles " | wc -l)
- if [ "$pmus" -ne "$cycles_events" ]
+ # The expectation is that default output will have a cycles events on each
+ # hybrid PMU. In situations with no cycles PMU events, like virtualized, this
+ # can fall back to task-clock and so the end count may be 0. Fail if neither
+ # condition holds.
+ if [ "$pmus" -ne "$cycles_events" ] && [ "0" -ne "$cycles_events" ]
then
echo "hybrid test [Found $pmus PMUs but $cycles_events cycles events. Failed]"
err=1
--
2.47.1.613.gc27f4b7a9f-goog
On 12/12/2024 5:33 pm, Ian Rogers wrote:
> The cycles event will fallback to task-clock in the hybrid test when
> running virtualized. Change the test to not fail for this.
>
> Fixes: a6b8bb2addd0 ("perf test: Add a test for default perf stat command")
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
> tools/perf/tests/shell/stat.sh | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
> index 5a2ca2bcf94d..da42427bb077 100755
> --- a/tools/perf/tests/shell/stat.sh
> +++ b/tools/perf/tests/shell/stat.sh
> @@ -163,7 +163,11 @@ test_hybrid() {
> # Run default Perf stat
> cycles_events=$(perf stat -- true 2>&1 | grep -E "/cycles/| cycles " | wc -l)
>
> - if [ "$pmus" -ne "$cycles_events" ]
> + # The expectation is that default output will have a cycles events on each
> + # hybrid PMU. In situations with no cycles PMU events, like virtualized, this
> + # can fall back to task-clock and so the end count may be 0. Fail if neither
> + # condition holds.
> + if [ "$pmus" -ne "$cycles_events" ] && [ "0" -ne "$cycles_events" ]
> then
> echo "hybrid test [Found $pmus PMUs but $cycles_events cycles events. Failed]"
> err=1
Reviewed-by: James Clark <james.clark@linaro.org>
On Thu, Dec 12, 2024 at 09:33:54AM -0800, Ian Rogers wrote:
> The cycles event will fallback to task-clock in the hybrid test when
> running virtualized. Change the test to not fail for this.
>
> Fixes: a6b8bb2addd0 ("perf test: Add a test for default perf stat command")
I cannot find this commit.
> Signed-off-by: Ian Rogers <irogers@google.com>
Other than that,
Acked-by: Namhyung Kim <namhyung@kernel.org>
Thanks,
Namhyung
> ---
> tools/perf/tests/shell/stat.sh | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
> index 5a2ca2bcf94d..da42427bb077 100755
> --- a/tools/perf/tests/shell/stat.sh
> +++ b/tools/perf/tests/shell/stat.sh
> @@ -163,7 +163,11 @@ test_hybrid() {
> # Run default Perf stat
> cycles_events=$(perf stat -- true 2>&1 | grep -E "/cycles/| cycles " | wc -l)
>
> - if [ "$pmus" -ne "$cycles_events" ]
> + # The expectation is that default output will have a cycles events on each
> + # hybrid PMU. In situations with no cycles PMU events, like virtualized, this
> + # can fall back to task-clock and so the end count may be 0. Fail if neither
> + # condition holds.
> + if [ "$pmus" -ne "$cycles_events" ] && [ "0" -ne "$cycles_events" ]
> then
> echo "hybrid test [Found $pmus PMUs but $cycles_events cycles events. Failed]"
> err=1
> --
> 2.47.1.613.gc27f4b7a9f-goog
>
On Thu, Dec 12, 2024 at 5:39 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> On Thu, Dec 12, 2024 at 09:33:54AM -0800, Ian Rogers wrote:
> > The cycles event will fallback to task-clock in the hybrid test when
> > running virtualized. Change the test to not fail for this.
> >
> > Fixes: a6b8bb2addd0 ("perf test: Add a test for default perf stat command")
>
> I cannot find this commit.
Sorry, should have been:
Fixes: 65d11821910b ("perf test: Add a test for default perf stat command")
Thanks,
Ian
> > Signed-off-by: Ian Rogers <irogers@google.com>
>
> Other than that,
>
> Acked-by: Namhyung Kim <namhyung@kernel.org>
>
> Thanks,
> Namhyung
>
> > ---
> > tools/perf/tests/shell/stat.sh | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
> > index 5a2ca2bcf94d..da42427bb077 100755
> > --- a/tools/perf/tests/shell/stat.sh
> > +++ b/tools/perf/tests/shell/stat.sh
> > @@ -163,7 +163,11 @@ test_hybrid() {
> > # Run default Perf stat
> > cycles_events=$(perf stat -- true 2>&1 | grep -E "/cycles/| cycles " | wc -l)
> >
> > - if [ "$pmus" -ne "$cycles_events" ]
> > + # The expectation is that default output will have a cycles events on each
> > + # hybrid PMU. In situations with no cycles PMU events, like virtualized, this
> > + # can fall back to task-clock and so the end count may be 0. Fail if neither
> > + # condition holds.
> > + if [ "$pmus" -ne "$cycles_events" ] && [ "0" -ne "$cycles_events" ]
> > then
> > echo "hybrid test [Found $pmus PMUs but $cycles_events cycles events. Failed]"
> > err=1
> > --
> > 2.47.1.613.gc27f4b7a9f-goog
> >
On Thu, Dec 12, 2024 at 07:31:04PM -0800, Ian Rogers wrote:
> On Thu, Dec 12, 2024 at 5:39 PM Namhyung Kim <namhyung@kernel.org> wrote:
> > On Thu, Dec 12, 2024 at 09:33:54AM -0800, Ian Rogers wrote:
> > > The cycles event will fallback to task-clock in the hybrid test when
> > > running virtualized. Change the test to not fail for this.
> > > Fixes: a6b8bb2addd0 ("perf test: Add a test for default perf stat command")
> > I cannot find this commit.
> Sorry, should have been:
> Fixes: 65d11821910b ("perf test: Add a test for default perf stat command")
Thanks, applied to perf-tools-next, there was a minimal fuzz but I fixed
it up:
⬢ [acme@toolbox perf-tools-next]$ patch -p1 < ./v2_20241212_irogers_perf_test_stat_avoid_hybrid_assumption_when_virtualized.mbx
patching file tools/perf/tests/shell/stat.sh
Hunk #1 succeeded at 187 with fuzz 2 (offset 24 lines).
- Arnaldo
> Thanks,
> Ian
>
> > > Signed-off-by: Ian Rogers <irogers@google.com>
> >
> > Other than that,
> >
> > Acked-by: Namhyung Kim <namhyung@kernel.org>
> >
> > Thanks,
> > Namhyung
> >
> > > ---
> > > tools/perf/tests/shell/stat.sh | 6 +++++-
> > > 1 file changed, 5 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
> > > index 5a2ca2bcf94d..da42427bb077 100755
> > > --- a/tools/perf/tests/shell/stat.sh
> > > +++ b/tools/perf/tests/shell/stat.sh
> > > @@ -163,7 +163,11 @@ test_hybrid() {
> > > # Run default Perf stat
> > > cycles_events=$(perf stat -- true 2>&1 | grep -E "/cycles/| cycles " | wc -l)
> > >
> > > - if [ "$pmus" -ne "$cycles_events" ]
> > > + # The expectation is that default output will have a cycles events on each
> > > + # hybrid PMU. In situations with no cycles PMU events, like virtualized, this
> > > + # can fall back to task-clock and so the end count may be 0. Fail if neither
> > > + # condition holds.
> > > + if [ "$pmus" -ne "$cycles_events" ] && [ "0" -ne "$cycles_events" ]
> > > then
> > > echo "hybrid test [Found $pmus PMUs but $cycles_events cycles events. Failed]"
> > > err=1
> > > --
> > > 2.47.1.613.gc27f4b7a9f-goog
> > >
© 2016 - 2025 Red Hat, Inc.