QEMU-KVM has a bug where the interruptibility of the CPU is predicated on pending interrupts. If the reason that a CPU is interrupted is because we need to inject interrupts, the current code will just keep looping and miss the event window.
This doesnt seem to cause problems with in-trunk KVM. However, once we turn on in-kernel HALTING, QEMU starts to have some serious problems that were attributed to this bug. Signed-off-by: Gregory Haskins <[EMAIL PROTECTED]> --- qemu/qemu-kvm.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/qemu/qemu-kvm.c b/qemu/qemu-kvm.c index 1849997..5b5c739 100644 --- a/qemu/qemu-kvm.c +++ b/qemu/qemu-kvm.c @@ -452,11 +452,8 @@ void kvm_save_registers(CPUState *env) int kvm_cpu_exec(CPUState *env) { int r; - int pending = (!env->ready_for_interrupt_injection || - ((env->interrupt_request & CPU_INTERRUPT_HARD) && - (env->eflags & IF_MASK))); - if (!pending && (env->interrupt_request & CPU_INTERRUPT_EXIT)) { + if (env->interrupt_request & CPU_INTERRUPT_EXIT) { env->interrupt_request &= ~CPU_INTERRUPT_EXIT; env->exception_index = EXCP_INTERRUPT; cpu_loop_exit(); ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel