Re: [Xen-devel] Re: [PATCH 06/16] xen: disable PAT

From: Keir Fraser
Date: Sat May 09 2009 - 04:14:28 EST


On 08/05/2009 15:50, "Alan Cox" <alan@xxxxxxxxxxxxxxxxxxx> wrote:

>> Roughly speaking the kernel needs to cope with different values written
>> to MSR_IA32_CR_PAT than the single hard coded value it would write
>> itself if given the chance. Essentially _PAGE_CACHE_* need to become
>> dynamic (or I guess we could change the native layout to match Xen's, I
>> don't know why native differs from the initial state, I guess just to
>> avoid using the PAT bit for some reason.
>
> Because it is required for some processor variants due to errata. This is
> also why the BIOS has them programmed as a mirror between 0-3 and 4-7.
>
> I don't think changing Linux here is the right thing to do - if anything
> Xen probably needs to change.

My suggestion is that Xen changes its PAT[1] from WT to WC. AFAIK only
suse's Linux port is currently using Xen's PAT support, and it does not
actually use the WT cache attribute. Then Xen's PAT[0-3] would match what
Linux expects, and Linux apparently does not risk using PAT[4-7] because of
processor errata so their values are irrelevant. Linux can check that it is
running on Xen with suitable PAT setup by reading MSR_IA32_CR_PAT and
checking PAT[0-3], and only enable PAT usage in case of a match.

-- Keir


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