Re: [PATCH v4 0/4] KVM: x86/mmu: Pre-check for mmu_notifier retry

From: Friedrich Weber
Date: Wed Feb 14 2024 - 08:25:09 EST


On 09/02/2024 23:28, Sean Christopherson wrote:
> Retry page faults without acquiring mmu_lock, and potentially even without
> resolving a pfn, if the gfn is covered by an active invalidation. This
> avoids resource and lock contention, which can be especially beneficial
> for preemptible kernels as KVM can get stuck bouncing mmu_lock between a
> vCPU and the invalidation task the vCPU is waiting on to finish.
>
> v4:
> - Pre-check for retry before resolving the pfn, too. [Yan]
> - Add a patch to fix a private/shared vs. memslot validity check
> priority inversion bug.
> - Refactor kvm_faultin_pfn() to clean up the handling of noslot faults.

Can confirm that v4 also fixes the temporary guest hangs [1] I'm seeing
in combination with KSM and NUMA balancing:
* On 60eedcfc, the reproducer [1] triggers temporary hangs
* With the four patches applied on top of 60eedcfc, the reproducer does
not trigger hangs

Thanks a lot for looking into this!

[1]
https://lore.kernel.org/kvm/832697b9-3652-422d-a019-8c0574a188ac@xxxxxxxxxxx/