Re: [PATCH 2/3] x86: mtrr_cleanup: first 1M should be coverred in var mtrrs

From: Yinghai Lu
Date: Sat Oct 04 2008 - 21:49:57 EST


On Sat, Oct 4, 2008 at 5:46 PM, H. Peter Anvin <hpa@xxxxxxxxx> 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
--
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/