1
0
Fork 0
mirror of https://github.com/anrieff/libcpuid synced 2025-07-12 14:14:12 +00:00

Support for hybrid CPU (#166)

* Set CMAKE_C_FLAGS_DEBUG to display warnings during build

CI workflows are reporting warnings. Adding more C flags here help to avoid that.

* Add new types

* Add set_cpu_affinity function

* Add cpu_identify_all function

* Add cpu_request_core_type function

* Add cpuid_get_all_raw_data, cpuid_serialize_all_raw_data and cpuid_deserialize_all_raw_data functions

* Detect hybrid architecture for Intel CPUs

* Update cpuid_tool to detect all CPU logical cores

* Rename tests subdirectories for Intel Core

* Update all tests

Since e4309a6c4bc3ad875711a1599cba01a205b3103e, new fields are reported by cpuid_tool

* Add Intel Alder Lake

Fix #157

* Remove convert_instlatx64.c

This tool is not useful anymore because the cpuid_deserialize_raw_data_internal() function can natively parse them since 5667e1401c

* Fix affinity_mask computation

* Define _GNU_SOURCE in configure.ac

Forgotten in 4f80964db5

* Use dynamic raw array in cpu_raw_data_array_t

* Add cpu_affinity_mask_t type

* Improve set_cpu_affinity function

- Print a warning if logical CPU number is not supported on operating system
- Return a boolean value in case of success instead of an integer

* Improve cpu_identify_all and cpu_request_core_type functions

* Use dynamic array for cpu_types in system_id_t

This commit also adds cleanups, fixes and consistency

* Tests: update Ryzen 5 Matisse with all CPU cores

* Add affinity_mask_str_r function and address other comments

- Fixed cpuid_grow_raw_data_array and cpu_raw_data_array_t.logical_cpu_t with the correct type
- Added a note about hard limit of cpu_raw_data_array_t
- Fixed a typo in cpuid_deserialize_raw_data_internal

* Fix build on Windows
This commit is contained in:
Xorg 2022-09-15 18:37:08 +02:00 committed by GitHub
parent 9710e7c0ba
commit 2b8023f733
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
157 changed files with 8473 additions and 384 deletions

View file

@ -12,12 +12,17 @@ if len(args) != 3:
def readRawFile():
rawdata = []
for line in open(args[1], "rt").readlines():
lookfor = ["basic_cpuid", "ext_cpuid", "intel_fn4", "intel_fn11", "amd_fn8000001dh"]
lookfor = ["basic_cpuid", "ext_cpuid", "intel_fn4", "intel_fn11", "amd_fn8000001dh", "Logical CPU", "CPUID"]
ignore = ["MSR Register"]
good = False
for match in lookfor:
if line.find(match) != -1:
good = True
break
for match in ignore:
if line.find(match) != -1:
good = False
break
if good:
rawdata.append(line.strip())
return rawdata
@ -40,6 +45,14 @@ def readResultFile():
if not rexp.match(value):
raise "Bad format of value: [%s]" % s
repdata.append(rexp.findall(value)[0])
if "CPU Info for type" in field:
repdata.append(delimiter)
if field == "arch":
value = s[s.find(":") + 2:]
repdata.append(value)
if field == "purpose":
value = s[s.find(":") + 2:]
repdata.append(value)
if field == "code name":
value = s[s.find("`") + 1: s.find("'")]
repdata.append(value)
@ -56,5 +69,5 @@ def readResultFile():
return repdata
delimiter = "-" * 80
lines = readRawFile() + [delimiter] + readResultFile()
lines = readRawFile() + readResultFile()
sys.stdout.writelines([s + "\n" for s in lines])