Re: [PATCH] Use MTRRs by default for vesafb on x86-64

Eric W. Biederman
2003-05-19T12:17:11Z

Andi Kleen <ak@muc.de> writes:

> On Sat, May 17, 2003 at 12:58:39AM +0200, Eric W. Biederman wrote:
> > I don't know if this affects the frame buffers per se.
> >
> > But often BIOS's on systems with large amounts of memory configure
> > overlapping mtrrs (where an uncacheable mtrr would override a larger
> > cacheable range). To date this has confused the linux mtrr code when
> > it tries to modify things, and you cannot properly setup mtrrs. I
> > believe this applies to both the fb case as well as X.
>
> Interesting. Perhaps it would be really better to use change_page_attr()
> with PAT for this. It would avoid these problems.

At least for x86-64 I would recommend that, as you can count on it existing.

For normal x86 it is more interesting. But you are less likely to run with
lots of memory so this case is less likely to show up. I have already heard
people seriously discussing 16GB on an off the shelf on an x86-64
system. Getting 2GB PC2700 DIMMs is still a bit of a challenge, but
the practical memory size barrier (3GB per task) is finally gone.

For x86-64 a software ``mtrr'' that maps everything the e820 map says
is memory as write-back and everything else as uncacheable by default would
be nice. As the mtrr interface is already understood by things like X. And
there needs to be some data structure that remembers what the page
cache-ability attributes should be.

Eric