All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com>
To: qemu-devel@nongnu.org, andrey.gruzdev@virtuozzo.com,
	huangy81@chinatelecom.cn
Subject: [PULL 3/6] migration: Inhibit virtio-balloon for the duration of background snapshot
Date: Wed,  7 Apr 2021 11:20:18 +0100	[thread overview]
Message-ID: <20210407102021.95225-4-dgilbert@redhat.com> (raw)
In-Reply-To: <20210407102021.95225-1-dgilbert@redhat.com>

From: Andrey Gruzdev <andrey.gruzdev@virtuozzo.com>

The same thing as for incoming postcopy - we cannot deal with concurrent
RAM discards when using background snapshot feature in outgoing migration.

Fixes: 8518278a6af589ccc401f06e35f171b1e6fae800 (migration: implementation
  of background snapshot thread)
Signed-off-by: Andrey Gruzdev <andrey.gruzdev@virtuozzo.com>
Reported-by: David Hildenbrand <david@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Message-Id: <20210401092226.102804-3-andrey.gruzdev@virtuozzo.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
 hw/virtio/virtio-balloon.c | 8 ++++++--
 include/migration/misc.h   | 2 ++
 migration/migration.c      | 8 ++++++++
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c
index e770955176..d120bf8f43 100644
--- a/hw/virtio/virtio-balloon.c
+++ b/hw/virtio/virtio-balloon.c
@@ -66,8 +66,12 @@ static bool virtio_balloon_pbp_matches(PartiallyBalloonedPage *pbp,
 
 static bool virtio_balloon_inhibited(void)
 {
-    /* Postcopy cannot deal with concurrent discards, so it's special. */
-    return ram_block_discard_is_disabled() || migration_in_incoming_postcopy();
+    /*
+     * Postcopy cannot deal with concurrent discards,
+     * so it's special, as well as background snapshots.
+     */
+    return ram_block_discard_is_disabled() || migration_in_incoming_postcopy() ||
+            migration_in_bg_snapshot();
 }
 
 static void balloon_inflate_page(VirtIOBalloon *balloon,
diff --git a/include/migration/misc.h b/include/migration/misc.h
index bccc1b6b44..738675ef52 100644
--- a/include/migration/misc.h
+++ b/include/migration/misc.h
@@ -70,6 +70,8 @@ bool migration_in_postcopy_after_devices(MigrationState *);
 void migration_global_dump(Monitor *mon);
 /* True if incomming migration entered POSTCOPY_INCOMING_DISCARD */
 bool migration_in_incoming_postcopy(void);
+/* True if background snapshot is active */
+bool migration_in_bg_snapshot(void);
 
 /* migration/block-dirty-bitmap.c */
 void dirty_bitmap_mig_init(void);
diff --git a/migration/migration.c b/migration/migration.c
index 00e13f9d58..be4729e7c8 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1976,6 +1976,14 @@ bool migration_in_incoming_postcopy(void)
     return ps >= POSTCOPY_INCOMING_DISCARD && ps < POSTCOPY_INCOMING_END;
 }
 
+bool migration_in_bg_snapshot(void)
+{
+    MigrationState *s = migrate_get_current();
+
+    return migrate_background_snapshot() &&
+            migration_is_setup_or_active(s->state);
+}
+
 bool migration_is_idle(void)
 {
     MigrationState *s = current_migration;
-- 
2.31.1



  parent reply	other threads:[~2021-04-07 10:24 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-07 10:20 [PULL 0/6] migration + virtiofsd queue Dr. David Alan Gilbert (git)
2021-04-07 10:20 ` [PULL 1/6] virtiofsd: Fix security.capability comparison Dr. David Alan Gilbert (git)
2021-04-07 10:20 ` [PULL 2/6] migration: Fix missing qemu_fflush() on buffer file in bg_migration_thread Dr. David Alan Gilbert (git)
2021-04-07 10:20 ` Dr. David Alan Gilbert (git) [this message]
2021-04-07 10:20 ` [PULL 4/6] migration: Pre-fault memory before starting background snasphot Dr. David Alan Gilbert (git)
2021-04-07 10:20 ` [PULL 5/6] migration: Rename 'bs' to 'block' in background snapshot code Dr. David Alan Gilbert (git)
2021-04-07 10:20 ` [PULL 6/6] tests/migration: fix parameter of auto-converge migration Dr. David Alan Gilbert (git)
2021-04-07 13:25 ` [PULL 0/6] migration + virtiofsd queue Peter Maydell
2021-04-07 16:50   ` Dr. David Alan Gilbert
2021-04-08  9:16     ` Andrey Gruzdev
2021-04-08 10:50       ` Dr. David Alan Gilbert
2021-04-08 12:27         ` Andrey Gruzdev
2021-04-07 17:54 [PULL 0/6] V2 " Dr. David Alan Gilbert (git)
2021-04-07 17:54 ` [PULL 3/6] migration: Inhibit virtio-balloon for the duration of background snapshot Dr. David Alan Gilbert (git)

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=20210407102021.95225-4-dgilbert@redhat.com \
    --to=dgilbert@redhat.com \
    --cc=andrey.gruzdev@virtuozzo.com \
    --cc=huangy81@chinatelecom.cn \
    --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.