Re: [PATCH] i386, x86_64 Initial PAT implementation

Eric W. Biederman
2005-08-30T15:20:56Z

Alan Cox <alan@lxorguk.ukuu.org.uk> writes:

> On Llu, 2005-08-29 at 18:20 -0600, Eric W. Biederman wrote:
>> ways. Currently this code only allows for an additional flavor
>> of uncached access to physical memory addresses which should be hard
>> to abuse, and should raise no additional aliasing problems. No
>> attempt has been made to fix theoretical aliasing problems.
>
> Even an uncached/cached alias causes random memory corruption or an MCE
> on x86 systems. In fact it can occur even for an alias not in theory
> touched by the CPU if it happens to prefetch into or speculate the
> address.

Right. To the best of my understanding problem aliases are either
uncached/write-back or write-combine/write-back. I don't think
uncached/write-combine can cause problems. My basic reason for
believing this patch is safe is that sane usage will only convert
areas of memory that are now uncached to write-combine.

> Also be sure to read the PII Xeon errata - early PAT has a bug or two.
>
> Definitely a much needed improvement to the kernel though.

Thanks. As best as I can tell by reading the errata, the only
bugs are confined to (a) the upper for PAT entries are used and
(b) when mtrrs are disabled and caching is still enabled.

I don't make use of either case so my patch should avoid those
errata.

Eric