* [PATCH v2 0/2] x86/cpuid: kcpuid: v3.1 x86-cpuid-db update with fixes
@ 2026-06-03 17:10 Maciej Wieczor-Retman
2026-06-03 17:10 ` [PATCH v2 1/2] tools/x86/kcpuid: Update bitfields to x86-cpuid-db v3.1 Maciej Wieczor-Retman
2026-06-03 17:10 ` [PATCH v2 2/2] x86/cpuid: " Maciej Wieczor-Retman
0 siblings, 2 replies; 7+ messages in thread
From: Maciej Wieczor-Retman @ 2026-06-03 17:10 UTC (permalink / raw)
To: mingo, dave.hansen, bp
Cc: hpa, darwi, tglx, sohil.mehta, andrew.cooper3, linux-kernel, x86,
m.wieczorretman, john.ogness, ludloff, maciej.wieczor-retman,
x86-cpuid
Update asm/include/leaf_types.h and kcpuid's CSV file to the latest
x86-cpuid-db release [1].
Changes consist of typo fixes and making formatting of entries
consistent with each other.
[1] https://gitlab.com/x86-cpuid.org/x86-cpuid-db
Changelog v2:
- Reformat the patches according to Ahmed's instructions. No code
changes overall.
Maciej Wieczor-Retman (2):
tools/x86/kcpuid: Update bitfields to x86-cpuid-db v3.1
x86/cpuid: Update bitfields to x86-cpuid-db v3.1
arch/x86/include/asm/cpuid/leaf_types.h | 62 ++++++++++++-------------
tools/arch/x86/kcpuid/cpuid.csv | 52 ++++++++++-----------
2 files changed, 57 insertions(+), 57 deletions(-)
--
2.54.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2 1/2] tools/x86/kcpuid: Update bitfields to x86-cpuid-db v3.1
2026-06-03 17:10 [PATCH v2 0/2] x86/cpuid: kcpuid: v3.1 x86-cpuid-db update with fixes Maciej Wieczor-Retman
@ 2026-06-03 17:10 ` Maciej Wieczor-Retman
2026-06-03 17:10 ` [PATCH v2 2/2] x86/cpuid: " Maciej Wieczor-Retman
1 sibling, 0 replies; 7+ messages in thread
From: Maciej Wieczor-Retman @ 2026-06-03 17:10 UTC (permalink / raw)
To: mingo, dave.hansen, bp
Cc: hpa, darwi, tglx, sohil.mehta, andrew.cooper3, linux-kernel, x86,
m.wieczorretman, john.ogness, ludloff, maciej.wieczor-retman,
x86-cpuid
From: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
Update kcpuid's CSV file to version 3.1, as generated by x86-cpuid-db.
Summary of the v3.1 changes:
* Fix a few typos that were found during the kernel CPUID data model
review. Also include fixes found using an LLM agent review.
* Rename thrd_director_nclasses to hw_feedback_nclasses as it's the
name used in Intel SDM.
Link: https://gitlab.com/x86-cpuid.org/x86-cpuid-db/-/blob/v3.1/CHANGELOG.rst
Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
---
tools/arch/x86/kcpuid/cpuid.csv | 52 ++++++++++++++++-----------------
1 file changed, 26 insertions(+), 26 deletions(-)
diff --git a/tools/arch/x86/kcpuid/cpuid.csv b/tools/arch/x86/kcpuid/cpuid.csv
index 9f5155c825ca..45a876d3519f 100644
--- a/tools/arch/x86/kcpuid/cpuid.csv
+++ b/tools/arch/x86/kcpuid/cpuid.csv
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: CC0-1.0
-# Generator: x86-cpuid-db v3.0
+# Generator: x86-cpuid-db v3.1
#
# Auto-generated file.
@@ -177,7 +177,7 @@
0x6, 0, ebx, 3:0, n_therm_thresholds , Digital thermometer thresholds
0x6, 0, ecx, 0, aperfmperf , MPERF/APERF MSRs (effective frequency interface)
0x6, 0, ecx, 3, epb , IA32_ENERGY_PERF_BIAS MSR
- 0x6, 0, ecx, 15:8, thrd_director_nclasses , Number of classes, Intel thread director
+ 0x6, 0, ecx, 15:8, hw_feedback_nclasses , Number of Intel Thread Director classes
0x6, 0, edx, 0, perfcap_reporting , Performance capability reporting
0x6, 0, edx, 1, encap_reporting , Energy efficiency capability reporting
0x6, 0, edx, 11:8, feedback_sz , Feedback interface structure size, in 4K pages
@@ -247,10 +247,10 @@
0x7, 0, edx, 1, sgx_keys , Intel SGX attestation services
0x7, 0, edx, 2, avx512_4vnniw , AVX-512 neural network instructions
0x7, 0, edx, 3, avx512_4fmaps , AVX-512 multiply accumulation single precision
- 0x7, 0, edx, 4, fsrm , Fast short REP MOV
+ 0x7, 0, edx, 4, fsrm , Fast short REP MOVSB
0x7, 0, edx, 5, uintr , User interrupts
0x7, 0, edx, 8, avx512_vp2intersect , VP2INTERSECT{D,Q} instructions
- 0x7, 0, edx, 9, srdbs_ctrl , SRBDS mitigation MSR
+ 0x7, 0, edx, 9, srbds_ctrl , SRBDS mitigation MSR
0x7, 0, edx, 10, md_clear , VERW MD_CLEAR microcode
0x7, 0, edx, 11, rtm_always_abort , XBEGIN (RTM transaction) always aborts
0x7, 0, edx, 13, tsx_force_abort , MSR TSX_FORCE_ABORT, RTM_ABORT bit
@@ -296,8 +296,8 @@
0x7, 2, edx, 0, intel_psfd , Intel predictive store forward disable
0x7, 2, edx, 1, ipred_ctrl , MSR bits IA32_SPEC_CTRL.IPRED_DIS_{U,S}
0x7, 2, edx, 2, rrsba_ctrl , MSR bits IA32_SPEC_CTRL.RRSBA_DIS_{U,S}
- 0x7, 2, edx, 3, ddp_ctrl , MSR bit IA32_SPEC_CTRL.DDPD_U
- 0x7, 2, edx, 4, bhi_ctrl , MSR bit IA32_SPEC_CTRL.BHI_DIS_S
+ 0x7, 2, edx, 3, ddp_ctrl , MSR bit IA32_SPEC_CTRL.DDPD_U
+ 0x7, 2, edx, 4, bhi_ctrl , MSR bit IA32_SPEC_CTRL.BHI_DIS_S
0x7, 2, edx, 5, mcdt_no , MCDT mitigation not needed
0x7, 2, edx, 6, uclock_disable , UC-lock disable
@@ -368,7 +368,7 @@
0xd, 1, ecx, 8, xss_pt , PT state
0xd, 1, ecx, 10, xss_pasid , PASID state
0xd, 1, ecx, 11, xss_cet_u , CET user state
- 0xd, 1, ecx, 12, xss_cet_p , CET supervisor state
+ 0xd, 1, ecx, 12, xss_cet_s , CET supervisor state
0xd, 1, ecx, 13, xss_hdc , HDC state
0xd, 1, ecx, 14, xss_uintr , UINTR state
0xd, 1, ecx, 15, xss_lbr , LBR state
@@ -433,7 +433,7 @@
0x12, 1, eax, 7, secs_attr_kss , Key Separation and Sharing
0x12, 1, eax, 10, secs_attr_aexnotify , Enclave threads: AEX notifications
0x12, 1, ecx, 0, xfrm_x87 , Enclave XFRM.X87
- 0x12, 1, ecx, 1, xfrm_sse , Enclave XFRM.SEE
+ 0x12, 1, ecx, 1, xfrm_sse , Enclave XFRM.SSE
0x12, 1, ecx, 2, xfrm_avx , Enclave XFRM.AVX
0x12, 1, ecx, 3, xfrm_mpx_bndregs , Enclave XFRM.BNDREGS (MPX BND0-BND3 registers)
0x12, 1, ecx, 4, xfrm_mpx_bndcsr , Enclave XFRM.BNDCSR (MPX BNDCFGU/BNDSTATUS registers)
@@ -466,9 +466,9 @@
0x14, 0, ecx, 0, topa_output , ToPA output scheme
0x14, 0, ecx, 1, topa_multiple_entries , ToPA tables can hold multiple entries
0x14, 0, ecx, 2, single_range_output , Single-range output
- 0x14, 0, ecx, 3, trance_transport_output, Trace Transport subsystem output
+ 0x14, 0, ecx, 3, trace_transport_output , Trace Transport subsystem output
0x14, 0, ecx, 31, ip_payloads_lip , IP payloads have LIP values (CS base included)
- 0x14, 1, eax, 2:0, num_address_ranges , Number of configurable Address Ranges
+ 0x14, 1, eax, 2:0, num_address_ranges , Number of configurable address ranges
0x14, 1, eax, 31:16, mtc_periods_bmp , MTC period encodings bitmap
0x14, 1, ebx, 15:0, cycle_thresholds_bmp , Cycle Threshold encodings bitmap
0x14, 1, ebx, 31:16, psb_periods_bmp , Configurable PSB frequency encodings bitmap
@@ -494,7 +494,7 @@
0x17, 0, ebx, 15:0, soc_vendor_id , SoC vendor ID
0x17, 0, ebx, 16, is_vendor_scheme , Assigned by industry enumeration scheme (not Intel)
0x17, 0, ecx, 31:0, soc_proj_id , SoC project ID, assigned by vendor
- 0x17, 0, edx, 31:0, soc_stepping_id , Soc project stepping ID, assigned by vendor
+ 0x17, 0, edx, 31:0, soc_stepping_id , SoC project stepping ID, assigned by vendor
0x17, 3:1, eax, 31:0, vendor_brand_a , Vendor Brand ID string, bytes subleaf_nr * (0 -> 3)
0x17, 3:1, ebx, 31:0, vendor_brand_b , Vendor Brand ID string, bytes subleaf_nr * (4 -> 7)
0x17, 3:1, ecx, 31:0, vendor_brand_c , Vendor Brand ID string, bytes subleaf_nr * (8 -> 11)
@@ -514,12 +514,12 @@
0x18, 31:0, edx, 4:0, tlb_type , Translation cache type (TLB type)
0x18, 31:0, edx, 7:5, tlb_cache_level , Translation cache level (1-based)
0x18, 31:0, edx, 8, is_fully_associative , Fully-associative
- 0x18, 31:0, edx, 25:14, tlb_max_addressible_ids, Max number of addressable IDs - 1
+ 0x18, 31:0, edx, 25:14, tlb_max_addressable_ids, Max number of addressable IDs - 1
# Leaf 19H
# Intel key locker
- 0x19, 0, eax, 0, kl_cpl0_only , CPL0-only key Locker restriction
+ 0x19, 0, eax, 0, kl_cpl0_only , CPL0-only key locker restriction
0x19, 0, eax, 1, kl_no_encrypt , No-encrypt key locker restriction
0x19, 0, eax, 2, kl_no_decrypt , No-decrypt key locker restriction
0x19, 0, ebx, 0, aes_keylocker , AES key locker instructions
@@ -546,7 +546,7 @@
# Intel LBR (Last Branch Record)
0x1c, 0, eax, 7:0, lbr_depth_mask , Max LBR stack depth bitmask
- 0x1c, 0, eax, 30, lbr_deep_c_reset , LBRs maybe cleared on MWAIT C-state > C1
+ 0x1c, 0, eax, 30, lbr_deep_c_reset , LBRs may be cleared on MWAIT C-state > C1
0x1c, 0, eax, 31, lbr_ip_is_lip , LBR IP contain Last IP (otherwise effective IP)
0x1c, 0, ebx, 0, lbr_cpl , CPL filtering
0x1c, 0, ebx, 1, lbr_branch_filter , Branch filtering
@@ -591,8 +591,8 @@
# Intel TD (Trust Domain)
0x21, 0, ebx, 31:0, tdx_vendorid_0 , TDX vendor ID string bytes 0 - 3
- 0x21, 0, ecx, 31:0, tdx_vendorid_2 , CPU vendor ID string bytes 8 - 11
- 0x21, 0, edx, 31:0, tdx_vendorid_1 , CPU vendor ID string bytes 4 - 7
+ 0x21, 0, ecx, 31:0, tdx_vendorid_2 , TDX vendor ID string bytes 8 - 11
+ 0x21, 0, edx, 31:0, tdx_vendorid_1 , TDX vendor ID string bytes 4 - 7
# Leaf 23H
# Intel Architectural Performance Monitoring Extended (ArchPerfmonExt)
@@ -857,7 +857,7 @@
0x8000000a, 0, edx, 1, lbrv , LBR virtualization
0x8000000a, 0, edx, 2, svm_lock , SVM lock
0x8000000a, 0, edx, 3, nrip_save , NRIP save support on #VMEXIT
-0x8000000a, 0, edx, 4, tsc_scale , MSR based TSC rate control
+0x8000000a, 0, edx, 4, tsc_scale , MSR-based TSC rate control
0x8000000a, 0, edx, 5, vmcb_clean , VMCB clean bits support
0x8000000a, 0, edx, 6, flushbyasid , Flush by ASID + Extended VMCB TLB_Control
0x8000000a, 0, edx, 7, decodeassists , Decode Assists support
@@ -895,7 +895,7 @@
0x8000001a, 0, eax, 0, fp_128 , Internal FP/SIMD exec data path is 128-bits wide
0x8000001a, 0, eax, 1, movu_preferred , SSE: MOVU* better than MOVL*/MOVH*
-0x8000001a, 0, eax, 2, fp_256 , internal FP/SSE exec data path is 256-bits wide
+0x8000001a, 0, eax, 2, fp_256 , Internal FP/SSE exec data path is 256-bits wide
# Leaf 8000001BH
# AMD IBS (Instruction-Based Sampling)
@@ -917,7 +917,7 @@
# AMD LWP (Lightweight Profiling)
0x8000001c, 0, eax, 0, os_lwp_avail , OS: LWP is available to application programs
-0x8000001c, 0, eax, 1, os_lpwval , OS: LWPVAL instruction
+0x8000001c, 0, eax, 1, os_lwpval , OS: LWPVAL instruction
0x8000001c, 0, eax, 2, os_lwp_ire , OS: Instructions Retired Event
0x8000001c, 0, eax, 3, os_lwp_bre , OS: Branch Retired Event
0x8000001c, 0, eax, 4, os_lwp_dme , OS: Dcache Miss Event
@@ -934,13 +934,13 @@
0x8000001c, 0, ecx, 5, lwp_data_addr , Cache miss events report data cache address
0x8000001c, 0, ecx, 8:6, lwp_latency_rnd , Cache latency rounding amount
0x8000001c, 0, ecx, 15:9, lwp_version , LWP version
-0x8000001c, 0, ecx, 23:16, lwp_buf_min_sz , LWP event ring buffer min size, 32 event records units
+0x8000001c, 0, ecx, 23:16, lwp_buf_min_sz , LWP event ring buffer min size, 32 event record units
0x8000001c, 0, ecx, 28, lwp_branch_predict , Branches Retired events can be filtered
0x8000001c, 0, ecx, 29, lwp_ip_filtering , IP filtering (IPI, IPF, BaseIP, and LimitIP @ LWPCP)
0x8000001c, 0, ecx, 30, lwp_cache_levels , Cache-related events: filter by cache level
0x8000001c, 0, ecx, 31, lwp_cache_latency , Cache-related events: filter by latency
0x8000001c, 0, edx, 0, hw_lwp_avail , HW: LWP available
-0x8000001c, 0, edx, 1, hw_lpwval , HW: LWPVAL available
+0x8000001c, 0, edx, 1, hw_lwpval , HW: LWPVAL available
0x8000001c, 0, edx, 2, hw_lwp_ire , HW: Instructions Retired Event
0x8000001c, 0, edx, 3, hw_lwp_bre , HW: Branch Retired Event
0x8000001c, 0, edx, 4, hw_lwp_dme , HW: Dcache Miss Event
@@ -1040,8 +1040,8 @@
0x80000021, 0, eax, 7, upper_addr_ignore , EFER MSR Upper Address Ignore
0x80000021, 0, eax, 8, autoibrs , EFER MSR Automatic IBRS
0x80000021, 0, eax, 9, no_smm_ctl_msr , SMM_CTL MSR not available
-0x80000021, 0, eax, 10, fsrs , Fast Short Rep STOSB
-0x80000021, 0, eax, 11, fsrc , Fast Short Rep CMPSB
+0x80000021, 0, eax, 10, fsrs , Fast Short REP STOSB
+0x80000021, 0, eax, 11, fsrc , Fast Short REP CMPSB
0x80000021, 0, eax, 13, prefetch_ctl_msr , Prefetch control MSR
0x80000021, 0, eax, 16, opcode_reclaim , Reserves opcode space
0x80000021, 0, eax, 17, user_cpuid_disable , #GP when executing CPUID at CPL > 0
@@ -1093,9 +1093,9 @@
# Maximum Transmeta leaf + CPU vendor string
0x80860000, 0, eax, 31:0, max_tra_leaf , Maximum Transmeta leaf
-0x80860000, 0, ebx, 31:0, cpu_vendorid_0 , Transmeta Vendor ID string bytes 0 - 3
-0x80860000, 0, ecx, 31:0, cpu_vendorid_2 , Transmeta Vendor ID string bytes 8 - 11
-0x80860000, 0, edx, 31:0, cpu_vendorid_1 , Transmeta Vendor ID string bytes 4 - 7
+0x80860000, 0, ebx, 31:0, cpu_vendorid_0 , Transmeta vendor ID string bytes 0 - 3
+0x80860000, 0, ecx, 31:0, cpu_vendorid_2 , Transmeta vendor ID string bytes 8 - 11
+0x80860000, 0, edx, 31:0, cpu_vendorid_1 , Transmeta vendor ID string bytes 4 - 7
# Leaf 80860001H
# Transmeta extended CPU features
--
2.54.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 2/2] x86/cpuid: Update bitfields to x86-cpuid-db v3.1
2026-06-03 17:10 [PATCH v2 0/2] x86/cpuid: kcpuid: v3.1 x86-cpuid-db update with fixes Maciej Wieczor-Retman
2026-06-03 17:10 ` [PATCH v2 1/2] tools/x86/kcpuid: Update bitfields to x86-cpuid-db v3.1 Maciej Wieczor-Retman
@ 2026-06-03 17:10 ` Maciej Wieczor-Retman
2026-06-04 7:41 ` Ingo Molnar
1 sibling, 1 reply; 7+ messages in thread
From: Maciej Wieczor-Retman @ 2026-06-03 17:10 UTC (permalink / raw)
To: mingo, dave.hansen, bp
Cc: hpa, darwi, tglx, sohil.mehta, andrew.cooper3, linux-kernel, x86,
m.wieczorretman, john.ogness, ludloff, maciej.wieczor-retman,
x86-cpuid
From: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
Update leaf_types.h to version 3.1, as generated by x86-cpuid-db.
Summary of the v3.1 changes:
* Fix a few typos that were found during the kernel CPUID data model
review. Also include fixes found using an LLM agent review.
* Rename thrd_director_nclasses to hw_feedback_nclasses as it's the
name used in Intel SDM.
Link: https://gitlab.com/x86-cpuid.org/x86-cpuid-db/-/blob/v3.1/CHANGELOG.rst
Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
---
arch/x86/include/asm/cpuid/leaf_types.h | 62 ++++++++++++-------------
1 file changed, 31 insertions(+), 31 deletions(-)
diff --git a/arch/x86/include/asm/cpuid/leaf_types.h b/arch/x86/include/asm/cpuid/leaf_types.h
index 5b0008e455e2..222d2d2682c8 100644
--- a/arch/x86/include/asm/cpuid/leaf_types.h
+++ b/arch/x86/include/asm/cpuid/leaf_types.h
@@ -1,5 +1,5 @@
/* SPDX-License-Identifier: MIT */
-/* Generator: x86-cpuid-db v3.0 */
+/* Generator: x86-cpuid-db v3.1 */
/*
* Auto-generated file.
@@ -246,7 +246,7 @@ struct leaf_0x6_0 {
: 2, // Reserved
energy_perf_bias : 1, // IA32_ENERGY_PERF_BIAS MSR
: 4, // Reserved
- thrd_director_nclasses : 8, // Number of classes, Intel thread director
+ hw_feedback_nclasses : 8, // Number of Intel Thread Director classes
: 16; // Reserved
// edx
u32 perfcap_reporting : 1, // Performance capability reporting
@@ -332,11 +332,11 @@ struct leaf_0x7_0 {
sgx_keys : 1, // Intel SGX attestation services
avx512_4vnniw : 1, // AVX-512 neural network instructions
avx512_4fmaps : 1, // AVX-512 multiply accumulation single precision
- fsrm : 1, // Fast short REP MOV
+ fsrm : 1, // Fast short REP MOVSB
uintr : 1, // User interrupts
: 2, // Reserved
avx512_vp2intersect : 1, // VP2INTERSECT{D,Q} instructions
- srdbs_ctrl : 1, // SRBDS mitigation MSR
+ srbds_ctrl : 1, // SRBDS mitigation MSR
md_clear : 1, // VERW MD_CLEAR microcode
rtm_always_abort : 1, // XBEGIN (RTM transaction) always aborts
: 1, // Reserved
@@ -379,7 +379,7 @@ struct leaf_0x7_1 {
wrmsrns : 1, // WRMSRNS instruction (WRMSR-non-serializing)
nmi_src : 1, // NMI-source reporting with FRED event data
amx_fp16 : 1, // AMX-FP16: FP16 tile operations
- hreset : 1, // HRESET (Thread director history reset)
+ hreset : 1, // HRESET (Thread director history reset)
avx_ifma : 1, // Integer fused multiply add
: 2, // Reserved
lam : 1, // Linear address masking
@@ -414,8 +414,8 @@ struct leaf_0x7_2 {
u32 intel_psfd : 1, // Intel predictive store forward disable
ipred_ctrl : 1, // MSR bits IA32_SPEC_CTRL.IPRED_DIS_{U,S}
rrsba_ctrl : 1, // MSR bits IA32_SPEC_CTRL.RRSBA_DIS_{U,S}
- ddp_ctrl : 1, // MSR bit IA32_SPEC_CTRL.DDPD_U
- bhi_ctrl : 1, // MSR bit IA32_SPEC_CTRL.BHI_DIS_S
+ ddp_ctrl : 1, // MSR bit IA32_SPEC_CTRL.DDPD_U
+ bhi_ctrl : 1, // MSR bit IA32_SPEC_CTRL.BHI_DIS_S
mcdt_no : 1, // MCDT mitigation not needed
uclock_disable : 1, // UC-lock disable
: 25; // Reserved
@@ -547,7 +547,7 @@ struct leaf_0xd_1 {
: 1, // Reserved
xss_pasid : 1, // PASID state
xss_cet_u : 1, // CET user state
- xss_cet_p : 1, // CET supervisor state
+ xss_cet_s : 1, // CET supervisor state
xss_hdc : 1, // HDC state
xss_uintr : 1, // UINTR state
xss_lbr : 1, // LBR state
@@ -711,7 +711,7 @@ struct leaf_0x12_1 {
u32 : 32; // Reserved
// ecx
u32 xfrm_x87 : 1, // Enclave XFRM.X87
- xfrm_sse : 1, // Enclave XFRM.SEE
+ xfrm_sse : 1, // Enclave XFRM.SSE
xfrm_avx : 1, // Enclave XFRM.AVX
xfrm_mpx_bndregs : 1, // Enclave XFRM.BNDREGS (MPX BND0-BND3 registers)
xfrm_mpx_bndcsr : 1, // Enclave XFRM.BNDCSR (MPX BNDCFGU/BNDSTATUS registers)
@@ -771,7 +771,7 @@ struct leaf_0x14_0 {
u32 topa_output : 1, // ToPA output scheme
topa_multiple_entries : 1, // ToPA tables can hold multiple entries
single_range_output : 1, // Single-range output
- trance_transport_output : 1, // Trace Transport subsystem output
+ trace_transport_output : 1, // Trace Transport subsystem output
: 27, // Reserved
ip_payloads_lip : 1; // IP payloads have LIP values (CS base included)
// edx
@@ -780,7 +780,7 @@ struct leaf_0x14_0 {
struct leaf_0x14_1 {
// eax
- u32 num_address_ranges : 3, // Number of configurable Address Ranges
+ u32 num_address_ranges : 3, // Number of configurable address ranges
: 13, // Reserved
mtc_periods_bmp : 16; // MTC period encodings bitmap
// ebx
@@ -842,7 +842,7 @@ struct leaf_0x17_0 {
// ecx
u32 soc_proj_id : 32; // SoC project ID, assigned by vendor
// edx
- u32 soc_stepping_id : 32; // Soc project stepping ID, assigned by vendor
+ u32 soc_stepping_id : 32; // SoC project stepping ID, assigned by vendor
};
struct leaf_0x17_n {
@@ -883,7 +883,7 @@ struct leaf_0x18_n {
tlb_cache_level : 3, // Translation cache level (1-based)
is_fully_associative : 1, // Fully-associative
: 5, // Reserved
- tlb_max_addressible_ids : 12, // Max number of addressable IDs - 1
+ tlb_max_addressable_ids : 12, // Max number of addressable IDs - 1
: 6; // Reserved
};
@@ -897,7 +897,7 @@ struct leaf_0x18_n {
struct leaf_0x19_0 {
// eax
- u32 kl_cpl0_only : 1, // CPL0-only key Locker restriction
+ u32 kl_cpl0_only : 1, // CPL0-only key locker restriction
kl_no_encrypt : 1, // No-encrypt key locker restriction
kl_no_decrypt : 1, // No-decrypt key locker restriction
: 29; // Reserved
@@ -962,7 +962,7 @@ struct leaf_0x1c_0 {
// eax
u32 lbr_depth_mask : 8, // Max LBR stack depth bitmask
: 22, // Reserved
- lbr_deep_c_reset : 1, // LBRs maybe cleared on MWAIT C-state > C1
+ lbr_deep_c_reset : 1, // LBRs may be cleared on MWAIT C-state > C1
lbr_ip_is_lip : 1; // LBR IP contain Last IP (otherwise effective IP)
// ebx
u32 lbr_cpl : 1, // CPL filtering
@@ -1079,9 +1079,9 @@ struct leaf_0x21_0 {
// ebx
u32 tdx_vendorid_0 : 32; // TDX vendor ID string bytes 0 - 3
// ecx
- u32 tdx_vendorid_2 : 32; // CPU vendor ID string bytes 8 - 11
+ u32 tdx_vendorid_2 : 32; // TDX vendor ID string bytes 8 - 11
// edx
- u32 tdx_vendorid_1 : 32; // CPU vendor ID string bytes 4 - 7
+ u32 tdx_vendorid_1 : 32; // TDX vendor ID string bytes 4 - 7
};
/*
@@ -1281,12 +1281,12 @@ struct leaf_0x4c780001_0 {
flexpriority : 1, // Intel FlexPriority
ept : 1, // Intel Extended Page Table
vpid : 1, // Intel Virtual Processor ID
- coherency_sfw_no : 1, // SNP cache coherency software work around not needed
+ coherency_sfw_no : 1, // SNP cache coherency software workaround not needed
: 10, // Reserved
vmmcall : 1, // Prefer VMMCALL to VMCALL
xenpv : 1, // Xen paravirtual guest
ept_ad : 1, // Intel Extended Page Table access-dirty bit
- VMCALL : 1, // Hypervisor supports the VMCALL instruction
+ vmcall : 1, // Hypervisor supports the VMCALL instruction
vmw_vmmcall : 1, // VMware prefers the VMMCALL instruction
pvunlock : 1, // PV unlock function
vcpupreempt : 1, // PV vcpu_is_preempted function
@@ -1380,11 +1380,11 @@ struct leaf_0x4c780002_0 {
amd_e400 : 1, // CPU is among the affected by Erratum 400
cpu_meltdown : 1, // CPU affected by meltdown; needs kernel page table isolation
spectre_v1 : 1, // CPU affected by Spectre variant 1 with conditional branches
- specture_v2 : 1, // CPU affected by Spectre variant 2 with indirect branches
+ spectre_v2 : 1, // CPU affected by Spectre variant 2 with indirect branches
spec_store_bypass : 1, // CPU affected by speculative store bypass attack
l1tf : 1, // CPU affected by L1 Terminal Fault
mds : 1, // CPU affected by Microarchitectural data sampling
- msbds_only : 1, // Microarchitectural data sampling: CPU only affected by the MSDBS variant
+ msbds_only : 1, // Microarchitectural data sampling: CPU only affected by the MSBDS variant
swapgs : 1, // CPU affected by speculation through SWAPGS
taa : 1, // CPU is affected by TSX Async Abort (TAA)
itlb_multihit : 1, // CPU may incur MCE during certain page attribute changes
@@ -1732,7 +1732,7 @@ struct leaf_0x8000000a_0 {
lbr_virt : 1, // LBR virtualization
svm_lock : 1, // SVM lock
nrip_save : 1, // NRIP save support on #VMEXIT
- tsc_rate_msr : 1, // MSR based TSC rate control
+ tsc_rate_msr : 1, // MSR-based TSC rate control
vmcb_clean : 1, // VMCB clean bits support
flush_by_asid : 1, // Flush by ASID + Extended VMCB TLB_Control
decode_assists : 1, // Decode Assists support
@@ -1790,7 +1790,7 @@ struct leaf_0x8000001a_0 {
// eax
u32 fp_128 : 1, // Internal FP/SIMD exec data path is 128-bits wide
movu_preferred : 1, // SSE: MOVU* better than MOVL*/MOVH*
- fp_256 : 1, // internal FP/SSE exec data path is 256-bits wide
+ fp_256 : 1, // Internal FP/SSE exec data path is 256-bits wide
: 29; // Reserved
// ebx
u32 : 32; // Reserved
@@ -1836,7 +1836,7 @@ struct leaf_0x8000001b_0 {
struct leaf_0x8000001c_0 {
// eax
u32 os_lwp_avail : 1, // OS: LWP is available to application programs
- os_lpwval : 1, // OS: LWPVAL instruction
+ os_lwpval : 1, // OS: LWPVAL instruction
os_lwp_ire : 1, // OS: Instructions Retired Event
os_lwp_bre : 1, // OS: Branch Retired Event
os_lwp_dme : 1, // OS: Dcache Miss Event
@@ -1856,7 +1856,7 @@ struct leaf_0x8000001c_0 {
lwp_data_addr : 1, // Cache miss events report data cache address
lwp_latency_rnd : 3, // Cache latency rounding amount
lwp_version : 7, // LWP version
- lwp_buf_min_sz : 8, // LWP event ring buffer min size, 32 event records units
+ lwp_buf_min_sz : 8, // LWP event ring buffer min size, 32 event record units
: 4, // Reserved
lwp_branch_predict : 1, // Branches Retired events can be filtered
lwp_ip_filtering : 1, // IP filtering (IPI, IPF, BaseIP, and LimitIP @ LWPCP)
@@ -1864,7 +1864,7 @@ struct leaf_0x8000001c_0 {
lwp_cache_latency : 1; // Cache-related events: filter by latency
// edx
u32 hw_lwp_avail : 1, // HW: LWP available
- hw_lpwval : 1, // HW: LWPVAL available
+ hw_lwpval : 1, // HW: LWPVAL available
hw_lwp_ire : 1, // HW: Instructions Retired Event
hw_lwp_bre : 1, // HW: Branch Retired Event
hw_lwp_dme : 1, // HW: Dcache Miss Event
@@ -2051,8 +2051,8 @@ struct leaf_0x80000021_0 {
upper_addr_ignore : 1, // EFER MSR Upper Address Ignore
auto_ibrs : 1, // EFER MSR Automatic IBRS
no_smm_ctl_msr : 1, // SMM_CTL MSR not available
- fsrs : 1, // Fast Short Rep STOSB
- fsrc : 1, // Fast Short Rep CMPSB
+ fsrs : 1, // Fast Short REP STOSB
+ fsrc : 1, // Fast Short REP CMPSB
: 1, // Reserved
prefetch_ctl_msr : 1, // Prefetch control MSR
: 2, // Reserved
@@ -2157,11 +2157,11 @@ struct leaf_0x80860000_0 {
// eax
u32 max_tra_leaf : 32; // Maximum Transmeta leaf
// ebx
- u32 cpu_vendorid_0 : 32; // Transmeta Vendor ID string bytes 0 - 3
+ u32 cpu_vendorid_0 : 32; // Transmeta vendor ID string bytes 0 - 3
// ecx
- u32 cpu_vendorid_2 : 32; // Transmeta Vendor ID string bytes 8 - 11
+ u32 cpu_vendorid_2 : 32; // Transmeta vendor ID string bytes 8 - 11
// edx
- u32 cpu_vendorid_1 : 32; // Transmeta Vendor ID string bytes 4 - 7
+ u32 cpu_vendorid_1 : 32; // Transmeta vendor ID string bytes 4 - 7
};
/*
--
2.54.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] x86/cpuid: Update bitfields to x86-cpuid-db v3.1
2026-06-03 17:10 ` [PATCH v2 2/2] x86/cpuid: " Maciej Wieczor-Retman
@ 2026-06-04 7:41 ` Ingo Molnar
2026-06-08 6:34 ` Ahmed S. Darwish
0 siblings, 1 reply; 7+ messages in thread
From: Ingo Molnar @ 2026-06-04 7:41 UTC (permalink / raw)
To: Maciej Wieczor-Retman
Cc: mingo, dave.hansen, bp, hpa, darwi, tglx, sohil.mehta,
andrew.cooper3, linux-kernel, x86, john.ogness, ludloff,
maciej.wieczor-retman, x86-cpuid
* Maciej Wieczor-Retman <m.wieczorretman@pm.me> wrote:
> From: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
>
> Update leaf_types.h to version 3.1, as generated by x86-cpuid-db.
>
> Summary of the v3.1 changes:
>
> * Fix a few typos that were found during the kernel CPUID data model
> review. Also include fixes found using an LLM agent review.
>
> * Rename thrd_director_nclasses to hw_feedback_nclasses as it's the
> name used in Intel SDM.
The following detail from the first submission got lost:
> @@ -246,7 +246,7 @@ struct leaf_0x6_0 {
> - thrd_director_nclasses : 8, // Number of classes, Intel thread director
> + hw_feedback_nclasses : 8, // Number of Intel Thread Director classes
>
> Note, for CPUID(0x6) thrd_director_nclasses, it was written this way
> because the project does not support bitfields names with more letters.
What does this mean exactly, is there a string length limit on the
field name in 'struct leaf_0x6_0'? What is the limit?
Thanks,
Ingo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] x86/cpuid: Update bitfields to x86-cpuid-db v3.1
2026-06-04 7:41 ` Ingo Molnar
@ 2026-06-08 6:34 ` Ahmed S. Darwish
2026-06-08 9:22 ` Maciej Wieczor-Retman
0 siblings, 1 reply; 7+ messages in thread
From: Ahmed S. Darwish @ 2026-06-08 6:34 UTC (permalink / raw)
To: Ingo Molnar
Cc: Maciej Wieczor-Retman, mingo, dave.hansen, bp, hpa, tglx,
sohil.mehta, andrew.cooper3, linux-kernel, x86, john.ogness,
ludloff, maciej.wieczor-retman, x86-cpuid
On Thu, 04 Jun 2026, Ingo Molnar wrote:
>
> * Maciej Wieczor-Retman <m.wieczorretman@pm.me> wrote:
> >
> > Update leaf_types.h to version 3.1, as generated by x86-cpuid-db.
> >
>
> The following detail from the first submission got lost:
>
> > @@ -246,7 +246,7 @@ struct leaf_0x6_0 {
> > - thrd_director_nclasses : 8, // Number of classes, Intel thread director
> > + hw_feedback_nclasses : 8, // Number of Intel Thread Director classes
> >
> > Note, for CPUID(0x6) thrd_director_nclasses, it was written this way
> > because the project does not support bitfields names with more letters.
>
> What does this mean exactly, is there a string length limit on the
> field name in 'struct leaf_0x6_0'? What is the limit?
>
Sorry, I should've made that more clear in the x86-cpuid-db release notes.
Yes, there is a limit on field name lenghts so that the C headers formatted
output is aligned and human readable. It's an implementation detail.
After Maciej's patch:
https://gitlab.com/x86-cpuid.org/x86-cpuid-db/-/commit/a7af01507814
I searched for more typos, grammatical mistakes, etc. and fixed some:
https://gitlab.com/x86-cpuid.org/x86-cpuid-db/-/commit/41380ff73e60
Fixing thrd_director_nclasses name would exceed the project's field limit
(23 characters), so I checked the manuals, and hw_feedback_nclasses was a
better name anyway, and thus used it.
That's the whole rationale.
I guess this can be appened to the kernel patch changelog:
Note, for CPUID(0x6) the "thrd_director_nclasses" field is replaced with
"hw_feedback_nclasses" in this x86-cpuid-db release. Fixing the typo of
the former would exceed the project's bitfield names chracter limit, and
the latter name is more descriptive. See [link to x86-cpuid-db commit.]
Thanks,
Ahmed
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] x86/cpuid: Update bitfields to x86-cpuid-db v3.1
2026-06-08 6:34 ` Ahmed S. Darwish
@ 2026-06-08 9:22 ` Maciej Wieczor-Retman
2026-06-08 9:55 ` Ahmed S. Darwish
0 siblings, 1 reply; 7+ messages in thread
From: Maciej Wieczor-Retman @ 2026-06-08 9:22 UTC (permalink / raw)
To: Ahmed S. Darwish
Cc: Ingo Molnar, Maciej Wieczor-Retman, mingo, dave.hansen, bp, hpa,
tglx, sohil.mehta, andrew.cooper3, linux-kernel, x86, john.ogness,
ludloff, x86-cpuid
On 2026-06-08 at 08:34:36 +0200, Ahmed S. Darwish wrote:
>On Thu, 04 Jun 2026, Ingo Molnar wrote:
>>
>> * Maciej Wieczor-Retman <m.wieczorretman@pm.me> wrote:
>> >
>> > Update leaf_types.h to version 3.1, as generated by x86-cpuid-db.
>> >
>>
>> The following detail from the first submission got lost:
>>
>> > @@ -246,7 +246,7 @@ struct leaf_0x6_0 {
>> > - thrd_director_nclasses : 8, // Number of classes, Intel thread director
>> > + hw_feedback_nclasses : 8, // Number of Intel Thread Director classes
>> >
>> > Note, for CPUID(0x6) thrd_director_nclasses, it was written this way
>> > because the project does not support bitfields names with more letters.
>>
>> What does this mean exactly, is there a string length limit on the
>> field name in 'struct leaf_0x6_0'? What is the limit?
>>
>
>Sorry, I should've made that more clear in the x86-cpuid-db release notes.
>Yes, there is a limit on field name lenghts so that the C headers formatted
>output is aligned and human readable. It's an implementation detail.
>
>After Maciej's patch:
>
> https://gitlab.com/x86-cpuid.org/x86-cpuid-db/-/commit/a7af01507814
>
>I searched for more typos, grammatical mistakes, etc. and fixed some:
>
> https://gitlab.com/x86-cpuid.org/x86-cpuid-db/-/commit/41380ff73e60
>
>Fixing thrd_director_nclasses name would exceed the project's field limit
>(23 characters), so I checked the manuals, and hw_feedback_nclasses was a
>better name anyway, and thus used it.
>
>That's the whole rationale.
>
>I guess this can be appened to the kernel patch changelog:
>
> Note, for CPUID(0x6) the "thrd_director_nclasses" field is replaced with
> "hw_feedback_nclasses" in this x86-cpuid-db release. Fixing the typo of
> the former would exceed the project's bitfield names chracter limit, and
> the latter name is more descriptive. See [link to x86-cpuid-db commit.]
>
>Thanks,
>Ahmed
Thanks for explaining :)
I thought the name change due to what was in the Intel manual was a better
rationale to put in the kernel patch log. The character limit seemed much more
specific to the cpuid-db project. But I suppose that information could be
benefical in case someone would want, in a kernel discussion, suggest a name
that's >23 characters.
I see the patches were already merged to tip but perhaps in the next release we
could put the character limit information in a comment somewhere in the
tools/arch/x86/kcpuid?
--
Kind regards
Maciej Wieczór-Retman
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2 2/2] x86/cpuid: Update bitfields to x86-cpuid-db v3.1
2026-06-08 9:22 ` Maciej Wieczor-Retman
@ 2026-06-08 9:55 ` Ahmed S. Darwish
0 siblings, 0 replies; 7+ messages in thread
From: Ahmed S. Darwish @ 2026-06-08 9:55 UTC (permalink / raw)
To: Maciej Wieczor-Retman
Cc: Ingo Molnar, Maciej Wieczor-Retman, mingo, dave.hansen, bp, hpa,
tglx, sohil.mehta, andrew.cooper3, linux-kernel, x86, john.ogness,
ludloff, x86-cpuid
On Mon, 08 Jun 2026, Maciej Wieczor-Retman wrote:
>
> I see the patches were already merged to tip but perhaps in the next release we
> could put the character limit information in a comment somewhere in the
> tools/arch/x86/kcpuid?
>
Nah, please, it's not worthwhile.
That's the first time we hit the limit, and that's with a CPUID database of
64 leaves and 1104 bitfields.
Thanks,
Ahmed
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-06-08 9:55 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-03 17:10 [PATCH v2 0/2] x86/cpuid: kcpuid: v3.1 x86-cpuid-db update with fixes Maciej Wieczor-Retman
2026-06-03 17:10 ` [PATCH v2 1/2] tools/x86/kcpuid: Update bitfields to x86-cpuid-db v3.1 Maciej Wieczor-Retman
2026-06-03 17:10 ` [PATCH v2 2/2] x86/cpuid: " Maciej Wieczor-Retman
2026-06-04 7:41 ` Ingo Molnar
2026-06-08 6:34 ` Ahmed S. Darwish
2026-06-08 9:22 ` Maciej Wieczor-Retman
2026-06-08 9:55 ` Ahmed S. Darwish
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.