Message ID | 20240903102005.78049-1-james.clark@linaro.org (mailing list archive) |
---|---|
Headers | show |
Series | Event parsing fixes | expand |
On Tue, Sep 03, 2024 at 11:19:44AM +0100, James Clark wrote: > I rebased this one and made some other fixes so that I could test it, > so I thought I'd repost it here in case it's helpful. I also added a > new test. > > But for the testing it all looks ok. > > There is one small difference where it now hides _all_ default > <not supported> events, when previously it would only hide some > selected subset of events like "stalled-cycles-frontend". I think > this is now more consistent across platforms because, for example, > Apple M only has cycles and instructions, and the rest of the > default events would always show as <not supported> there. > > Tested on Raptor Lake, Kaby Lake, Juno, N1, Ampere (with the DSU > cycles PMU) and I also faked an Apple M on Juno. > > Changes since v5: > * Test on x86 non hybrid > * Assume 1 PMU in the test when no PMUs expose /cpus file > > Changes since v4: > > * Hide all <not supported> default events when not verbose > * Remove previous note about <not supported> behavior from the cover > letter and replace it with a new note about the new behavior > > Changes since v3: > > * Rebase onto perf-tools-next 6236ebe07 > * Fix Intel TPEBS counting mode test > * Fix arm-spe build > * Add support for DT devices in stat test > * Add a new test for hybrid perf stat default arguments > > Ian Rogers (5): > perf evsel: Add alternate_hw_config and use in evsel__match > perf stat: Uniquify event name improvements > perf stat: Remove evlist__add_default_attrs use strings > perf evsel x86: Make evsel__has_perf_metrics work for legacy events > perf evsel: Remove pmu_name > > James Clark (2): > perf test: Make stat test work on DT devices > perf test: Add a test for default perf stat command Acked-by: Namhyung Kim <namhyung@kernel.org> Thanks, Namhyung > > tools/perf/arch/arm64/util/arm-spe.c | 4 +- > tools/perf/arch/x86/util/evlist.c | 74 +---- > tools/perf/arch/x86/util/evsel.c | 35 ++- > tools/perf/builtin-diff.c | 6 +- > tools/perf/builtin-stat.c | 291 +++++++----------- > tools/perf/tests/parse-events.c | 2 +- > tools/perf/tests/shell/stat.sh | 37 ++- > .../perf/tests/shell/test_stat_intel_tpebs.sh | 11 +- > tools/perf/util/evlist.c | 46 +-- > tools/perf/util/evlist.h | 12 - > tools/perf/util/evsel.c | 28 +- > tools/perf/util/evsel.h | 22 +- > tools/perf/util/metricgroup.c | 4 +- > tools/perf/util/parse-events.c | 58 ++-- > tools/perf/util/parse-events.h | 8 +- > tools/perf/util/parse-events.y | 2 +- > tools/perf/util/pmu.c | 6 +- > tools/perf/util/pmu.h | 2 +- > tools/perf/util/stat-display.c | 109 +++++-- > tools/perf/util/stat-shadow.c | 14 +- > tools/perf/util/stat.c | 2 +- > 21 files changed, 360 insertions(+), 413 deletions(-) > > -- > 2.34.1 >
On 2024-09-03 6:19 a.m., James Clark wrote: > I rebased this one and made some other fixes so that I could test it, > so I thought I'd repost it here in case it's helpful. I also added a > new test. > > But for the testing it all looks ok. > > There is one small difference where it now hides _all_ default > <not supported> events, when previously it would only hide some > selected subset of events like "stalled-cycles-frontend". I think > this is now more consistent across platforms because, for example, > Apple M only has cycles and instructions, and the rest of the > default events would always show as <not supported> there. > > Tested on Raptor Lake, Kaby Lake, Juno, N1, Ampere (with the DSU > cycles PMU) and I also faked an Apple M on Juno. > The tui mode in perf report is broken on Intel hybrid machine. $perf record -e cycles,instructions sleep 1 $perf report Without the patch set, in the tui mode, Available samples 7 cpu_atom/cycles/ ◆ 0 cpu_core/cycles/ ▒ 7 cpu_atom/instructions/ ▒ 0 cpu_core/instructions/ ▒ 0 dummy:u After applying the patch set, Available samples 7 /cycles/ ◆ 0 /cycles/ ▒ 7 /instructions/ ▒ 0 /instructions/ ▒ 0 dummy:u It looks something wrong with the uniquify_event_name(). Thanks, Kan > Changes since v5: > * Test on x86 non hybrid > * Assume 1 PMU in the test when no PMUs expose /cpus file > > Changes since v4: > > * Hide all <not supported> default events when not verbose > * Remove previous note about <not supported> behavior from the cover > letter and replace it with a new note about the new behavior > > Changes since v3: > > * Rebase onto perf-tools-next 6236ebe07 > * Fix Intel TPEBS counting mode test > * Fix arm-spe build > * Add support for DT devices in stat test > * Add a new test for hybrid perf stat default arguments > > Ian Rogers (5): > perf evsel: Add alternate_hw_config and use in evsel__match > perf stat: Uniquify event name improvements > perf stat: Remove evlist__add_default_attrs use strings > perf evsel x86: Make evsel__has_perf_metrics work for legacy events > perf evsel: Remove pmu_name > > James Clark (2): > perf test: Make stat test work on DT devices > perf test: Add a test for default perf stat command > > tools/perf/arch/arm64/util/arm-spe.c | 4 +- > tools/perf/arch/x86/util/evlist.c | 74 +---- > tools/perf/arch/x86/util/evsel.c | 35 ++- > tools/perf/builtin-diff.c | 6 +- > tools/perf/builtin-stat.c | 291 +++++++----------- > tools/perf/tests/parse-events.c | 2 +- > tools/perf/tests/shell/stat.sh | 37 ++- > .../perf/tests/shell/test_stat_intel_tpebs.sh | 11 +- > tools/perf/util/evlist.c | 46 +-- > tools/perf/util/evlist.h | 12 - > tools/perf/util/evsel.c | 28 +- > tools/perf/util/evsel.h | 22 +- > tools/perf/util/metricgroup.c | 4 +- > tools/perf/util/parse-events.c | 58 ++-- > tools/perf/util/parse-events.h | 8 +- > tools/perf/util/parse-events.y | 2 +- > tools/perf/util/pmu.c | 6 +- > tools/perf/util/pmu.h | 2 +- > tools/perf/util/stat-display.c | 109 +++++-- > tools/perf/util/stat-shadow.c | 14 +- > tools/perf/util/stat.c | 2 +- > 21 files changed, 360 insertions(+), 413 deletions(-) >
On 9/5/24 19:20, Liang, Kan wrote: > > > On 2024-09-03 6:19 a.m., James Clark wrote: >> I rebased this one and made some other fixes so that I could test it, >> so I thought I'd repost it here in case it's helpful. I also added a >> new test. >> >> But for the testing it all looks ok. >> >> There is one small difference where it now hides _all_ default >> <not supported> events, when previously it would only hide some >> selected subset of events like "stalled-cycles-frontend". I think >> this is now more consistent across platforms because, for example, >> Apple M only has cycles and instructions, and the rest of the >> default events would always show as <not supported> there. >> >> Tested on Raptor Lake, Kaby Lake, Juno, N1, Ampere (with the DSU >> cycles PMU) and I also faked an Apple M on Juno. >> > > The tui mode in perf report is broken on Intel hybrid machine. > > $perf record -e cycles,instructions sleep 1 > $perf report > > Without the patch set, in the tui mode, > Available samples > 7 cpu_atom/cycles/ > ◆ > 0 cpu_core/cycles/ > ▒ > 7 cpu_atom/instructions/ > ▒ > 0 cpu_core/instructions/ > ▒ > 0 dummy:u > > After applying the patch set, > Available samples > 7 /cycles/ > ◆ > 0 /cycles/ > ▒ > 7 /instructions/ > ▒ > 0 /instructions/ > ▒ > 0 dummy:u > > > It looks something wrong with the uniquify_event_name(). > > Thanks, > Kan > Thanks, taking a look.