From: Peter Xu <peterx@redhat.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: qemu-devel@nongnu.org, Juan Quintela <quintela@redhat.com>
Subject: Re: [Qemu-devel] [PATCH for-3.0 2/9] migration: loosen recovery check when load vm
Date: Thu, 5 Jul 2018 17:31:36 +0800 [thread overview]
Message-ID: <20180705093136.GF1389@xz-mi> (raw)
In-Reply-To: <20180705091546.GC2538@work-vm>
On Thu, Jul 05, 2018 at 10:15:47AM +0100, Dr. David Alan Gilbert wrote:
> * Peter Xu (peterx@redhat.com) wrote:
> > We were checking against -EIO, assuming that it will cover all IO
> > failures. But actually it is not. One example is that in
> > qemu_loadvm_section_start_full() we can have tons of places that will
> > return -EINVAL even if the error is caused by IO failures on the
> > network.
>
> I suspect we should fix those; but OK; I think the only cases
> in there that could hit that are the get_counted_string and the
> check_section_footer; they could both be fixed to return an errno
> like the other cases.
>
> > Let's loosen the recovery check logic here to cover all the error cases
> > happened by removing the explicit check against -EIO. After all we
> > won't lose anything here if any other failure happened.
> >
> > Signed-off-by: Peter Xu <peterx@redhat.com>
> > ---
> > migration/savevm.c | 16 ++++++----------
> > 1 file changed, 6 insertions(+), 10 deletions(-)
> >
> > diff --git a/migration/savevm.c b/migration/savevm.c
> > index 851d74e8b6..efcc795071 100644
> > --- a/migration/savevm.c
> > +++ b/migration/savevm.c
> > @@ -2276,18 +2276,14 @@ out:
> > qemu_file_set_error(f, ret);
> >
> > /*
> > - * Detect whether it is:
> > - *
> > - * 1. postcopy running (after receiving all device data, which
> > - * must be in POSTCOPY_INCOMING_RUNNING state. Note that
> > - * POSTCOPY_INCOMING_LISTENING is still not enough, it's
> > - * still receiving device states).
> > - * 2. network failure (-EIO)
> > - *
> > - * If so, we try to wait for a recovery.
> > + * If we are during an active postcopy, then we pause instead
> > + * of bail out to at least keep the VM's dirty data. Note
> > + * that POSTCOPY_INCOMING_LISTENING stage is still not enough,
> > + * during which we're still receiving device states and we
> > + * still haven't yet started the VM on destination.
> > */
> > if (postcopy_state_get() == POSTCOPY_INCOMING_RUNNING &&
> > - ret == -EIO && postcopy_pause_incoming(mis)) {
> > + postcopy_pause_incoming(mis)) {
>
> Hmm, OK; It does make me a bit nervous we might trigger this
> too often, but I see the other cases where we're missing stuff
> we should trigger it. We might find we need to go the other way
> and blacklist some errors.
AFAIU the difference will be only that we pause instead of quit QEMU.
IMHO the whitelist/blacklist will be more meaningful when there is a
third choice for us (besides "quit" and "go into pause state").
>
>
> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Thanks!
--
Peter Xu
next prev parent reply other threads:[~2018-07-05 9:31 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-05 3:17 [Qemu-devel] [PATCH for-3.0 0/9] migration: postcopy recovery unit test, bug fixes Peter Xu
2018-07-05 3:17 ` [Qemu-devel] [PATCH for-3.0 1/9] migration: simplify check to use qemu file buffer Peter Xu
2018-07-05 9:01 ` Dr. David Alan Gilbert
2018-07-05 9:11 ` Peter Xu
2018-07-05 12:59 ` Juan Quintela
2018-07-05 3:17 ` [Qemu-devel] [PATCH for-3.0 2/9] migration: loosen recovery check when load vm Peter Xu
2018-07-05 9:15 ` Dr. David Alan Gilbert
2018-07-05 9:31 ` Peter Xu [this message]
2018-07-05 13:01 ` Juan Quintela
2018-07-05 3:17 ` [Qemu-devel] [PATCH for-3.0 3/9] migration: fix incorrect bitmap size calculation Peter Xu
2018-07-05 9:38 ` Dr. David Alan Gilbert
2018-07-05 13:01 ` Juan Quintela
2018-07-05 3:17 ` [Qemu-devel] [PATCH for-3.0 4/9] tests: introduce migrate_postcopy_* helpers Peter Xu
2018-07-05 9:31 ` Balamuruhan S
2018-07-06 2:19 ` Peter Xu
2018-07-06 6:17 ` Balamuruhan S
2018-07-05 9:59 ` Dr. David Alan Gilbert
2018-07-05 13:03 ` Juan Quintela
2018-07-05 3:17 ` [Qemu-devel] [PATCH for-3.0 5/9] tests: allow migrate() to take extra flags Peter Xu
2018-07-05 10:18 ` Dr. David Alan Gilbert
2018-07-05 13:05 ` Juan Quintela
2018-07-06 10:36 ` Balamuruhan S
2018-07-05 3:17 ` [Qemu-devel] [PATCH for-3.0 6/9] tests: introduce migrate_query*() helpers Peter Xu
2018-07-05 10:23 ` Dr. David Alan Gilbert
2018-07-05 13:07 ` Juan Quintela
2018-07-05 10:59 ` Balamuruhan S
2018-07-05 13:06 ` Juan Quintela
2018-07-05 3:17 ` [Qemu-devel] [PATCH for-3.0 7/9] tests: introduce wait_for_migration_status() Peter Xu
2018-07-05 10:27 ` Dr. David Alan Gilbert
2018-07-05 13:07 ` Juan Quintela
2018-07-06 10:41 ` Balamuruhan S
2018-07-05 3:17 ` [Qemu-devel] [PATCH for-3.0 8/9] tests: add postcopy recovery test Peter Xu
2018-07-05 10:30 ` Dr. David Alan Gilbert
2018-07-05 13:08 ` Juan Quintela
2018-07-05 3:17 ` [Qemu-devel] [PATCH for-3.0 9/9] tests: hide stderr for " Peter Xu
2018-07-05 10:36 ` Dr. David Alan Gilbert
2018-07-05 13:09 ` Juan Quintela
2018-07-06 9:17 ` [Qemu-devel] [PATCH for-3.0 0/9] migration: postcopy recovery unit test, bug fixes Dr. David Alan Gilbert
2018-07-06 10:56 ` Dr. David Alan Gilbert
2018-07-06 11:45 ` Balamuruhan S
2018-07-06 12:46 ` Balamuruhan S
2018-07-12 8:50 ` Dr. David Alan Gilbert
2018-07-10 3:27 ` Peter Xu
2018-07-10 8:53 ` Dr. David Alan Gilbert
2018-07-10 1:56 ` Balamuruhan S
2018-07-10 3:07 ` Peter Xu
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=20180705093136.GF1389@xz-mi \
--to=peterx@redhat.com \
--cc=dgilbert@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/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.