]> www.infradead.org Git - users/dwmw2/linux.git/commit
KVM: x86/xen: Use gfn_to_pfn_cache for vcpu_info
authorDavid Woodhouse <dwmw@amazon.co.uk>
Wed, 9 Feb 2022 13:17:57 +0000 (13:17 +0000)
committerDavid Woodhouse <dwmw@amazon.co.uk>
Wed, 9 Feb 2022 21:31:02 +0000 (21:31 +0000)
commit7411525ccfc176e8cd1ef1729917dba765ed727f
treea4eeb0a8f1a3f6452a89fe021fe09e9f787aee7e
parent3eee04061fe7443c5ed1baa475444c889d2a82bf
KVM: x86/xen: Use gfn_to_pfn_cache for vcpu_info

Currently, the fast path of kvm_xen_set_evtchn_fast() doesn't set the
index bits in the target vCPU's evtchn_pending_sel, because it only has
a userspace virtual address with which to do so. It just sets them in
the kernel, and kvm_xen_has_interrupt() then completes the delivery to
the actual vcpu_info structure when the vCPU runs.

Using a gfn_to_pfn_cache allows kvm_xen_set_evtchn_fast() to do the full
delivery in the common case.

Clean up the fallback case too, by moving the deferred delivery out into
a separate kvm_xen_inject_pending_events() function which isn't ever
called in atomic contexts as __kvm_xen_has_interrupt() is.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/x86.c
arch/x86/kvm/xen.c
arch/x86/kvm/xen.h