diff options
author | Josh Triplett <josh@joshtriplett.org> | 2013-10-30 08:09:45 -0700 |
---|---|---|
committer | Josh Triplett <josh@joshtriplett.org> | 2014-08-17 15:54:00 -0700 |
commit | 9def39be4e960917fcb80514ff23651f9ec97193 (patch) | |
tree | fc898efcdaf87f15e70576481111291a4b8ed3ef /arch/x86/include/asm/cpufeature.h | |
parent | 39f838e06f46576694d425ac30fe8ff1e214fc0b (diff) | |
download | lwn-9def39be4e960917fcb80514ff23651f9ec97193.tar.gz lwn-9def39be4e960917fcb80514ff23651f9ec97193.zip |
x86: Support compiling out human-friendly processor feature names
The table mapping CPUID bits to human-readable strings takes up a
non-trivial amount of space, and only exists to support /proc/cpuinfo
and a couple of kernel messages. Since programs depend on the format of
/proc/cpuinfo, force inclusion of the table when building with /proc
support; otherwise, support omitting that table to save space, in which
case the kernel messages will print features numerically instead.
In addition to saving 1408 bytes out of vmlinux, this also saves 1373
bytes out of the uncompressed setup code, which contributes directly to
the size of bzImage.
Signed-off-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'arch/x86/include/asm/cpufeature.h')
-rw-r--r-- | arch/x86/include/asm/cpufeature.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h index bb9b258d60e7..516903b98e06 100644 --- a/arch/x86/include/asm/cpufeature.h +++ b/arch/x86/include/asm/cpufeature.h @@ -250,8 +250,15 @@ #include <asm/asm.h> #include <linux/bitops.h> +#ifdef CONFIG_X86_FEATURE_NAMES extern const char * const x86_cap_flags[NCAPINTS*32]; extern const char * const x86_power_flags[32]; +#define X86_CAP_FMT "%s" +#define x86_cap_flag(flag) x86_cap_flags[flag] +#else +#define X86_CAP_FMT "%d:%d" +#define x86_cap_flag(flag) ((flag) >> 5), ((flag) & 31) +#endif /* * In order to save room, we index into this array by doing |