• Ian Rogers's avatar
    perf pmu: Lazily compute default config · 0197da7a
    Ian Rogers authored
    The default config is computed during creation of the PMU and may do
    things like scanning sysfs, when the PMU may just be used as part of
    scanning. Change default_config to perf_event_attr_init_default, a
    callback that is used when a default config needs initializing. This
    avoids holding onto the memory for a perf_event_attr and copying.
    
    On a tigerlake laptop running the pmu-scan benchmark:
    
    Before:
    Running 'internals/pmu-scan' benchmark:
    Computing performance of sysfs PMU event scan for 100 times
      Average core PMU scanning took: 28.780 usec (+- 0.503 usec)
      Average PMU scanning took: 283.480 usec (+- 18.471 usec)
    Number of openat syscalls: 30,227
    
    After:
    Running 'internals/pmu-scan' benchmark:
    Computing performance of sysfs PMU event scan for 100 times
      Average core PMU scanning took: 27.880 usec (+- 0.169 usec)
      Average PMU scanning took: 245.260 usec (+- 15.758 usec)
    Number of openat syscalls: 28,914
    
    Over 3 runs it is a nearly 12% reduction in execution time and a 4.3%
    of openat calls.
    Signed-off-by: default avatarIan Rogers <irogers@google.com>
    Reviewed-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Cc: Ravi Bangoria <ravi.bangoria@amd.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
    Cc: Yang Jihong <yangjihong1@huawei.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: Jing Zhang <renyu.zj@linux.alibaba.com>
    Cc: Kajol Jain <kjain@linux.ibm.com>
    Cc: Thomas Richter <tmricht@linux.ibm.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: John Garry <john.g.garry@oracle.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: coresight@lists.linaro.org
    Link: https://lore.kernel.org/r/20231012175645.1849503-8-irogers@google.comSigned-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
    0197da7a
parse-events.c 70.1 KB