Re: [PATCH v2] Linux VM workaround for Knights Landing A/D leak

From: Nadav Amit
Date: Wed Jun 15 2016 - 16:04:56 EST


Lukasz <lukasz.anaczkowski@xxxxxxxxx> wrote:

> From: Nadav Amit [mailto:nadav.amit@xxxxxxxxx]
> Sent: Tuesday, June 14, 2016 8:38 PM
>
>>> + pte_t pte = ptep_get_and_clear(mm, addr, ptep);
>>> +
>>> + if (boot_cpu_has_bug(X86_BUG_PTE_LEAK))
>>> + fix_pte_leak(mm, addr, ptep);
>>> + return pte;
>>> }
>>
>> I missed it on the previous iteration: ptep_get_and_clear already calls
>> fix_pte_leak when needed. So do you need to call it again here?
>
> You're right, Nadav. Not needing this. Will be removed in next version of the patch.

Be careful here. According to the SDM when invalidating a huge-page,
each 4KB page needs to be invalidated separately. In practice, when
Linux invalidates 2MB/1GB pages it performs a full TLB flush. The
full flush may not be required on knights landing, and specifically
for the workaround, but you should check.

Regards,
Nadav