kvm: Report proper error on GET_VCPU_MMAP_SIZE failures
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
kvm: Drop redundant kvm_enabled from kvm_cpu_thread_fn
kvm: Handle kvm_init_vcpu errors
Do not ignore errors of kvm_init_vcpu, they are fatal.
kvm: Provide sigbus services arch-independently
Provide arch-independent kvm_on_sigbus* stubs to remove the #ifdef'eryfrom cpus.c. This patch also fixes --disable-kvm build by providing themissing kvm_on_sigbus_vcpu kvm-stub.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>...
Refactor signal setup functions in cpus.c
Move {tcg,kvm}_init_ipi and block_io_signals to avoid prototypes, renamethe former two to clarify that they deal with more than SIG_IPI. Nofunctional changes - except for the tiny fixup of strerror usage.
The forward declaration of sigbus_handler is just temporarily, it will...
Stop current VCPU on synchronous reset requests
If some I/O operation ends up calling qemu_system_reset_request in VCPUcontext, we record this and inform the io-thread, but we do notterminate the VCPU loop. This can lead to fairly unexpected behavior if...
Process vmstop requests in IO thread
A pending vmstop request is also a reason to leave the inner main loop.So far we ignored it, and pending stop requests issued over VCPU threadswere simply ignored.
Trigger exit from cpu_exec_all on pending IO events
Except for timer events, we currently do not leave the loop over allVCPUs if an IO event was filed. That may cause unexpected IO latenciesunder !CONFIG_IOTHREAD in SMP scenarios. Fix it by setting the global...
Leave inner main_loop faster on pending requests
If there is any pending request that requires us to leave the inner loopif main_loop, makes sure we do this as soon as possible by enforcingnon-blocking IO processing.
At this change, move variable definitions out of the inner loop to...
Flatten the main loop
First of all, vm_can_run is a misnomer, it actually means "no requestpending". Moreover, there is no need to check all pending requeststwice, the first time via the inner loop check and then again whenactually processing the requests. We can simply remove the inner loop...
View all revisions | View revisions
Also available in: Atom