Re: [PATCH] x86: APIC: Remove apic_write_around(); use alternatives

From: Ingo Molnar
Date: Fri Jul 18 2008 - 06:53:27 EST



* Maciej W. Rozycki <macro@xxxxxxxxxxxxxx> wrote:

> Use alternatives to select the workaround for the 11AP Pentium
> erratum for the affected steppings on the fly rather than build time.
> Remove the X86_GOOD_APIC configuration option and replace all the
> calls to apic_write_around() with plain apic_write(), protecting
> accesses to the ESR as appropriate due to the 3AP Pentium erratum.
> Remove apic_read_around() and all its invocations altogether as not
> needed. Remove apic_write_atomic() and all its implementing backends.
> The use of ASM_OUTPUT2() is not strictly needed for input constraints,
> but I have used it for readability's sake.

wow, impressive patch!

> I had the feeling no one else was brave enough to do it, so I went
> ahead and here it is. Verified by checking the generated assembly and
> tested with both a 32-bit and a 64-bit configuration, also with the
> 11AP "feature" forced on and verified with gdb on /proc/kcore to work
> as expected (as an 11AP machines are quite hard to get hands on these
> days). Some script complained about the use of "volatile", but
> apic_write() needs it for the same reason and is effectively a
> replacement for writel(), so I have disregarded it.

kudos for pulling this off :-)

applied to tip/x86/apic. This will interact with tip/x86/x2apic but that
topic is being worked on anyway. The interaction should be trivial.

Ingo
--
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/