Re: [PATCH v2 0/3] Fix a lost async pagefault notification when the guest is using SMM
From: Sean Christopherson
Date: Mon Nov 10 2025 - 11:04:22 EST
On Tue, 14 Oct 2025 23:32:55 -0400, Maxim Levitsky wrote:
> Recently we debugged a customer case in which the guest VM was showing
> tasks permanently stuck in the kvm_async_pf_task_wait_schedule.
>
> This was traced to the incorrect flushing of the async pagefault queue,
> which was done during the real mode entry by the kvm_post_set_cr0.
>
> This code, the kvm_clear_async_pf_completion_queue does wait for all #APF
> tasks to complete but then it proceeds to wipe the 'done' queue without
> notifying the guest.
>
> [...]
Applied 2 and 3 to kvm-x86 misc. The async #PF delivery path is also used by
the host-only version of async #PF (where KVM puts the vCPU into HLT instead of
letting the kernel schedule() in I/O), and so it's entirely expected that KVM
will dequeue completed async #PFs when the PV version is disabled.
https://lore.kernel.org/all/aQ5BiLBWGKcMe-mM@xxxxxxxxxx
[1/3] KVM: x86: Warn if KVM tries to deliver an #APF completion when APF is not enabled
[DROP]
[2/3] KVM: x86: Fix a semi theoretical bug in kvm_arch_async_page_present_queued
https://github.com/kvm-x86/linux/commit/68c35f89d016
[3/3] KVM: x86: Fix the interaction between SMM and the asynchronous pagefault
https://github.com/kvm-x86/linux/commit/ab4e41eb9fab
--
https://github.com/kvm-x86/linux/tree/next