This series improves performance of MMIO registrations, which occur multiple times when booting a typical VM. The existing call to synchronize_srcu() may block for a considerable time: In our tests it was found to account for approximately 25% of a VM's startup time. arm64 vgic code is cleaned up and made responsible for its own setup synchronization, and the MMIO registration logic replaces synchronize_srcu() with a deferred callback to free the old io_bus struct. Keir Fraser (3): KVM: arm64: vgic-init: Remove vgic_ready() macro KVM: arm64: vgic: Explicitly implement vgic_dist::ready ordering KVM: Avoid synchronize_srcu() in kvm_io_bus_register_dev() arch/arm64/kvm/vgic/vgic-init.c | 14 +++----------- include/kvm/arm_vgic.h | 1 - include/linux/kvm_host.h | 1 + virt/kvm/kvm_main.c | 10 ++++++++-- 4 files changed, 12 insertions(+), 14 deletions(-) -- 2.50.0.rc2.761.g2dc52ea45b-goog