[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/2]: qemu-ga: make shutdown & suspend synchrono
From: |
Luiz Capitulino |
Subject: |
Re: [Qemu-devel] [PATCH 0/2]: qemu-ga: make shutdown & suspend synchronous |
Date: |
Mon, 14 May 2012 14:14:45 -0300 |
On Mon, 14 May 2012 19:06:28 +0200
Michal Privoznik <address@hidden> wrote:
> On 11.05.2012 21:19, Luiz Capitulino wrote:
> > The main motivation for this series is fixing two possible race conditions
> > in the guest-suspend-* API due to the complexity that arose from the way
> > we handle terminated children processes today. Full details in the first
> > patch.
> >
> > This series applies on top of my two other qemu-ga series submitted
> > previously:
> >
> > http://lists.gnu.org/archive/html/qemu-devel/2012-05/msg00999.html
> >
> > http://lists.gnu.org/archive/html/qemu-devel/2012-05/msg01507.html
> >
> > qapi-schema-guest.json | 56 ++++++++++------
> > qapi/qmp-core.h | 10 ++-
> > qapi/qmp-dispatch.c | 8 ++-
> > qapi/qmp-registry.c | 4 +-
> > qemu-ga.c | 40 ++++++------
> > qga/commands-posix.c | 162
> > ++++++++++++++++++----------------------------
> > qga/guest-agent-core.h | 4 ++
> > scripts/qapi-commands.py | 14 +++-
> > 8 files changed, 154 insertions(+), 144 deletions(-)
> >
>
> Okay, this is definitely an enhancement and fix of bogus implementation.
> One thing that I'd like to ask is - how can user distinguish between
> these implementations. I am asking basically from libvirt POV.
> Because if I assume I am dealing with the previous implementation and
> thus waiting for the {'return':{}} before I can return form an API, but
> the GA actually uses the new implementation I will block endlessly.
There's no way to distinguish. It's a bug to wait for an OK response for
the guest-shutdown and guest-suspend-*, because a response may not been
sent even before this series (and this is correctly documented).