• K Prateek Nayak's avatar
    perf stat: Setup the foundation to allow aggregation based on cache topology · 995ed074
    K Prateek Nayak authored
    Processors based on chiplet architecture, such as AMD EPYC and Hygon do
    not expose the chiplet details in the sysfs CPU topology information.
    However, this information can be derived from the per CPU cache level
    information from the sysfs.
    
    'perf stat' has already supported aggregation based on topology
    information using core ID, socket ID, etc. It'll be useful to aggregate
    based on the cache topology to detect problems like imbalance and
    cache-to-cache sharing at various cache levels.
    
    This patch lays the foundation for aggregating data in 'perf stat' based
    on the processor's cache topology. The cmdline option to aggregate data
    based on the cache topology is added in Patch 4 of the series while this
    patch sets up all the necessary functions and variables required to
    support the new aggregation option.
    
    The patch also adds support to display per-cache aggregation, or save it
    as a JSON or CSV, as splitting it into a separate patch would break
    builds when compiling with "-Werror=switch-enum" where the compiler will
    complain about the lack of handling for the AGGR_CACHE case in the
    output functions.
    
    Committer notes:
    
    Don't use perf_stat_config in tools/perf/util/cpumap.c, this would make
    code that is in util/, thus not really specific to a single builtin, use
    a specific builtin config structure.
    
    Move the functions introduced in this patch from
    tools/perf/util/cpumap.c since it needs access to builtin specific
    and is not strictly needed to live in the util/ directory.
    
    With this 'perf test python' is back building.
    Suggested-by: default avatarGautham Shenoy <gautham.shenoy@amd.com>
    Signed-off-by: default avatarK Prateek Nayak <kprateek.nayak@amd.com>
    Acked-by: default avatarIan Rogers <irogers@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ananth Narayan <ananth.narayan@amd.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ravi Bangoria <ravi.bangoria@amd.com>
    Cc: Sandipan Das <sandipan.das@amd.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Wen Pu <puwen@hygon.cn>
    Link: https://lore.kernel.org/r/20230517172745.5833-3-kprateek.nayak@amd.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    995ed074
builtin-stat.c 77 KB