From: Peter Xu <peterx@redhat.com>
To: Andrey Gruzdev <andrey.gruzdev@virtuozzo.com>
Cc: Juan Quintela <quintela@redhat.com>,
Markus Armbruster <armbru@redhat.com>,
David Hildenbrand <david@redhat.com>,
qemu-devel@nongnu.org,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>, Den Lunev <den@openvz.org>
Subject: Re: [PATCH v1 1/3] migration: Fix missing qemu_fflush() on buffer file in bg_migration_thread
Date: Tue, 23 Mar 2021 10:54:57 -0400 [thread overview]
Message-ID: <20210323145457.GC6486@xz-x1> (raw)
In-Reply-To: <2fb49f83-e31c-8c93-50b7-833026b06518@virtuozzo.com>
On Tue, Mar 23, 2021 at 10:51:57AM +0300, Andrey Gruzdev wrote:
> On 22.03.2021 23:17, Peter Xu wrote:
> > On Fri, Mar 19, 2021 at 05:52:47PM +0300, Andrey Gruzdev wrote:
> > > Added missing qemu_fflush() on buffer file holding precopy device state.
> > > Increased initial QIOChannelBuffer allocation to 512KB to avoid reallocs.
> > > Typical configurations often require >200KB for device state and VMDESC.
> > >
> > > Signed-off-by: Andrey Gruzdev <andrey.gruzdev@virtuozzo.com>
> > > ---
> > > migration/migration.c | 4 +++-
> > > 1 file changed, 3 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/migration/migration.c b/migration/migration.c
> > > index ca8b97baa5..32b48fe9f5 100644
> > > --- a/migration/migration.c
> > > +++ b/migration/migration.c
> > > @@ -3812,7 +3812,7 @@ static void *bg_migration_thread(void *opaque)
> > > * with vCPUs running and, finally, write stashed non-RAM part of
> > > * the vmstate from the buffer to the migration stream.
> > > */
> > > - s->bioc = qio_channel_buffer_new(128 * 1024);
> > > + s->bioc = qio_channel_buffer_new(512 * 1024);
> > > qio_channel_set_name(QIO_CHANNEL(s->bioc), "vmstate-buffer");
> > > fb = qemu_fopen_channel_output(QIO_CHANNEL(s->bioc));
> > > object_unref(OBJECT(s->bioc));
> > > @@ -3866,6 +3866,8 @@ static void *bg_migration_thread(void *opaque)
> > > if (qemu_savevm_state_complete_precopy_non_iterable(fb, false, false)) {
> > > goto fail;
> > > }
> > > + qemu_fflush(fb);
> > What will happen if the vmstates are bigger than 512KB? Would the extra data
> > be dropped?
>
> No, the buffer shall be reallocated and the original content shall be kept.
Oh right..
Would you comment above qemu_fflush() about it (maybe also move it right before
the call to qemu_put_buffer)? Otherwise it indeed looks more like an
optimization rather than a bugfix.
For the long term I think we'd better have a helper:
qemu_put_qio_channel_buffer(QEMUFile *file, QIOChannelBuffer *bioc)
So as to hide this flush operation, which is tricky. We'll have two users so
far:
bg_migration_completion
colo_do_checkpoint_transaction
IMHO it'll be nicer if you'd do it in this patch altogether!
Thanks,
--
Peter Xu
next prev parent reply other threads:[~2021-03-23 14:57 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-19 14:52 [PATCH v1 0/3] migration: Fixes to the 'background-snapshot' code Andrey Gruzdev
2021-03-19 14:52 ` [PATCH v1 1/3] migration: Fix missing qemu_fflush() on buffer file in bg_migration_thread Andrey Gruzdev
2021-03-22 20:17 ` Peter Xu
2021-03-23 7:51 ` Andrey Gruzdev
2021-03-23 14:54 ` Peter Xu [this message]
2021-03-23 17:21 ` Andrey Gruzdev
2021-03-23 18:35 ` Peter Xu
2021-03-24 7:48 ` Andrey Gruzdev
2021-03-24 17:35 ` Dr. David Alan Gilbert
2021-03-24 18:50 ` Peter Xu
2021-03-19 14:52 ` [PATCH v1 2/3] migration: Inhibit virtio-balloon for the duration of background snapshot Andrey Gruzdev
2021-03-19 14:52 ` [PATCH v1 3/3] migration: Pre-fault memory before starting background snasphot Andrey Gruzdev
2021-03-23 22:21 ` [PATCH v1 0/3] migration: Fixes to the 'background-snapshot' code Peter Xu
2021-03-24 8:09 ` Andrey Gruzdev
2021-03-24 15:41 ` Peter Xu
2021-03-25 9:51 ` Andrey Gruzdev
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=20210323145457.GC6486@xz-x1 \
--to=peterx@redhat.com \
--cc=andrey.gruzdev@virtuozzo.com \
--cc=armbru@redhat.com \
--cc=david@redhat.com \
--cc=den@openvz.org \
--cc=dgilbert@redhat.com \
--cc=pbonzini@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.