• David Woodhouse's avatar
    KVM: x86/xen: Use gfn_to_pfn_cache for vcpu_info · 7caf9571
    David Woodhouse authored
    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: default avatarDavid Woodhouse <dwmw@amazon.co.uk>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Message-Id: <20220303154127.202856-6-dwmw2@infradead.org>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    7caf9571
x86.c 341 KB