[PATCH v2 00/20] tools/x86/kcpuid: x86-cpuid-db v2.3 update

Ahmed S. Darwish posted 20 patches 9 months, 1 week ago
MAINTAINERS                     |   2 +-
tools/arch/x86/kcpuid/cpuid.csv | 791 ++++++++++++++++++--------------
tools/arch/x86/kcpuid/kcpuid.c  | 375 ++++++++-------
3 files changed, 636 insertions(+), 532 deletions(-)
[PATCH v2 00/20] tools/x86/kcpuid: x86-cpuid-db v2.3 update
Posted by Ahmed S. Darwish 9 months, 1 week ago
Hi!

Update kcpuid's CSV file to latest x86-cpuid-db release. [*]

Changelog v2
------------

* Patches 2, 4->5, 8->10, 13, 14, and 18->19 are new in v2.

* More bug fixes: patches 2, 4-5.

* More refactorings over what's already there at v1, to make the code
  easier to work with.  Patches 8->10, 13.

* Apply Dave Hansen review remark by avoiding explicit vendor detection
  and just trying all CPUID ranges, and see if the CPU responds back with
  something sensible.  Patch 14.

* Apply H. Peter Anvin review remark regarding Leaf 0x3 not being unique
  to Transmeta.  Patch 19 applies x86-cpuid-db v2.3 release, which has
  this leaf removed and explains why.

* Patches 16->19, apply x86-cpuid-db v2.0 -> v2.3 changes.  One release
  per commit to make the kcpuid CSV diffs more sensible.

Thanks!

Changelog v1
------------

https://lkml.kernel.org/r/20250306205000.227399-1-darwi@linutronix.de

This series updates kcpuid's CSV file from v1.0 to v2.2, as generated by
the x86-cpuid-db project. [*]

The new CSV adds multiple new leaves for Transmeta and Centaur/Zhaoxin.
It also introduces new bitfields at leaves 0x7, 0x80000001, 0x80000020,
and 0x80000021.  More details about the CSV changes are at the actual
commit logs.

PQ Summary:

* Patch 1 is a generic kcpuid bugfix.

* Patches 2-4 are preparatory cleanups.

* Patches 5-9 add rudimentary x86 vendor detection and filtering to
  kcpuid, as the CSV file is updated with indices that are exclusive to
  certain CPU vendors.

* Patch 10 updates the CSV file to x86-cpuid-db v2.0.

* Patch 11 updates the CSV file to x86-cpuid-db v2.2.

  Patch 10 and 11 are separated on purpose, to make the CSV commit log
  diffs more sensible.

* Patch 12 puts the whole kcpuid tool under MAINTAINERS' X86 CPUID entry,
  since changes to the CSV file may require updates to the kcpuid code.
  This will also make myself and the x86-cpuid mailing list CCed for all
  future kcpuid patches.

[*] https://gitlab.com/x86-cpuid.org/x86-cpuid-db
    https://x86-cpuid.org

8<-----

Ahmed S. Darwish (20):
  tools/x86/kcpuid: Fix error handling
  tools/x86/kcpuid: Exit the program on invalid parameters
  tools/x86/kcpuid: Simplify usage() handling
  tools/x86/kcpuid: Save CPUID output in an array
  tools/x86/kcpuid: Print correct CPUID output register names
  tools/x86/kcpuid: Remove unused local variable
  tools/x86/kcpuid: Remove unused global variable
  tools/x86/kcpuid: Set function return type to void
  tools/x86/kcpuid: Use C99-style for loops
  tools/x86/kcpuid: Use <cpuid.h> intrinsics
  tools/x86/kcpuid: Refactor CPUID range handling for future expansion
  tools/x86/kcpuid: Extend CPUID index mask macro
  tools/x86/kcpuid: Consolidate index validity checks
  tools/x86/kcpuid: Filter valid CPUID ranges
  tools/x86/kcpuid: Define Transmeta and Centaur index ranges
  tools/x86/kcpuid: Update bitfields to x86-cpuid-db v2.0
  tools/x86/kcpuid: Update bitfields to x86-cpuid-db v2.1
  tools/x86/kcpuid: Update bitfields to x86-cpuid-db v2.2
  tools/x86/kcpuid: Update bitfields to x86-cpuid-db v2.3
  MAINTAINERS: Include kcpuid under X86 CPUID DATABASE

 MAINTAINERS                     |   2 +-
 tools/arch/x86/kcpuid/cpuid.csv | 791 ++++++++++++++++++--------------
 tools/arch/x86/kcpuid/kcpuid.c  | 375 ++++++++-------
 3 files changed, 636 insertions(+), 532 deletions(-)

base-commit: 80e54e84911a923c40d7bee33a34c1b4be148d7a
--
2.48.1