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]
Date: Mon, 18 Mar 2024 10:08:04 -0700
From: "H. Peter Anvin" <hpa@...or.com>
To: Xin Li <xin@...or.com>, linux-kernel@...r.kernel.org,
        linux-perf-users@...r.kernel.org
CC: tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
        dave.hansen@...ux.intel.com, x86@...nel.org, will@...nel.org,
        peterz@...radead.org, akpm@...ux-foundation.org, acme@...nel.org,
        namhyung@...nel.org
Subject: Re: [PATCH v1 0/3] x86/cpufeatures: Automatically generate required and disabled feature masks

On March 18, 2024 10:01:19 AM PDT, Xin Li <xin@...or.com> wrote:
>On 1/31/2024 9:46 PM, Xin Li (Intel) wrote:
>> When a CPU feature is not configured, e.g., CONFIG_X86_FRED=n, in a
>> build config, its feature disable flag, e.g. DISABLE_FRED, needs to
>> be defined and added to a specific disabled CPU features mask in
>> <asm/disabled-features.h>, as the following commit:
>> https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?h=x86/fred&id=e554a8ca49d6d6d782f546ae4d7f036946e7dd87
>> 
>> This patch set adds an awk script to automatically generate a header
>> with required and disabled CPU features masks based on build config.
>
>A gentle ping.
>
>This is an infrastructural improvement which has a lower priority,
>however it would be nice to get some feedback first.
>
>Thanks!
>    Xin
>
>
>> 
>> 
>> H. Peter Anvin (Intel) (2):
>>    x86/cpufeatures: Add {required,disabled} feature configs
>>    x86/cpufeatures: Generate a feature mask header based on build config
>> 
>> Xin Li (Intel) (1):
>>    x86/cpufeatures: Remove {disabled,required}-features.h
>> 
>>   arch/x86/Kconfig                              |   4 +-
>>   arch/x86/Kconfig.cpu                          |  16 +-
>>   arch/x86/Kconfig.cpufeatures                  | 149 +++++++++++++++++
>>   arch/x86/Makefile                             |  17 +-
>>   arch/x86/boot/cpucheck.c                      |   3 +-
>>   arch/x86/boot/cpuflags.c                      |   1 -
>>   arch/x86/boot/mkcpustr.c                      |   3 +-
>>   arch/x86/include/asm/Kbuild                   |   1 +
>>   arch/x86/include/asm/asm-prototypes.h         |   2 +-
>>   arch/x86/include/asm/atomic64_32.h            |   2 +-
>>   arch/x86/include/asm/bitops.h                 |   4 +-
>>   arch/x86/include/asm/cmpxchg_32.h             |   4 +-
>>   arch/x86/include/asm/cpufeature.h             |   1 +
>>   arch/x86/include/asm/cpufeatures.h            |   8 -
>>   arch/x86/include/asm/disabled-features.h      | 154 ------------------
>>   arch/x86/include/asm/required-features.h      | 104 ------------
>>   arch/x86/kernel/verify_cpu.S                  |   1 +
>>   arch/x86/lib/Makefile                         |   2 +-
>>   arch/x86/lib/cmpxchg8b_emu.S                  |   2 +-
>>   arch/x86/tools/featuremasks.awk               | 108 ++++++++++++
>>   lib/atomic64_test.c                           |   2 +-
>>   tools/arch/x86/include/asm/cpufeatures.h      |   8 -
>>   .../arch/x86/include/asm/disabled-features.h  | 154 ------------------
>>   .../arch/x86/include/asm/required-features.h  | 104 ------------
>>   tools/perf/check-headers.sh                   |   2 -
>>   25 files changed, 303 insertions(+), 553 deletions(-)
>>   create mode 100644 arch/x86/Kconfig.cpufeatures
>>   delete mode 100644 arch/x86/include/asm/disabled-features.h
>>   delete mode 100644 arch/x86/include/asm/required-features.h
>>   create mode 100755 arch/x86/tools/featuremasks.awk
>>   delete mode 100644 tools/arch/x86/include/asm/disabled-features.h
>>   delete mode 100644 tools/arch/x86/include/asm/required-features.h
>> 
>> 
>> base-commit: 078b7b997b47c7166c1240cf1d39db9f646a56be
>

A key pay of this is that it eliminates the need to manually assign features to cpufeature words. It was one thing when there were four of them, but with over 20 it is going to cause mistakes.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ