On Wed, Aug 04, 2021 at 03:58:34PM +0300, Dan Carpenter wrote: > exc_page_fault() <-- called with preempt disabled > --> kvm_handle_async_pf() > --> __kvm_handle_async_pf() > --> kvm_async_pf_task_wait_schedule() calls schedule(). This call path can not be taken in the page-fault handler when called from the #VC handler. To take this path the host needs to inject an async page-fault, especially setting async pf flags, without injecting a page-fault exception on its own ... and when the #VC handler is running. KVM is not doing that. Okay, the hypervisor can be malicious, but otherwise this can't happen. To mitigate a malicious hypervisor threat here it might be a solution to not call the page-fault handler directly from the #VC handler and let it re-fault after the #VC handler returned. Regards, Joerg