[libvirt] [PATCH] Ignore qemu STOP event when stopping CPUs
Luiz Capitulino
lcapitulino at redhat.com
Tue Apr 27 18:50:20 UTC 2010
On Tue, 27 Apr 2010 11:20:39 +0200
jdenemar at redhat.com wrote:
> From: Jiri Denemark <jdenemar at redhat.com>
>
> With JSON qemu monitor, we get a STOP event from qemu whenever qemu
> stops guests CPUs. The downside of it is that vm->state is changed to
> PAUSED and a new generic paused event is send to applications. However,
> when we ask qemu to stop the CPUs we are not really interested in qemu
> event and we usually want to issue a more specific event.
Can you give an example? Say, "guest is suspended"?
If this is the case, something you have to consider is whether libvirt
should add high-level events on top of low-level ones.
Or, to make it more general, what should libvirt report to applications
wrt events?
> By setting vm->status to PAUSED before actually sending the request to
> qemu (and resetting it back if the request fails) we can ignore the
> event since the event handler does nothing when the guest is already
> paused. This solution is quite hacky but unfortunately it's the best
> solution which I was able to come up with and it doesn't introduce a
> race condition.
You could extend the low-level driver to accept a mask of events to
be ignored.
More information about the libvir-list
mailing list