KVM: Get reference to VM's address space in the async #PF worker
authorSean Christopherson <seanjc@google.com>
Wed, 10 Jan 2024 01:15:32 +0000 (17:15 -0800)
committerSean Christopherson <seanjc@google.com>
Tue, 6 Feb 2024 19:04:11 +0000 (11:04 -0800)
commit8284765f03b7a0b18968cefeb5e78aca647b8f8b
tree2dacd08f38baf749f7a1ca25f490193f88c0008c
parent422eeb543ac99ea24b80c19492c3359696500a47
KVM: Get reference to VM's address space in the async #PF worker

Get a reference to the target VM's address space in async_pf_execute()
instead of gifting a reference from kvm_setup_async_pf().  Keeping the
address space alive just to service an async #PF is counter-productive,
i.e. if the process is exiting and all vCPUs are dead, then NOT doing
get_user_pages_remote() and freeing the address space asap is desirable.

Handling the mm reference entirely within async_pf_execute() also
simplifies the async #PF flows as a whole, e.g. it's not immediately
obvious when the worker task vs. the vCPU task is responsible for putting
the gifted mm reference.

Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Reviewed-by: Xu Yilun <yilun.xu@intel.com>
Link: https://lore.kernel.org/r/20240110011533.503302-4-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
include/linux/kvm_host.h
virt/kvm/async_pf.c