[lkml]   [2008]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] x86: mtrr cleanup for converting continuous to discrete layout v5
Yinghai Lu <> writes:

> some BIOS like to use continus MTRR layout, and may X driver can not add
> WB entries for graphical cards when 4g or more RAM installed.
> the patch will change MTRR to discrete.
> mtrr_chunk_size= could be used to have smaller continuous block to hold holes.
> default is 256m, could be set according to size of graphics card memory.
> v2: fix -1 for UC checking
> v3: default to disable, and need use enable_mtrr_cleanup to enable this feature
> skip the var state change warning.
> remove next_basek in range_to_mtrr()
> v4: correct warning mask.
> Signed-off-by: Yinghai Lu <>

Skimming through the code it looks fairly sane.

I do think it would be good to split this patch into two pieces.
1) The mtrr rewriter/sanitizer/normalize.
All it does it should do is rewrite the MTRRs with a
semantically equivalent value. This code should always be
safe and work on any system with MTRRs.

This works around otherwise sane bios's that simply prefer
to have contiguous MTRRs.

I don't see a reason why this code should be configurable.

This approach avoids earlier concerns because it starts
with the existing MTRR layout and not with the e820 map.

2) The mtrr_chunk_size code that rounds things off and allows
us to use discrete MTRRs by reducing some RAM to uncacheable.
Because it makes things uncacheable it has potentially bad
side effects on performance and thus potentially bad side
effects on functionality. For areas like the SMM and ACPI
especially as they usually occur at the end of RAM just
below 4G.

The chunk size code should be configurable and default to off
because it has potential side effects. A KConfig option may
also be appropriate. It asks an interesting trade off question
do you want your BIOS to be fast or X.


 \ /
  Last update: 2008-04-29 21:13    [W:0.551 / U:6.856 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site