From: Eric Blake <eblake@redhat.com>
To: Michal Privoznik <mprivozn@redhat.com>
Cc: qemu-devel@nongnu.org, mdroth@linux.vnet.ibm.com,
Luiz Capitulino <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 0/2]: qemu-ga: make shutdown & suspend synchronous
Date: Mon, 14 May 2012 11:17:18 -0600 [thread overview]
Message-ID: <4FB13E1E.6010605@redhat.com> (raw)
In-Reply-To: <4FB13B94.4070903@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2163 bytes --]
On 05/14/2012 11:06 AM, Michal Privoznik 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.
I think the point was that you would block endlessly waiting for the
{'return':{}} anyways, even with the old implementation, because there
was no guarantee that the guest agent could issue the reply in a timely
manner. Therefore, the only sane implementation in libvirt is to assume
that success will not be reported via the guest agent, and that libvirt
must _always_ probe for the listed side effects (a change in guest
status, qemu exiting, an event, or so forth), and optionally have a
timeout if the associated timeout does not occur in a reasonable time.
--
Eric Blake eblake@redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 620 bytes --]
next prev parent reply other threads:[~2012-05-14 17:17 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-11 19:19 [Qemu-devel] [PATCH 0/2]: qemu-ga: make shutdown & suspend synchronous Luiz Capitulino
2012-05-11 19:19 ` [Qemu-devel] [PATCH 1/2] qemu-ga: guest-suspend: make the API synchronous Luiz Capitulino
2012-05-11 22:10 ` Eric Blake
2012-05-11 19:19 ` [Qemu-devel] [PATCH 2/2] qemu-ga: guest-shutdown: become synchronous Luiz Capitulino
2012-05-11 22:11 ` Eric Blake
2012-05-14 14:56 ` [Qemu-devel] [PATCH 0/2]: qemu-ga: make shutdown & suspend synchronous Michael Roth
2012-05-14 14:56 ` [Qemu-devel] [PATCH 1/2] qemu-ga: guest-suspend: make the API synchronous Michael Roth
2012-05-14 15:30 ` Eric Blake
2012-05-14 14:56 ` [Qemu-devel] [PATCH 2/2] qemu-ga: guest-shutdown: become synchronous Michael Roth
2012-05-14 15:31 ` Eric Blake
2012-05-14 16:39 ` [Qemu-devel] [PATCH 0/2]: qemu-ga: make shutdown & suspend synchronous Luiz Capitulino
2012-05-14 17:19 ` Michael Roth
2012-05-14 17:26 ` Luiz Capitulino
2012-05-14 17:06 ` Michal Privoznik
2012-05-14 17:14 ` Luiz Capitulino
2012-05-14 17:17 ` Eric Blake [this message]
2012-05-14 18:12 ` Michael Roth
2012-05-14 18:18 ` Luiz Capitulino
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FB13E1E.6010605@redhat.com \
--to=eblake@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=mprivozn@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.