Version 2 of part II. Changes: - Fixed "Unconditionally reenter kernel after IO exits" to take self-INIT into account - Fixed misplaced hunk in "Fix race between timer signals and vcpu entry under !IOTHREAD" (rebase artifact) - Factor out block_synchronous_signals (analogue to block_io_signals) - Additional fix to break out of SMP VCPU loop on pending IO event - Fork qemu_kvm_init_cpu_signals over CONFIG_IOTHREAD - Additional cleanup, flattening the main loop Hope I addressed all review comments (except for passing env to qemu_cpu_kick_self which I think is better as it is). Thanks, Jan CC: Alexander Graf <agraf@xxxxxxx> CC: Gleb Natapov <gleb@xxxxxxxxxx> CC: Hidetoshi Seto <seto.hidetoshi@xxxxxxxxxxxxxx> CC: Huang Ying <ying.huang@xxxxxxxxx> CC: Jin Dongming <jin.dongming@xxxxxxxxxxxxxxxxxx> CC: Paolo Bonzini <pbonzini@xxxxxxxxxx> CC: Stefan Hajnoczi <stefanha@xxxxxxxxxxxxxxxxxx> Jan Kiszka (24): kvm: x86: Fix build in absence of KVM_CAP_ASYNC_PF Prevent abortion on multiple VCPU kicks Stop current VCPU on synchronous reset requests Process vmstop requests in IO thread Trigger exit from cpu_exec_all on pending IO events Leave inner main_loop faster on pending requests Flatten the main loop kvm: Report proper error on GET_VCPU_MMAP_SIZE failures kvm: Drop redundant kvm_enabled from kvm_cpu_thread_fn kvm: Handle kvm_init_vcpu errors kvm: Provide sigbus services arch-independently Refactor signal setup functions in cpus.c kvm: Set up signal mask also for !CONFIG_IOTHREAD kvm: Refactor qemu_kvm_eat_signals kvm: Call qemu_kvm_eat_signals also under !CONFIG_IOTHREAD Set up signalfd under !CONFIG_IOTHREAD kvm: Fix race between timer signals and vcpu entry under !IOTHREAD kvm: Add MCE signal support for !CONFIG_IOTHREAD Introduce VCPU self-signaling service kvm: Unconditionally reenter kernel after IO exits kvm: Remove static return code of kvm_handle_io kvm: Leave kvm_cpu_exec directly after KVM_EXIT_SHUTDOWN Refactor kvm&tcg function names in cpus.c Fix a few coding style violations in cpus.c Makefile.objs | 2 +- configure | 6 + cpu-defs.h | 1 + cpus.c | 662 ++++++++++++++++++++++++++++++++-------------------- cpus.h | 1 + kvm-all.c | 60 +++-- kvm-stub.c | 5 + kvm.h | 7 +- qemu-common.h | 1 + target-i386/kvm.c | 11 +- target-ppc/kvm.c | 10 + target-s390x/kvm.c | 10 + vl.c | 40 ++-- 13 files changed, 514 insertions(+), 302 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html