Hi Drew, On Fri, Mar 31, 2017 at 06:06:49PM +0200, Andrew Jones wrote: > This series fixes some hard to produce races by introducing the use of > vcpu requests. It also fixes a couple easier to produce races, ones > that have been produced with the PSCI kvm-unit-test test. The easy two > are addressed in two different ways: the first takes advantage of > power_off having been changed to a vcpu request, the second caches vcpu > MPIDRs in order to avoid extracting them from sys_regs. I've tested the > series on a Mustang and a ThunderX and compile-tested the ARM bits. > > Patch 2/9 adds documentation, as, at least for me, understanding vcpu > request interplay with vcpu kicks and vcpu mode and the memory barriers > that interplay implies, is exhausting. Hopefully the document is useful > to others. I'm not married to it though, so it can be deferred/dropped > as people like...
Sounds helpful, I'll have a look. > > v2: > - No longer based on Radim's vcpu request API rework[1], except for > including "add kvm_request_pending" as patch 1/9 [drew] I lost track here; did those patches get merged or dropped and why are we not basing this work on them anymore, and should patch 1/9 be applied here or is it expected to land in the KVM tree via some other path? > - Added vcpu request documentation [drew] > - Dropped the introduction of user settable MPIDRs [Christoffer] > - Added vcpu requests to all request-less vcpu kicks [Christoffer] > Didn't we also have an issue with a missing barrier if the cmpxchg operation doesn't succeed? Did that fall though the cracks or is it just missing in the changelog? Thanks, -Christoffer > [1] https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1340496.html > > Andrew Jones (7): > KVM: Add documentation for VCPU requests > KVM: arm/arm64: prepare to use vcpu requests > KVM: arm/arm64: replace vcpu->arch.pause with a vcpu request > KVM: arm/arm64: replace vcpu->arch.power_off with a vcpu request > KVM: arm/arm64: use a vcpu request on irq injection > KVM: arm/arm64: PMU: remove request-less vcpu kick > KVM: arm/arm64: avoid race by caching MPIDR > > Levente Kurusa (1): > KVM: arm/arm64: fix race in kvm_psci_vcpu_on > > Radim Krčmář (1): > KVM: add kvm_request_pending > > Documentation/virtual/kvm/vcpu-requests.rst | 114 > ++++++++++++++++++++++++++++ > arch/arm/include/asm/kvm_emulate.h | 2 +- > arch/arm/include/asm/kvm_host.h | 13 ++-- > arch/arm/kvm/arm.c | 68 +++++++++++------ > arch/arm/kvm/coproc.c | 20 +++-- > arch/arm/kvm/handle_exit.c | 1 + > arch/arm/kvm/psci.c | 18 ++--- > arch/arm64/include/asm/kvm_emulate.h | 2 +- > arch/arm64/include/asm/kvm_host.h | 13 ++-- > arch/arm64/kvm/handle_exit.c | 1 + > arch/arm64/kvm/sys_regs.c | 27 +++---- > arch/mips/kvm/trap_emul.c | 2 +- > arch/powerpc/kvm/booke.c | 2 +- > arch/powerpc/kvm/powerpc.c | 5 +- > arch/s390/kvm/kvm-s390.c | 2 +- > arch/x86/kvm/x86.c | 4 +- > include/linux/kvm_host.h | 5 ++ > virt/kvm/arm/arch_timer.c | 1 + > virt/kvm/arm/pmu.c | 29 +++---- > virt/kvm/arm/vgic/vgic.c | 12 ++- > 20 files changed, 245 insertions(+), 96 deletions(-) > create mode 100644 Documentation/virtual/kvm/vcpu-requests.rst > > -- > 2.9.3 > _______________________________________________ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm