14
14
#include "env.h"
15
15
#include "pmu-hybrid.h"
16
16
17
- #define CORE_SIB_FMT \
17
+ #define PACKAGE_CPUS_FMT \
18
+ "%s/devices/system/cpu/cpu%d/topology/package_cpus_list"
19
+ #define PACKAGE_CPUS_FMT_OLD \
18
20
"%s/devices/system/cpu/cpu%d/topology/core_siblings_list"
19
21
#define DIE_SIB_FMT \
20
22
"%s/devices/system/cpu/cpu%d/topology/die_cpus_list"
@@ -39,8 +41,12 @@ static int build_cpu_topology(struct cpu_topology *tp, int cpu)
39
41
u32 i = 0 ;
40
42
int ret = -1 ;
41
43
42
- scnprintf (filename , MAXPATHLEN , CORE_SIB_FMT ,
44
+ scnprintf (filename , MAXPATHLEN , PACKAGE_CPUS_FMT ,
43
45
sysfs__mountpoint (), cpu );
46
+ if (access (filename , F_OK ) == -1 ) {
47
+ scnprintf (filename , MAXPATHLEN , PACKAGE_CPUS_FMT_OLD ,
48
+ sysfs__mountpoint (), cpu );
49
+ }
44
50
fp = fopen (filename , "r" );
45
51
if (!fp )
46
52
goto try_dies ;
@@ -54,13 +60,13 @@ static int build_cpu_topology(struct cpu_topology *tp, int cpu)
54
60
if (p )
55
61
* p = '\0' ;
56
62
57
- for (i = 0 ; i < tp -> core_sib ; i ++ ) {
58
- if (!strcmp (buf , tp -> core_siblings [i ]))
63
+ for (i = 0 ; i < tp -> package_cpus_lists ; i ++ ) {
64
+ if (!strcmp (buf , tp -> package_cpus_list [i ]))
59
65
break ;
60
66
}
61
- if (i == tp -> core_sib ) {
62
- tp -> core_siblings [i ] = buf ;
63
- tp -> core_sib ++ ;
67
+ if (i == tp -> package_cpus_lists ) {
68
+ tp -> package_cpus_list [i ] = buf ;
69
+ tp -> package_cpus_lists ++ ;
64
70
buf = NULL ;
65
71
len = 0 ;
66
72
}
@@ -139,8 +145,8 @@ void cpu_topology__delete(struct cpu_topology *tp)
139
145
if (!tp )
140
146
return ;
141
147
142
- for (i = 0 ; i < tp -> core_sib ; i ++ )
143
- zfree (& tp -> core_siblings [i ]);
148
+ for (i = 0 ; i < tp -> package_cpus_lists ; i ++ )
149
+ zfree (& tp -> package_cpus_list [i ]);
144
150
145
151
if (tp -> die_sib ) {
146
152
for (i = 0 ; i < tp -> die_sib ; i ++ )
@@ -205,7 +211,7 @@ struct cpu_topology *cpu_topology__new(void)
205
211
206
212
tp = addr ;
207
213
addr += sizeof (* tp );
208
- tp -> core_siblings = addr ;
214
+ tp -> package_cpus_list = addr ;
209
215
addr += sz ;
210
216
if (has_die ) {
211
217
tp -> die_siblings = addr ;
0 commit comments