Re: [PATCH 4/4] x86/cpu: Provide a config option to disable static_cpu_has

From: Josh Triplett
Date: Tue Dec 01 2015 - 11:24:55 EST


On Tue, Dec 01, 2015 at 04:00:23PM +0100, Borislav Petkov wrote:
> From: Borislav Petkov <bp@xxxxxxx>
>
> This brings .text savings of about ~1.6K when building a tinyconfig. It
> is off by default so nothing changes for the default.
>
> Kconfig help text from Josh.
>
> Signed-off-by: Borislav Petkov <bp@xxxxxxx>
> Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>

Assuming this passes the kernel build robot, then:
Reviewed-by: Josh Triplett <josh@xxxxxxxxxxxxxxxx>

> arch/x86/Kconfig | 11 +++++++++++
> arch/x86/include/asm/cpufeature.h | 2 +-
> 2 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index db3622f22b61..a2abc2fb6970 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -349,6 +349,17 @@ config X86_FEATURE_NAMES
>
> If in doubt, say Y.
>
> +config X86_FAST_FEATURE_TESTS
> + bool "Fast CPU feature tests" if EMBEDDED
> + default y
> + ---help---
> + Some fast-paths in the kernel depend on the capabilities of the CPU.
> + Say Y here for the kernel to patch in the appropriate code at runtime
> + based on the capabilities of the CPU. The infrastructure for patching
> + code at runtime takes up some additional space; space-constrained
> + embedded systems may wish to say N here to produce smaller, slightly
> + slower code.
> +
> config X86_X2APIC
> bool "Support x2apic"
> depends on X86_LOCAL_APIC && X86_64 && (IRQ_REMAP || HYPERVISOR_GUEST)
> diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
> index 144b042c0872..43e144474043 100644
> --- a/arch/x86/include/asm/cpufeature.h
> +++ b/arch/x86/include/asm/cpufeature.h
> @@ -409,7 +409,7 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
> * fast paths and boot_cpu_has() otherwise!
> */
>
> -#if __GNUC__ >= 4
> +#if __GNUC__ >= 4 && defined(CONFIG_X86_FAST_FEATURE_TESTS)
> extern void warn_pre_alternatives(void);
> extern bool __static_cpu_has_safe(u16 bit);
>
> --
> 2.3.5
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/