Re: [PATCH v2] x86: mtrr: don't modify RdDram/WrDram bits of fixed MTRRs

Ingo Molnar
2009-03-13T09:23:18Z

* Andreas Herrmann <andreas.herrmann3@amd.com> wrote:

> (1) The patch modifies an old fix from Bernhard Kaindl to get
> suspend/resume working on some Acer Laptops. Bernhard's patch
> tried to sync RdMem/WrMem bits of fixed MTRR registers and that
> helped on those old Laptops. (Don't ask me why -- can't test it
> myself). But this old problem was not the motivation for the
> patch. (See http://lkml.org/lkml/2007/4/3/110)
>
> (2) The more important effect is to fix issues on some more current systems.
>
> On those systems Linux panics or just freezes, see
>
> http://bugzilla.kernel.org/show_bug.cgi?id=11541
> (and also duplicates of this bug:
> http://bugzilla.kernel.org/show_bug.cgi?id=11737
> http://bugzilla.kernel.org/show_bug.cgi?id=11714)
>
> The affected systems boot only using acpi=ht, acpi=off or
> when the kernel is built with CONFIG_MTRR=n.
>
> The acpi options prevent full enablement of ACPI. Obviously when
> ACPI is enabled the BIOS/SMM modfies RdMem/WrMem bits. When
> CONFIG_MTRR=y Linux also accesses and modifies those bits when it
> needs to sync fixed-MTRRs across cores (Bernhard's fix, see (1)).
> How do you synchronize that? You can't. As a consequence Linux
> shouldn't touch those bits at all (Rationale are AMD's BKDGs which
> recommend to clear the bit that makes RdMem/WrMem accessible).
> This is the purpose of this patch. And (so far) this suffices to
> fix (1) and (2).

thanks - that's excellent info. I've amended the commit log with
this.

It's still .29.1 material due to the general riskiness of MTRR
changes - but the merge window will open in 1-2 weeks so it's
not a 3 months delay.

Ingo