lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4BCBA481-AC3A-4A65-B791-235E580286CC@zytor.com>
Date: Wed, 12 Mar 2025 12:54:31 -0700
From: "H. Peter Anvin" <hpa@...or.com>
To: "Ahmed S. Darwish" <darwi@...utronix.de>, Ingo Molnar <mingo@...hat.com>,
        Dave Hansen <dave.hansen@...ux.intel.com>,
        Borislav Petkov <bp@...en8.de>
CC: Thomas Gleixner <tglx@...utronix.de>,
        Andrew Cooper <andrew.cooper3@...rix.com>,
        John Ogness <john.ogness@...utronix.de>, x86@...nel.org,
        x86-cpuid@...ts.linux.dev, LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2 19/20] tools/x86/kcpuid: Update bitfields to x86-cpuid-db v2.3

On March 12, 2025 7:37:36 AM PDT, "Ahmed S. Darwish" <darwi@...utronix.de> wrote:
>Update kcpuid's CSV file to version 2.3, as generated by x86-cpuid-db.
>
>Summary of the v2.3 changes:
>
>* Per H. Peter Anvin's feedback, leaf 0x3 is not unique to Transmeta as
>  the CSV file earlier claimed.  Since leaf 0x3's format differs between
>  Intel and Transmeta, and the project does not yet support having the
>  same CPUID bitfield with varying interpretations across vendors, leaf
>  0x3 is removed for now.  Given that Intel discontinued support for PSN
>  from Pentium 4 onward, and Linux force disables it on early boot for
>  privacy concerns, this should have minimal impact.
>
>* Leaf 0x80000021: Make bitfield IDs and descriptions coherent with each
>  other.  Remove "_support" from bitfield IDs, as no other leaf has such
>  convention.
>
>Reported-by: "H. Peter Anvin" <hpa@...or.com>
>Closes: https://lkml.kernel.org/r/C7684E03-36E0-4D58-B6F0-78F4DB82D737@zytor.com
>Signed-off-by: Ahmed S. Darwish <darwi@...utronix.de>
>Link: https://gitlab.com/x86-cpuid.org/x86-cpuid-db/-/blob/v2.3/CHANGELOG.rst
>---
> tools/arch/x86/kcpuid/cpuid.csv | 30 +++++++++++-------------------
> 1 file changed, 11 insertions(+), 19 deletions(-)
>
>diff --git a/tools/arch/x86/kcpuid/cpuid.csv b/tools/arch/x86/kcpuid/cpuid.csv
>index 9613e09cbfb3..8d25b0b49f3b 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 v2.2
>+# Generator: x86-cpuid-db v2.3
> 
> #
> # Auto-generated file.
>@@ -116,14 +116,6 @@
>        0x2,         0,  edx,   30:24,    desc15                 , Descriptor #15
>        0x2,         0,  edx,      31,    edx_invalid            , Descriptors 12-15 are invalid if set
> 
>-# Leaf 3H
>-# Transmeta Processor Serial Number (PSN)
>-
>-       0x3,         0,  eax,    31:0,    cpu_psn_0              , Processor Serial Number bytes 0 - 3
>-       0x3,         0,  ebx,    31:0,    cpu_psn_1              , Processor Serial Number bytes 4 - 7
>-       0x3,         0,  ecx,    31:0,    cpu_psn_2              , Processor Serial Number bytes 8 - 11
>-       0x3,         0,  edx,    31:0,    cpu_psn_3              , Processor Serial Number bytes 12 - 15
>-
> # Leaf 4H
> # Intel deterministic cache parameters
> 
>@@ -1020,20 +1012,20 @@
> 0x80000021,         0,  eax,       0,    no_nested_data_bp      , No nested data breakpoints
> 0x80000021,         0,  eax,       1,    fsgs_non_serializing   , WRMSR to {FS,GS,KERNEL_GS}_BASE is non-serializing
> 0x80000021,         0,  eax,       2,    lfence_rdtsc           , LFENCE always serializing / synchronizes RDTSC
>-0x80000021,         0,  eax,       3,    smm_page_cfg_lock      , SMM paging configuration lock is supported
>+0x80000021,         0,  eax,       3,    smm_page_cfg_lock      , SMM paging configuration lock
> 0x80000021,         0,  eax,       6,    null_sel_clr_base      , Null selector clears base
>-0x80000021,         0,  eax,       7,    upper_addr_ignore      , EFER MSR Upper Address Ignore Enable bit supported
>-0x80000021,         0,  eax,       8,    autoibrs               , EFER MSR Automatic IBRS enable bit supported
>-0x80000021,         0,  eax,       9,    no_smm_ctl_msr         , SMM_CTL MSR (0xc0010116) is not present
>-0x80000021,         0,  eax,      10,    fsrs_supported         , Fast Short Rep STOSB (FSRS) is supported
>-0x80000021,         0,  eax,      11,    fsrc_supported         , Fast Short Rep CMPSB (FSRC) is supported
>-0x80000021,         0,  eax,      13,    prefetch_ctl_msr       , Prefetch control MSR is supported
>+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 (0xc0010116) is not available
>+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 is available
> 0x80000021,         0,  eax,      16,    opcode_reclaim         , Reserves opcode space
> 0x80000021,         0,  eax,      17,    user_cpuid_disable     , #GP when executing CPUID at CPL > 0 is supported
>-0x80000021,         0,  eax,      18,    epsf_supported         , Enhanced Predictive Store Forwarding (EPSF) is supported
>+0x80000021,         0,  eax,      18,    epsf                   , Enhanced Predictive Store Forwarding
> 0x80000021,         0,  eax,      22,    wl_feedback            , Workload-based heuristic feedback to OS
>-0x80000021,         0,  eax,      24,    eraps_support          , Enhanced Return Address Predictor Security
>-0x80000021,         0,  eax,      27,    sbpb                   , Support for the Selective Branch Predictor Barrier
>+0x80000021,         0,  eax,      24,    eraps                  , Enhanced Return Address Predictor Security
>+0x80000021,         0,  eax,      27,    sbpb                   , Selective Branch Predictor Barrier
> 0x80000021,         0,  eax,      28,    ibpb_brtype            , Branch predictions flushed from CPU branch predictor
> 0x80000021,         0,  eax,      29,    srso_no                , CPU is not subject to the SRSO vulnerability
> 0x80000021,         0,  eax,      30,    srso_uk_no             , CPU is not vulnerable to SRSO at user-kernel boundary

As I said, you can simply treat leaf 3 as raw 128-bit hexadecimal number; there really isn't a need to "interpret" it since the only meaningful use of it is as a unique identifier combined with vendor-FMS.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ