Skip to content

Commit 17c1c73

Browse files
authored
metadata: get_cpu_flags(): Fix it on Aarch64 (#458)
1 parent d3b82f9 commit 17c1c73

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

gprofiler/metadata/system_metadata.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,22 +146,23 @@ def get_cpu_info() -> Tuple[str, str]:
146146
model_names = []
147147
flags = []
148148
for line in f:
149-
m = re.match(r"^((?:model name)|(?:flags))[ \t]*: (.*)$", line)
149+
m = re.match(r"^((?:model name)|(?:flags)|(?:Features))[ \t]*: (.*)$", line)
150150
if m is not None:
151151
field, value = m.groups()
152152
if field == "model name":
153153
model_names.append(value)
154154
else:
155-
assert field == "flags", f"unexpected field: {field!r}"
155+
# flags in x86_64, Features in aarch64
156+
assert field in ("flags", "Features"), f"unexpected field: {field!r}"
156157
flags.append(value)
157158

158-
if len(set(model_names)) != 1:
159+
if len(set(model_names)) > 1:
159160
logger.warning(f"CPU model names differ between cores, reporting only the first: {model_names}")
160161

161-
if len(set(flags)) != 1:
162+
if len(set(flags)) > 1:
162163
logger.warning(f"CPU flags differ between cores, reporting only the first: {model_names}")
163164

164-
return model_names[0], flags[0]
165+
return model_names[0] if len(model_names) else UNKNOWN_VALUE, flags[0] if len(flags) else UNKNOWN_VALUE
165166
except Exception:
166167
logger.exception("Failed to get CPU model name & flags, reporting unknown")
167168
return UNKNOWN_VALUE, UNKNOWN_VALUE

0 commit comments

Comments
 (0)