Messages in this thread | | | Date | Sat, 4 Oct 2008 18:49:46 -0700 | From | "Yinghai Lu" <> | Subject | Re: [PATCH 2/3] x86: mtrr_cleanup: first 1M should be coverred in var mtrrs |
| |
On Sat, Oct 4, 2008 at 5:46 PM, H. Peter Anvin <hpa@zytor.com> wrote: > Yinghai Lu wrote: >> >> + /* >> + * [0, 1M) should always be coverred by var mtrr with WB >> + * and fixed mtrrs should take effective before var mtrr for it >> + */ >> + nr_range = add_range_with_merge(range, nr_range, 0, >> + (1ULL<<(20 - PAGE_SHIFT)) - 1); >> + /* sort the ranges */ >> + sort(range, nr_range, sizeof(struct res_range), cmp_range, NULL); >> + > > The first 1 MB is a total don't care for the variable MTRRs -- they don't > have to be covered *or* uncovered, since the entire first 1 MB is addressed > by fixed MTRRs.
so it is safe to put it in WB, and can be spare some regs because it start from base 0.
> > In practice, it is *likely* that you're going to want to merge it with a WB > MTRR, but with various vendors doing all kinds of strange things on > EFI-damaged platforms, it may not always be that way.
EFI will not use fixed-mtrr for first 1M? and not cover first 1M in var mtrr with WB? that will run out mtrr regs..
YH
| |