From: Avi Kivity <avi@redhat.com>
To: Jan Kiszka <jan.kiszka@web.de>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
qemu-devel@nongnu.org, Luiz Capitulino <lcapitulino@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] runstate: do not discard runstate changes when paused
Date: Wed, 05 Oct 2011 18:37:51 +0200 [thread overview]
Message-ID: <4E8C87DF.5080201@redhat.com> (raw)
In-Reply-To: <4E8C8656.3040706@web.de>
On 10/05/2011 06:31 PM, Jan Kiszka wrote:
> >>
> >
> > vm_start() should be symmetric with vm_stop(). That is, if a piece of
> > code wants to execute with vcpus stopped, it should just run inside a
> > stop/start pair.
> >
> > The only confusion can come from the user, if he sees multiple stop
> > events and expects that just one cont will continue the vm. For the
> > machine monitor, we should just document that the you have to issue one
> > cont for every stop event you see (plus any stops you issue). It's not
> > unnatural - the code that handles a stop_due_to_enospace can work to fix
> > the error and issue a cont, disregarding any other stops in progress
> > (due to a user pressing the stop button, or migration, or cpu hotplug,
> > or whatever). For the human monitor, it's not so intuitive, but the
> > situation is so rare we can just rely on the user to issue cont again.
>
> Making this kind of user-visible change would be a bad idea.
The current situation is a bad idea.
Consider a user-initiated or qemu-initiated stop; the user starts to
deal with it, types 'cont', and as the Enter key is being depressed
another qemu-initiated stop comes along. The 'cont' restarts the guest
even though the second event was not dealt with.
> We are talking about multiple stop states here, but only a single
> function (vm_stop) to enter them - maybe that's not optimal. But the
> point is that we were missing one stop-to-stop transition. And that
> needs to be fixed, either inside vm_stop or when it is called.
Those stops are orthogonal. There is no relationship between a
migration stop, a user stop, an ENOSPC stop, a hotplug stop, and a
debugger stop. There is no reason to start inventing stop-to-stop
transitions between them. A 'cont' intended for one should not undo
another.
There are two ways to do this, one is to store a set of stop reasons and
let both 'stop' and 'cont' specify the reason, the other, which is
simpler but less safe, is to use a reference counting approach.
>
> If you want to lock the VM into paused state, add a new symmetric API
> that does precisely this. That API would send the VM into RSTATE_LOCKED
> if it is not yet stopped on lock or is still locked on resume. That
> would avoid redefining stop states that have no use for lock-counting
> semantics.
>
Which stop states would these be? When would you want one cont to undo
two stops?
--
error compiling committee.c: too many arguments to function
next prev parent reply other threads:[~2011-10-05 16:37 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-04 12:04 [Qemu-devel] [PATCH] runstate: do not discard runstate changes when paused Paolo Bonzini
2011-10-04 13:49 ` Luiz Capitulino
2011-10-04 14:09 ` Paolo Bonzini
2011-10-04 14:30 ` Luiz Capitulino
2011-10-05 14:37 ` Luiz Capitulino
2011-10-05 15:43 ` Avi Kivity
2011-10-05 15:44 ` Avi Kivity
2011-10-05 16:31 ` Jan Kiszka
2011-10-05 16:37 ` Avi Kivity [this message]
2011-10-05 16:49 ` Jan Kiszka
2011-10-05 17:12 ` Avi Kivity
2011-10-05 18:02 ` Jan Kiszka
2011-10-06 14:27 ` Avi Kivity
2011-10-06 15:08 ` Jan Kiszka
2011-10-05 17:02 ` Luiz Capitulino
2011-10-05 17:23 ` Avi Kivity
2011-10-05 17:39 ` Luiz Capitulino
2011-10-05 18:02 ` Avi Kivity
2011-10-05 18:49 ` Luiz Capitulino
2011-10-05 18:50 ` Luiz Capitulino
2011-10-06 11:14 ` Paolo Bonzini
2011-10-10 18:49 ` 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=4E8C87DF.5080201@redhat.com \
--to=avi@redhat.com \
--cc=jan.kiszka@web.de \
--cc=lcapitulino@redhat.com \
--cc=pbonzini@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.