x86: reduce CONFIG_X86_PPRO_FENCE bloat
Nick Piggin [Wed, 30 Jan 2008 12:32:31 +0000 (13:32 +0100)]
CONFIG_X86_PPRO_FENCE bloats text:

i386 allmodconf: size mm/built-in.o
           text    data     bss     dec     hex         text ratio
vanilla: 163082   20372   40120  223574   36956          100.00%
bugfix : 163509   20372   40120  224001   36b01            0.26%
noppro : 162191   20372   40120  222683   365db         -  0.55%
both   : 162267   20372   40120  222759   36627         -  0.50% (+0.05% vs noppro)

So with the ppro memory ordering bug out of the way, the PG_uptodate fix
only adds 76 bytes of text.

allow this config to be specified by distros.

[ mingo@elte.hu: x86.git merge ]

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

arch/x86/Kconfig.cpu

index 018d68e..e09a6b7 100644 (file)
@@ -321,8 +321,17 @@ config X86_XADD
        depends on X86_32 && !M386
 
 config X86_PPRO_FENCE
-       def_bool y
+       bool "PentiumPro memory ordering errata workaround"
        depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODEGX1
+       help
+         Old PentiumPro multiprocessor systems had errata that could cause memory
+         operations to violate the x86 ordering standard in rare cases. Enabling this
+         option will attempt to work around some (but not all) occurances of
+         this problem, at the cost of much heavier spinlock and memory barrier
+         operations.
+
+         If unsure, say n here. Even distro kernels should think twice before enabling
+         this: there are few systems, and an unlikely bug.
 
 config X86_F00F_BUG
        def_bool y