Re: [PATCH v2 0/3] Fix a lost async pagefault notification when the guest is using SMM

From: mlevitsk
Date: Mon Nov 10 2025 - 13:19:42 EST


On Mon, 2025-11-10 at 07:37 -0800, Sean Christopherson wrote:
> 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.

True, sorry for confusion.
Thanks,
Best regards,
Maxim Levitsky

>
> 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
>