1
0
Fork 0
mirror of https://github.com/anrieff/libcpuid synced 2024-11-20 23:01:51 +00:00
Commit graph

681 commits

Author SHA1 Message Date
Xorg
2b8023f733
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
2022-09-15 18:37:08 +02:00
Xorg
9710e7c0ba
DB: add AMD Athlon Godavari
Fix X0rg/CPU-X#232
2022-09-07 18:37:14 +02:00
Azat Khuzhin
fe2587c2ed
Fix build under clang-15 (#167)
Build error on freebsd [1]:

    Sep 06 18:40:42 [1106/5912] Building C object contrib/libcpuid-cmake/CMakeFiles/_cpuid.dir/__/libcpuid/libcpuid/rdmsr.c.o
    Sep 06 18:40:42 FAILED: contrib/libcpuid-cmake/CMakeFiles/_cpuid.dir/__/libcpuid/libcpuid/rdmsr.c.o
    Sep 06 18:40:42 /usr/bin/ccache /usr/bin/clang-15 --target=x86_64-pc-freebsd11 --sysroot=/build/cmake/freebsd/../../contrib/sysroot/freebsd-x86_64 -DHAS_RESERVED_IDENTIFIER -DSTD_EXCEPTION_HAS_STACK_TRACE=1 -DVERSION=\"v0.4.1\" -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -isystem ../contrib/libcpuid -isystem ../contrib/libcxx/include -isystem ../contrib/libcxxabi/include -isystem ../contrib/libunwind/include -fdiagnostics-color=always -Xclang -fuse-ctor-homing  -gdwarf-aranges -pipe -mssse3 -msse4.1 -msse4.2 -mpclmul -mpopcnt -fasynchronous-unwind-tables -ffile-prefix-map=/build=. -falign-functions=32 -mbranches-within-32B-boundaries  -fdiagnostics-absolute-paths -fexperimental-new-pass-manager -w -O2 -g -DNDEBUG -O3 -g -gdwarf-4    -D OS_FREEBSD -std=gnu11 -MD -MT contrib/libcpuid-cmake/CMakeFiles/_cpuid.dir/__/libcpuid/libcpuid/rdmsr.c.o -MF contrib/libcpuid-cmake/CMakeFiles/_cpuid.dir/__/libcpuid/libcpuid/rdmsr.c.o.d -o contrib/libcpuid-cmake/CMakeFiles/_cpuid.dir/__/libcpuid/libcpuid/rdmsr.c.o   -c ../contrib/libcpuid/libcpuid/rdmsr.c
    Sep 06 18:40:42 /build/contrib/libcpuid/libcpuid/rdmsr.c:164:2: error: call to undeclared library function 'snprintf' with type 'int (char *, unsigned long, const char *, ...)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    Sep 06 18:40:42         snprintf(msr, MSR_PATH_LEN, "/dev/cpuctl%u", core_num);
    Sep 06 18:40:42         ^
    Sep 06 18:40:42 /build/contrib/libcpuid/libcpuid/rdmsr.c:164:2: note: include the header <stdio.h> or explicitly provide a declaration for 'snprintf'
    Sep 06 18:40:42 1 error generated.

  [1]: https://s3.amazonaws.com/clickhouse-builds/41046/0e9265ad951d40cdce3716fb8a679360b2e0c156/binary_freebsd/build_log.log
2022-09-07 18:28:53 +03:00
Xorg
11e57e78a2
Remove Debian package (#165) 2022-09-03 21:48:12 +03:00
Xorg
660126c55d
Tests: add AMD A10 Pro-7350B (Kaveri) from InstLatx64 2022-08-28 11:42:25 +02:00
Xorg
ca0327d621
DB: add Warhol 2022-08-28 11:41:28 +02:00
Xorg
cbaa02a966
DB: add Rembrandt 2022-08-28 11:22:03 +02:00
Xorg
13654e0fd0
Simplifies binary package names
The CPUID tool will install the library as dependency
2022-08-28 10:40:42 +02:00
yanderemine54
4884cddbde Add Arch Linux to the list of systems with the package in the official repositories. 2022-05-30 19:00:28 +02:00
Xorg
ecd45bb276
Tests: add more Zen2 tests from InstLatx64 2022-02-06 11:52:55 +01:00
Xorg
5ce462c32c
DB: add Lucienne
https://en.wikichip.org/wiki/amd/cores/lucienne
Fix X0rg/CPU-X#209
2022-02-06 11:29:46 +01:00
emixa-d
bca7a19279
Report memory allocation failures without segfaulting. (#160) 2022-01-23 02:38:40 +02:00
Zhu Zihao
2e61160983
Don't link with msrdriver.c on non-Windows platform. (#159)
This simplify the procedure of sanitizing unneeded blob in source.
2022-01-14 10:35:10 +02:00
Veselin Georgiev
7a580fd2b2 CMake: reduce min cmake requirement 3.14 -> 3.13
There's no benefit from 3.14 we need to use, and 3.13 is supported
on older Linuxes.
2021-07-17 09:20:35 +03:00
Veselin Georgiev
6c23fcaacd Fix failing CI builds introduced by cb5fdd1
Add -DLIBCPUID_TESTS:BOOL=ON
2021-07-16 02:04:08 +03:00
Alyssa Ross
1acaf9980b
Use popcount64 from libc when available (#152)
* Use popcount64 from libc when available

Without this, we get a compiler error on NetBSD because the one in
libc has a slightly different prototype.

libcpuid_util.c:78:12: error: conflicting types for 'popcount64'
   78 | static int popcount64(uint64_t mask)
      |            ^~~~~~~~~~
In file included from /nix/store/155rj8nqh3xd80vpa8hl35p3hk7pacys-include-netbsd-8.0/include/string.h:98,
                 from libcpuid_util.c:30:
/nix/store/155rj8nqh3xd80vpa8hl35p3hk7pacys-include-netbsd-8.0/include/strings.h:61:14: note: previous declaration of 'popcount64' was here
   61 | unsigned int popcount64(__uint64_t) __constfunc;
      |              ^~~~~~~~~~

* Return unsigned int from popcount64

Matches NetBSD libc, where popcount64 originates.
2021-07-16 01:55:36 +03:00
SpaceIm
ae7b063c8a
allow to build either static or shared (#156)
also fix shared if msvc

Co-authored-by: Veselin Georgiev <anrieff@gmail.com>
2021-07-16 01:49:00 +03:00
SpaceIm
25e6e38c85
cmake: allow libcpuid to be added as a CMake subproject (#155) 2021-07-16 01:48:00 +03:00
SpaceIm
6aaa3ad92d
fix installation of BUNDLE if iOS (#154) 2021-07-16 01:47:17 +03:00
SpaceIm
cb5fdd1d86
cmake: add an option to build tests (#153) 2021-07-16 01:46:09 +03:00
Veselin Georgiev
27b002857a Fix #150: CPU Family/Model is used as Ext.Family/Model
This is a documentation-only issue; explain more verbosely what the
`ext_family` and `ext_model` fields in `struct cpu_id_t` are.
2021-07-16 01:39:53 +03:00
Xorg
0f1ad69145
DB: add Tiger Lake
https://en.wikipedia.org/wiki/Tiger_Lake
Related to X0rg/CPU-X#198
2021-05-26 06:57:04 +02:00
Xorg
ccd0ec8426
Doxygen: remove deprecated option
warning: Tag 'COLS_IN_ALPHA_INDEX' at line 1072 of file '/tmp/makepkg/libcpuid/src/build/libcpuid/Doxyfile' has become obsolete.
         To avoid this warning please remove this line from your configuration file or upgrade it using "doxygen -u"
2021-03-21 11:51:06 +01:00
Xorg
179fbcb713
Release version 0.5.1 (#151) 2021-03-21 12:41:56 +02:00
Xorg
1843292dba
Tests: fix truncation warnings in convert_instlatx64 2021-03-20 18:14:06 +01:00
Xorg
eb1c306d95
Fix warning with a comment
/Users/runner/work/libcpuid/libcpuid/libcpuid/recog_intel.c:363:123: warning: '/*' within block comment [-Wcomment]
2021-03-20 18:02:18 +01:00
Xorg
167d059a6b
DB: add Rocket Lake
https://en.wikichip.org/wiki/intel/microarchitectures/rocket_lake
InstLatx64/InstLatx64@1bbddafe7b
2021-03-20 17:24:58 +01:00
Xorg
c8238acd0a
DB: add Milan
https://en.wikichip.org/wiki/amd/cores/milan
InstLatx64/InstLatx64@2dc186e948
2021-03-20 17:10:07 +01:00
Xorg
d97618ab4f
Tests: fix --create argument in convert_instlatx64 tool 2021-01-31 15:26:13 +01:00
Xorg
08b4b6e41b
DB: add Cezanne
Tests extracted from InstLatx64/InstLatx64@002ce3c923
2021-01-31 15:24:39 +01:00
Xorg
4382796761
DB: add Xeon E3 1275
Score for entry 'Bloomfield (Xeon)' is 10 with this CPU
So it does not match with entry 'Sandy Bridge (Xeon)' (also score 10)
Adding this new entry increase score to 12, and fixing this issue

Close X0rg/CPU-X#182
2021-01-28 20:24:06 +01:00
Xorg
2538e519df
CI: use microsoft/setup-msbuild@v1.0.2 2021-01-12 20:00:33 +01:00
Xorg
f564913a5c
CI: fix deprecated commands
See https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
2021-01-12 19:54:35 +01:00
Xorg
9468598740
Tests: add Core i5 8265U (Whiskey Lake-U)
See f61e3f80db
2021-01-12 19:48:38 +01:00
Xorg
f61e3f80db
DB: add Whiskey Lake-U
It was reported as Coffee Lake-U, because CPUID are the same
Whiskey Lake is 8th gen and Comet Lake 10th gen
Fix X0rg/CPU-X#178
2021-01-12 19:46:32 +01:00
Xorg
d60503c211
Tests: fix path for cpuid_tool
When we use CMake, the 'cpuid_tool' binary is in the 'build' directory
2020-11-14 13:45:15 +01:00
Xorg
04c3ebe0e9
DB: add Vermeer
https://en.wikichip.org/wiki/amd/cores/vermeer
Test file converted from http://users.atw.hu/instlatx64/AuthenticAMD/AuthenticAMD0A20F10_K19_Vermeer_CPUID1.txt
2020-11-14 13:45:15 +01:00
Xorg
98c9b6ff53
DB: add Gemini Lake
https://en.wikichip.org/wiki/intel/cores/gemini_lake
Reported in X0rg/CPU-X#164
2020-11-14 13:45:15 +01:00
Xorg
672720c501
DB: add Comet Lake-U
https://en.wikipedia.org/wiki/Comet_Lake_(microprocessor)#U-series_(Medium_power)
Reported in X0rg/CPU-X#162
2020-11-14 13:45:14 +01:00
Xorg
4846161cfc
DB: add Kaby Lake-G
https://en.wikichip.org/wiki/intel/cores/kaby_lake_g
Test file converted from http://users.atw.hu/instlatx64/GenuineIntel/GenuineIntel00906E9_KabylakeG_CPUID.txt
2020-11-14 13:45:14 +01:00
Xorg
77dfe98a4c
DB: add Kaby Lake Refresh
https://en.wikichip.org/wiki/intel/cores/kaby_lake_r
Core i5 8250U was detected as Coffee Lake wrongly.
Reported in X0rg/CPU-X#161
2020-11-14 13:45:14 +01:00
Veselin Georgiev
92475d76ac Fixes issue #148: CMake build script not in 0.5.0 tarball release 2020-10-19 02:12:03 +03:00
Veselin Georgiev
52c5f505cf Related to c2645d0. Convert all python scripts to Python 3.
As stated in discussion, Python 2 is actively being deprecated
and the fix is easy, almost automatic.
2020-05-28 19:57:30 +03:00
Xorg
0419610804
Add Downloads section on Readme.md
Close #140
2020-05-27 20:49:45 +02:00
Xorg
781981ef3c
Add I-Nex to the users list 2020-05-27 20:00:22 +02:00
Xorg
5da90c9dcc
CI: remove 'v' prefix in assets 2020-05-26 09:17:00 +02:00
Xorg
b8f6dea265
CI: checkout sources before making release 2020-05-26 09:02:48 +02:00
Xorg
2343193401
Release version 0.5.0 (#146)
* Set version to 0.5.0

* Update debian/control to the new version (incompatible with 0.4.x)

* Rename .install files to match SO version

Co-authored-by: Veselin Georgiev <anrieff@gmail.com>
2020-05-25 23:33:26 +03:00
Xorg
dfc8b2fdbd
Add GitHub workflows for CI/CD
- CI: it will check code consistency and run tests for all events (except for tags)
- CD: it will build all assets and create a draft
Close #122
2020-05-23 19:13:01 +02:00
Xorg
8f65066dcc
check-consistency: return error count 2020-05-23 18:30:59 +02:00