Gleb Natapov wrote: > Signed-off-by: Gleb Natapov <[email protected]> > diff --git a/qemu/qemu-kvm.c b/qemu/qemu-kvm.c > index e4fba78..484a232 100644 > --- a/qemu/qemu-kvm.c > +++ b/qemu/qemu-kvm.c > @@ -296,11 +296,15 @@ static void pause_all_threads(void) > { > CPUState *penv = first_cpu; > > - assert(!cpu_single_env); > - > while (penv) { > - penv->kvm_cpu_state.stop = 1; > - pthread_kill(penv->kvm_cpu_state.thread, SIG_IPI); > + if (penv != cpu_single_env) { > + penv->kvm_cpu_state.stop = 1; > + pthread_kill(penv->kvm_cpu_state.thread, SIG_IPI); > + } else { > + penv->kvm_cpu_state.stop = 0; > + penv->kvm_cpu_state.stopped = 1; > + cpu_interrupt(penv, CPU_INTERRUPT_EXIT); > + } > penv = (CPUState *)penv->next_cpu; > }
Who do you have in mind to use this? At least the debugging infrastructure could do so, but I do not recall ATM if there were limitations that the above change may not overcome. Maybe you could test your patch by changing (probably simplifying) the path from a breakpoint hit to vm_stop. Thanks, Jan -- Siemens AG, Corporate Technology, CT SE 26 Corporate Competence Center Embedded Linux -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
