cputopo.c (1215795cebb24578afd378b23d206014327558c4) | cputopo.c (1eaf496ed386934f1c2439a120fe84a05194f91a) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2#include <sys/param.h> 3#include <sys/utsname.h> 4#include <inttypes.h> 5#include <stdlib.h> 6#include <string.h> 7#include <api/fs/fs.h> 8#include <linux/zalloc.h> 9#include <perf/cpumap.h> 10 11#include "cputopo.h" 12#include "cpumap.h" 13#include "debug.h" 14#include "env.h" 15#include "pmu.h" | 1// SPDX-License-Identifier: GPL-2.0 2#include <sys/param.h> 3#include <sys/utsname.h> 4#include <inttypes.h> 5#include <stdlib.h> 6#include <string.h> 7#include <api/fs/fs.h> 8#include <linux/zalloc.h> 9#include <perf/cpumap.h> 10 11#include "cputopo.h" 12#include "cpumap.h" 13#include "debug.h" 14#include "env.h" 15#include "pmu.h" |
16#include "pmus.h" |
|
16 17#define PACKAGE_CPUS_FMT \ 18 "%s/devices/system/cpu/cpu%d/topology/package_cpus_list" 19#define PACKAGE_CPUS_FMT_OLD \ 20 "%s/devices/system/cpu/cpu%d/topology/core_siblings_list" 21#define DIE_CPUS_FMT \ 22 "%s/devices/system/cpu/cpu%d/topology/die_cpus_list" 23#define CORE_CPUS_FMT \ --- 444 unchanged lines hidden (view full) --- 468} 469 470struct hybrid_topology *hybrid_topology__new(void) 471{ 472 struct perf_pmu *pmu = NULL; 473 struct hybrid_topology *tp = NULL; 474 u32 nr = 0, i = 0; 475 | 17 18#define PACKAGE_CPUS_FMT \ 19 "%s/devices/system/cpu/cpu%d/topology/package_cpus_list" 20#define PACKAGE_CPUS_FMT_OLD \ 21 "%s/devices/system/cpu/cpu%d/topology/core_siblings_list" 22#define DIE_CPUS_FMT \ 23 "%s/devices/system/cpu/cpu%d/topology/die_cpus_list" 24#define CORE_CPUS_FMT \ --- 444 unchanged lines hidden (view full) --- 469} 470 471struct hybrid_topology *hybrid_topology__new(void) 472{ 473 struct perf_pmu *pmu = NULL; 474 struct hybrid_topology *tp = NULL; 475 u32 nr = 0, i = 0; 476 |
476 if (!perf_pmu__has_hybrid()) | 477 if (!perf_pmus__has_hybrid()) |
477 return NULL; 478 | 478 return NULL; 479 |
479 while ((pmu = perf_pmu__scan(pmu)) != NULL) { | 480 while ((pmu = perf_pmus__scan(pmu)) != NULL) { |
480 if (pmu->is_core) 481 nr++; 482 } 483 if (nr == 0) 484 return NULL; 485 486 tp = zalloc(sizeof(*tp) + sizeof(tp->nodes[0]) * nr); 487 if (!tp) 488 return NULL; 489 490 tp->nr = nr; | 481 if (pmu->is_core) 482 nr++; 483 } 484 if (nr == 0) 485 return NULL; 486 487 tp = zalloc(sizeof(*tp) + sizeof(tp->nodes[0]) * nr); 488 if (!tp) 489 return NULL; 490 491 tp->nr = nr; |
491 while ((pmu = perf_pmu__scan(pmu)) != NULL) { | 492 while ((pmu = perf_pmus__scan(pmu)) != NULL) { |
492 if (!pmu->is_core) 493 continue; 494 495 if (load_hybrid_node(&tp->nodes[i], pmu)) { 496 hybrid_topology__delete(tp); 497 return NULL; 498 } 499 i++; --- 16 unchanged lines hidden --- | 493 if (!pmu->is_core) 494 continue; 495 496 if (load_hybrid_node(&tp->nodes[i], pmu)) { 497 hybrid_topology__delete(tp); 498 return NULL; 499 } 500 i++; --- 16 unchanged lines hidden --- |