[PATCH v5 0/6] Assume sysfs event names are always the same case

Ian Rogers posted 6 patches 1 year, 7 months ago
.../sysfs-bus-event_source-devices-events     |   6 +
tools/perf/tests/pmu-events.c                 |   2 +-
tools/perf/tests/pmu.c                        | 467 ++++++++++++------
tools/perf/util/parse-events.c                |   2 +-
tools/perf/util/parse-events.h                |   2 +-
tools/perf/util/pmu.c                         | 111 +++--
tools/perf/util/pmu.h                         |   4 +-
tools/perf/util/pmus.c                        |  16 +-
tools/perf/util/pmus.h                        |   2 +
9 files changed, 415 insertions(+), 197 deletions(-)
[PATCH v5 0/6] Assume sysfs event names are always the same case
Posted by Ian Rogers 1 year, 7 months ago
By assuming sysfs events are either upper or lower case, the case
insensitive event parsing can probe for the existence of files rather
then loading all events in a directory. When the event is a json event
like inst_retired.any on Intel, this reduces the number of openat
calls on a Tigerlake laptop from 325 down to 255.

v1 sent as an RFC:
    https://lore.kernel.org/lkml/20240413040812.4042051-1-irogers@google.com/

v2: addresses review feedback from Kan Liang, by updating
    documentation and adding tests.

v3: incorporate feedback from Thomas Richter <tmricht@linux.ibm.com>
    that s390 event names are all upper case. Do a lower case probe
    then an upper case probe, make documentation and tests also agree.

v4: add checks to write (kernel test robot) and fix a typo.

v5: Add reviewed-by: Kan Liang and fix potential uninitialized use.

Ian Rogers (6):
  perf test pmu-events: Make it clearer that pmu-events tests json
    events
  perf Document: Sysfs event names must be lower or upper case
  perf test pmu: Refactor format test and exposed test APIs
  perf test pmu: Add an eagerly loaded event test
  perf test pmu: Test all sysfs PMU event names are the same case
  perf pmu: Assume sysfs events are always the same case

 .../sysfs-bus-event_source-devices-events     |   6 +
 tools/perf/tests/pmu-events.c                 |   2 +-
 tools/perf/tests/pmu.c                        | 467 ++++++++++++------
 tools/perf/util/parse-events.c                |   2 +-
 tools/perf/util/parse-events.h                |   2 +-
 tools/perf/util/pmu.c                         | 111 +++--
 tools/perf/util/pmu.h                         |   4 +-
 tools/perf/util/pmus.c                        |  16 +-
 tools/perf/util/pmus.h                        |   2 +
 9 files changed, 415 insertions(+), 197 deletions(-)

-- 
2.45.0.rc1.225.g2a3ae87e7f-goog
Re: [PATCH v5 0/6] Assume sysfs event names are always the same case
Posted by Thomas Richter 1 year, 7 months ago
On 5/2/24 23:35, Ian Rogers wrote:
> By assuming sysfs events are either upper or lower case, the case
> insensitive event parsing can probe for the existence of files rather
> then loading all events in a directory. When the event is a json event
> like inst_retired.any on Intel, this reduces the number of openat
> calls on a Tigerlake laptop from 325 down to 255.
> 
> v1 sent as an RFC:
>     https://lore.kernel.org/lkml/20240413040812.4042051-1-irogers@google.com/
> 
> v2: addresses review feedback from Kan Liang, by updating
>     documentation and adding tests.
> 
> v3: incorporate feedback from Thomas Richter <tmricht@linux.ibm.com>
>     that s390 event names are all upper case. Do a lower case probe
>     then an upper case probe, make documentation and tests also agree.
> 
> v4: add checks to write (kernel test robot) and fix a typo.
> 
> v5: Add reviewed-by: Kan Liang and fix potential uninitialized use.
> 
> Ian Rogers (6):
>   perf test pmu-events: Make it clearer that pmu-events tests json
>     events
>   perf Document: Sysfs event names must be lower or upper case
>   perf test pmu: Refactor format test and exposed test APIs
>   perf test pmu: Add an eagerly loaded event test
>   perf test pmu: Test all sysfs PMU event names are the same case
>   perf pmu: Assume sysfs events are always the same case
> 
>  .../sysfs-bus-event_source-devices-events     |   6 +
>  tools/perf/tests/pmu-events.c                 |   2 +-
>  tools/perf/tests/pmu.c                        | 467 ++++++++++++------
>  tools/perf/util/parse-events.c                |   2 +-
>  tools/perf/util/parse-events.h                |   2 +-
>  tools/perf/util/pmu.c                         | 111 +++--
>  tools/perf/util/pmu.h                         |   4 +-
>  tools/perf/util/pmus.c                        |  16 +-
>  tools/perf/util/pmus.h                        |   2 +
>  9 files changed, 415 insertions(+), 197 deletions(-)
> 

I run the perf test suite on s390 and it looks good!

Tested-by: Thomas Richter <tmricht@linux.ibm.com>
-- 
Thomas Richter, Dept 3303, IBM s390 Linux Development, Boeblingen, Germany
--
IBM Deutschland Research & Development GmbH

Vorsitzender des Aufsichtsrats: Wolfgang Wendt

Geschäftsführung: David Faller

Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294

Re: [PATCH v5 0/6] Assume sysfs event names are always the same case
Posted by Arnaldo Carvalho de Melo 1 year, 7 months ago
On Thu, May 02, 2024 at 02:35:01PM -0700, Ian Rogers wrote:
> By assuming sysfs events are either upper or lower case, the case
> insensitive event parsing can probe for the existence of files rather
> then loading all events in a directory. When the event is a json event
> like inst_retired.any on Intel, this reduces the number of openat
> calls on a Tigerlake laptop from 325 down to 255.

Thanks, applied to perf-tools-next,

- Arnaldo
 
> v1 sent as an RFC:
>     https://lore.kernel.org/lkml/20240413040812.4042051-1-irogers@google.com/
> 
> v2: addresses review feedback from Kan Liang, by updating
>     documentation and adding tests.
> 
> v3: incorporate feedback from Thomas Richter <tmricht@linux.ibm.com>
>     that s390 event names are all upper case. Do a lower case probe
>     then an upper case probe, make documentation and tests also agree.
> 
> v4: add checks to write (kernel test robot) and fix a typo.
> 
> v5: Add reviewed-by: Kan Liang and fix potential uninitialized use.
> 
> Ian Rogers (6):
>   perf test pmu-events: Make it clearer that pmu-events tests json
>     events
>   perf Document: Sysfs event names must be lower or upper case
>   perf test pmu: Refactor format test and exposed test APIs
>   perf test pmu: Add an eagerly loaded event test
>   perf test pmu: Test all sysfs PMU event names are the same case
>   perf pmu: Assume sysfs events are always the same case
> 
>  .../sysfs-bus-event_source-devices-events     |   6 +
>  tools/perf/tests/pmu-events.c                 |   2 +-
>  tools/perf/tests/pmu.c                        | 467 ++++++++++++------
>  tools/perf/util/parse-events.c                |   2 +-
>  tools/perf/util/parse-events.h                |   2 +-
>  tools/perf/util/pmu.c                         | 111 +++--
>  tools/perf/util/pmu.h                         |   4 +-
>  tools/perf/util/pmus.c                        |  16 +-
>  tools/perf/util/pmus.h                        |   2 +
>  9 files changed, 415 insertions(+), 197 deletions(-)
> 
> -- 
> 2.45.0.rc1.225.g2a3ae87e7f-goog