|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] x86/mm: ensure L2 is always freed if empty
On 31.10.2024 11:36, Roger Pau Monné wrote:
> On Thu, Oct 31, 2024 at 10:59:36AM +0100, Jan Beulich wrote:
>> On 30.10.2024 12:48, Roger Pau Monne wrote:
>>> The current logic in modify_xen_mappings() allows for fully empty L2 tables
>>> to
>>> not be freed and unhooked from the parent L3 if the last L2 slot is not
>>> populated.
>>>
>>> Ensure that even when an L2 slot is empty the logic to check whether the
>>> whole
>>> L2 can be removed is not skipped.
>>>
>>> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
>>
>> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
>>
>>> ---
>>> I've attempted to find a Fixes tag for this one, but I'm afraid there have
>>> been
>>> many changes in the function, and it's possibly the code that introduced
>>> the L2
>>> freeing (4376c05c31132) the one that failed to originally adjust this case.
>>
>> Yes, that looks to be the one. It has been a long while, but I think it was
>> (wrong) similarity considerations with the corresponding L3E handling (near
>> the top of the main loop) that resulted in me not touching that "continue".
>> We certainly don't want to ever free L3 tables (vacating L4 entries); since
>> the 32-bit case still mattered back then, the "continue" also couldn't have
>> been simply replaced (as there that same consideration applied to L2 tables
>> and L3 entries, for further extended reasons imposed by PAE).
>
> I agree we don't want to free L3 tables and thus zap L4 entries.
>
> Feel free to add:
>
> Fixes: 4376c05c3113 ('x86-64: use 1GB pages in 1:1 mapping if available')
>
> If you want.
Done so. Despite the tag I'm uncertain whether to backport.
Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |