Jan Kiszka <jan.kis...@siemens.com> wrote: > On 2012-07-24 20:36, Juan Quintela wrote: >> Hi
>> Appart of the review: >> - Are there any locking issues that I have missed (I guess so) >> - stop all cpus correctly. vm_stop should be called from the iothread, >> I use the trick of using a bottom half to get that working correctly. >> but this _implementation_ is ugly as hell. Is there an easy way >> of doing it? > > vm_stop is prepared to be called from vcpu context as well. I'm not sure > right now if we actually do, but the code is there. But this is a migation_thread (i.e. neither iothread of vcpu), and we need to wait for vm_stop to finish. My reading is that in vcpu context, we just ask the iothread to stop all cpus. void vm_stop(RunState state) { if (!qemu_thread_is_self(&io_thread)) { qemu_system_vmstop_request(state); /* * FIXME: should not return to device code in case * vm_stop() has been requested. */ cpu_stop_current(); return; } do_vm_stop(state); } Or I am reading it wrong? Later, Juan.