KVM: x86: Use rw_semaphore for APICv lock to allow vCPU parallelism
authorSean Christopherson <seanjc@google.com>
Fri, 22 Oct 2021 00:49:27 +0000 (17:49 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 22 Oct 2021 15:20:16 +0000 (11:20 -0400)
commit187c8833def8a191c7f01d7932eac1bd2ab84af1
tree5a76d19edb25bbc663c4eafec41c37875625bc68
parentee49a89329711f84601bcb65ac8e8ef54fdac771
KVM: x86: Use rw_semaphore for APICv lock to allow vCPU parallelism

Use a rw_semaphore instead of a mutex to coordinate APICv updates so that
vCPUs responding to requests can take the lock for read and run in
parallel.  Using a mutex forces serialization of vCPUs even though
kvm_vcpu_update_apicv() only touches data local to that vCPU or is
protected by a different lock, e.g. SVM's ir_list_lock.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20211022004927.1448382-5-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/hyperv.c
arch/x86/kvm/x86.c