Re: vesafb-fix-mtrr-bugs.patch added to -mm tree

From: Antonino A. Daplas
Date: Fri Jul 29 2005 - 20:48:28 EST


Andrew Morton wrote:
Dave Jones <davej@xxxxxxxxxx> wrote:
On Fri, Jul 29, 2005 at 11:24:37AM -0700, Andrew Morton wrote:

> From: "Antonino A. Daplas" <adaplas@xxxxxxxxx>
> > >> vesafb: mode is 800x600x16, linelength=1600, pages=16
> >> vesafb: scrolling: redraw
> >> vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0
> >> mtrr: type mismatch for fc000000,1000000 old: write-back new: write-
> >> combining
> > Range is already set to write-back, vesafb attempts to add a write-combining
> mtrr (default for vesafb).
> > >> mtrr: size and base must be multiples of 4 kiB
> > This is a bug, vesafb attempts to add a size < PAGE_SIZE triggering
> the messages below.

I fixed this a few weeks back. It's this line which your patch removes..

- while (temp_size > PAGE_SIZE &&

> To eliminate the warning messages, you can add the option mtrr:2 to add a
> write-back mtrr for vesafb. Or just use nomtrr option.

If we need users to pass extra command line args to make warnings go
away, we may as well not bother. Because 99% of users will be completely
unaware that option even exists. They'll still see the same message,
and still report the same bugs.

The pains of MTRR strike again. This stuff is just screaming for
a usable PAT implementation. Andi, you were working on that, any news ?
Or should I resurrect Terrence's patch again ?


Well something is still awry:




Begin forwarded message:

Date: Fri, 29 Jul 2005 13:40:05 +0200
From: Alessandro <alezzandro@xxxxxxxxx>
To: Andrew Morton <akpm@xxxxxxxx>
Subject: Re: "mtrr: type mismatch for e0000000,8000000 old: write-back new: write-combining" on Kernel 2.6.12


I try the new prepatch for the stable Linux kernel (2.6.13-rc4) but
the problem is the same:
...
vesafb: framebuffer at 0xe0000000, mapped to 0xe0880000, using 4608k,
total 131072k
vesafb: mode is 1024x768x24, linelength=3072, pages=55
vesafb: protected mode interface info at c000:56cb
vesafb: scrolling: redraw
vesafb: Truecolor: size=0:8:8:8, shift=0:16:8:0
mtrr: type mismatch for e0000000,8000000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,4000000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,2000000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,1000000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,800000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,400000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,200000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,100000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,80000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,40000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,20000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,10000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,8000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,4000 old: write-back new: write-combining
mtrr: type mismatch for e0000000,2000 old: write-back new: write-combining

Vesafb defaults to write-combining mtrr. But the memory range is already
set to write-back so mtrr_check() spewed the above messages. I don't think it
has any ill effects, but if you want to eliminate the above messages, tell
vesafb to also use write-back mtrr by adding the boot option "mtrr:2"
(or nomtrr).

I think I'll submit a documentation patch.

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