Re: [PATCH v13 00/21] KVM: xen: update shared_info and vcpu_info handling

From: Sean Christopherson
Date: Mon Feb 19 2024 - 17:07:08 EST


On Thu, Feb 15, 2024, Paul Durrant wrote:
> David Woodhouse (1):
> KVM: pfncache: rework __kvm_gpc_refresh() to fix locking issues
>
> Paul Durrant (19):
> KVM: pfncache: Add a map helper function
> KVM: pfncache: remove unnecessary exports
> KVM: x86/xen: mark guest pages dirty with the pfncache lock held
> KVM: pfncache: add a mark-dirty helper
> KVM: pfncache: remove KVM_GUEST_USES_PFN usage
> KVM: pfncache: stop open-coding offset_in_page()
> KVM: pfncache: include page offset in uhva and use it consistently
> KVM: pfncache: allow a cache to be activated with a fixed (userspace)
> HVA
> KVM: x86/xen: separate initialization of shared_info cache and content
> KVM: x86/xen: re-initialize shared_info if guest (32/64-bit) mode is
> set
> KVM: x86/xen: allow shared_info to be mapped by fixed HVA
> KVM: x86/xen: allow vcpu_info to be mapped by fixed HVA
> KVM: selftests: map Xen's shared_info page using HVA rather than GFN
> KVM: selftests: re-map Xen's vcpu_info using HVA rather than GPA
> KVM: x86/xen: advertize the KVM_XEN_HVM_CONFIG_SHARED_INFO_HVA
> capability
> KVM: x86/xen: split up kvm_xen_set_evtchn_fast()
> KVM: x86/xen: don't block on pfncache locks in
> kvm_xen_set_evtchn_fast()
> KVM: pfncache: check the need for invalidation under read lock first
> KVM: x86/xen: allow vcpu_info content to be 'safely' copied
>
> Sean Christopherson (1):
> KVM: s390: Refactor kvm_is_error_gpa() into kvm_is_gpa_in_memslot()
>
> Documentation/virt/kvm/api.rst | 53 ++-
> arch/s390/kvm/diag.c | 2 +-
> arch/s390/kvm/gaccess.c | 14 +-
> arch/s390/kvm/kvm-s390.c | 4 +-
> arch/s390/kvm/priv.c | 4 +-
> arch/s390/kvm/sigp.c | 2 +-
> arch/x86/kvm/x86.c | 7 +-
> arch/x86/kvm/xen.c | 361 +++++++++++------
> include/linux/kvm_host.h | 49 ++-
> include/linux/kvm_types.h | 8 -
> include/uapi/linux/kvm.h | 9 +-
> .../selftests/kvm/x86_64/xen_shinfo_test.c | 59 ++-
> virt/kvm/pfncache.c | 382 ++++++++++--------
> 13 files changed, 591 insertions(+), 363 deletions(-)

Except for the read_trylock() patch, just a few nits that I can fixup when
applying, though I'll defeinitely want your eyeballs on the end result as they
tweaks aren't _that_ trivial.

Running tests now, if all goes well I'll push to kvm-x86 within the hour.