kvm: locking and API rework for iosignalfd
v4 cover kvm: locking and API rework for iosignalfd
This series switches kvm_io_device to slots_lock from kvm->lock mutex, and uses that to rework io bus API. This takes less locks on data path, and uses less lines of code. These changes will also be useful to serve as basis for Greg's iosignalfd work.
---
This works for me, but please review carefully.
Changes since v3:
Fix bug noticed by Marcelo
Switch pit creation to slots_lock
Add unlocked variant for bus changes: in use by pit More documentation
Changes since v2:
I have split the patch and reworked along the lines suggested by Avi.
Michael S. Tsirkin (6):
kvm: document locking for kvm_io_device_ops
kvm: switch coalesced mmio changes to slots_lock
kvm: switch pit creation to slots_lock
kvm: convert bus to slots_lock
kvm: remove in_range from io devices
kvm: document lock nesting rule
arch/ia64/kvm/kvm-ia64.c | 28 +++-------- arch/x86/kvm/i8254.c | 54 +++++++++++---------- arch/x86/kvm/i8259.c | 22 +++++---- arch/x86/kvm/lapic.c | 44 ++++++++--------- arch/x86/kvm/x86.c | 114 +++++++++++++------------------------------- include/linux/kvm_host.h | 11 +++- virt/kvm/coalesced_mmio.c | 28 +++++------ virt/kvm/ioapic.c | 24 +++++---- virt/kvm/iodev.h | 42 +++++++--------- virt/kvm/kvm_main.c | 38 +++++++++++---- 10 files changed, 183 insertions(+), 222 deletions(-)