lkml.org 
[lkml]   [2023]   [May]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[PATCH v4 19/35] perf topology: Avoid hybrid list for hybrid topology
    From
    Avoid perf_pmu__for_each_hybrid_pmu in hybrid_topology__new by
    scanning all PMUs and processing the is_core ones. Add early exit for
    non-hybrid.

    Signed-off-by: Ian Rogers <irogers@google.com>
    Reviewed-by: Kan Liang <kan.liang@linux.intel.com>
    ---
    tools/perf/util/cputopo.c | 19 ++++++++++++++-----
    1 file changed, 14 insertions(+), 5 deletions(-)

    diff --git a/tools/perf/util/cputopo.c b/tools/perf/util/cputopo.c
    index ca1d833a0c26..a5c259bd5cc0 100644
    --- a/tools/perf/util/cputopo.c
    +++ b/tools/perf/util/cputopo.c
    @@ -12,7 +12,7 @@
    #include "cpumap.h"
    #include "debug.h"
    #include "env.h"
    -#include "pmu-hybrid.h"
    +#include "pmu.h"

    #define PACKAGE_CPUS_FMT \
    "%s/devices/system/cpu/cpu%d/topology/package_cpus_list"
    @@ -469,11 +469,17 @@ static int load_hybrid_node(struct hybrid_topology_node *node,

    struct hybrid_topology *hybrid_topology__new(void)
    {
    - struct perf_pmu *pmu;
    + struct perf_pmu *pmu = NULL;
    struct hybrid_topology *tp = NULL;
    - u32 nr, i = 0;
    + u32 nr = 0, i = 0;

    - nr = perf_pmu__hybrid_pmu_num();
    + if (!perf_pmu__has_hybrid())
    + return NULL;
    +
    + while ((pmu = perf_pmu__scan(pmu)) != NULL) {
    + if (pmu->is_core)
    + nr++;
    + }
    if (nr == 0)
    return NULL;

    @@ -482,7 +488,10 @@ struct hybrid_topology *hybrid_topology__new(void)
    return NULL;

    tp->nr = nr;
    - perf_pmu__for_each_hybrid_pmu(pmu) {
    + while ((pmu = perf_pmu__scan(pmu)) != NULL) {
    + if (!pmu->is_core)
    + continue;
    +
    if (load_hybrid_node(&tp->nodes[i], pmu)) {
    hybrid_topology__delete(tp);
    return NULL;
    --
    2.41.0.rc0.172.g3f132b7071-goog
    \
     
     \ /
      Last update: 2023-05-26 23:57    [W:2.103 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site