@@ -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