Re: Fwd: [PATCH] x86: Use larger chunks in mtrr_cleanup

Prarit Bhargava
2015-09-03T18:10:18Z

On 09/03/2015 01:59 PM, Luis R. Rodriguez wrote:
> On Thu, Sep 03, 2015 at 08:17:02AM -0400, Prarit Bhargava wrote:
>>
>>
>> On 09/02/2015 10:45 PM, Luis R. Rodriguez wrote:
>>> On Mon, Aug 31, 2015 at 11:05:33AM -0500, Stuart Hayes wrote:
>>>> Increase the range of chunk sizes tried in mtrr_cleanup() so it is able
>>>> to map large memory configs into MTRRs.
>>>>
>>>> Currently, mtrr_cleanup() will fail with large memory configurations,
>>>> because it limits chunk_size to 2GB, which means that each MTRR can only
>>>> cover 2GB of memory. With a memory size of, say, 256GB, and ten variable
>>>> MTRRs (such as some recent Intel CPUs have), it is not possible to set up
>>>> the MTRRs to cover all of memory.
>>>
>>> Linux drivers no longer use MTRR so why is the cleanup needed, ie, what would
>>> happen if the cleanup is just skipped in your case ?
>>
>> The infiniband & video drivers still use MTRR (or at least it was my
>> understanding that they do).
>
> There were a few stragglers left on v4.2, I have transformed them in the latest
> development changes and those tranformations are now part of linux-next. If
> this is specific to a driver you may want to first ensure you backport the
> required patch that transforms the driver to use proper PAT interfaces, v4.2
> should have most updates but there were still a few left. Just make sure your
> driver doesn't call mtrr_add() directly and if it doesn't then you should be
> OK.
>
>> In any case, Stuart -- could you try booting with
>> 'disable_mtrr_cleanup' as a kernel parameter?
>
> Indeed, please I'd like to hear back. Be sure to have the respective driver
> transformation in place, what driver are you using exactly? In the event that
> you argue this is still needed I'd like to know exaclty *why*, the comit log
> does not mention any of that at all.
>

Well ... we are trying to also fix this in older kernels too, *cough* RHEL
*cough*, so that's where the patch comes from. If upstream is going to
deprecate/remove mtrr support so be it. We can do a stable fix instead to fix
older stable kernels.

P.