On Mon, 08 Aug 2011 16:40:17 +0300 Avi Kivity <a...@redhat.com> wrote:
> On 08/08/2011 04:28 PM, Luiz Capitulino wrote: > > On Mon, 08 Aug 2011 16:27:05 +0300 > > Avi Kivity<a...@redhat.com> wrote: > > > > > On 08/08/2011 04:25 PM, Luiz Capitulino wrote: > > > > > > > > > > I'm worried about the following race: > > > > > > > > > > stop > > > > > (qemu stopped for internal reason) > > > > > stop comment processed > > > > > > > > > > resume > > > > > > > > > > The (qemu stopped for internal reason) part is lost. > > > > > > > > If the "stop" you're referring to happens through vm_stop(), then no, > > > > it won't be lost because do_vm_stop() doesn't allow qemu to be stopped > > > > twice. > > > > > > What happens then? The user sees an error? > > > > It's ignored. > > Well, then, the user won't know something happened and will happily > resume the guest, like I outlined above. I think it makes sense to return an error in the monitor if the user tries to stop qemu when it's already stopped. Not sure if it will do what you think it should do, but we should always tell the user when we're unable to carry his/her orders. But it does make sense to me to not allow stopping twice. First because it doesn't make sense to stop something which is not moving and second because what else can stop the vm if it's already stopped? Maybe vm_stop() should return an error, but I think this goes beyond this series. > > When you ignore something in the first set, something breaks in the third. >