From: David Hildenbrand <david@redhat.com>
To: qemu-devel@nongnu.org
Cc: Eduardo Habkost <ehabkost@redhat.com>,
kvm@vger.kernel.org, "Michael S . Tsirkin" <mst@redhat.com>,
David Hildenbrand <david@redhat.com>,
"Dr . David Alan Gilbert" <dgilbert@redhat.com>,
Juan Quintela <quintela@redhat.com>,
qemu-s390x@nongnu.org, Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: [PATCH v1 07/17] migration/rdma: Use ram_block_discard_set_broken()
Date: Wed, 6 May 2020 11:49:38 +0200 [thread overview]
Message-ID: <20200506094948.76388-8-david@redhat.com> (raw)
In-Reply-To: <20200506094948.76388-1-david@redhat.com>
RDMA will pin all guest memory (as documented in docs/rdma.txt). We want
to mark RAM block discards to be broken - however, to keep it simple
use ram_block_discard_is_required() instead of inhibiting.
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Juan Quintela <quintela@redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
migration/rdma.c | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/migration/rdma.c b/migration/rdma.c
index f61587891b..029adbb950 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -29,6 +29,7 @@
#include "qemu/sockets.h"
#include "qemu/bitmap.h"
#include "qemu/coroutine.h"
+#include "exec/memory.h"
#include <sys/socket.h>
#include <netdb.h>
#include <arpa/inet.h>
@@ -4017,8 +4018,14 @@ void rdma_start_incoming_migration(const char *host_port, Error **errp)
Error *local_err = NULL;
trace_rdma_start_incoming_migration();
- rdma = qemu_rdma_data_init(host_port, &local_err);
+ /* Avoid ram_block_discard_set_broken(), cannot change during migration. */
+ if (ram_block_discard_is_required()) {
+ error_setg(errp, "RDMA: cannot set discarding of RAM broken");
+ return;
+ }
+
+ rdma = qemu_rdma_data_init(host_port, &local_err);
if (rdma == NULL) {
goto err;
}
@@ -4064,10 +4071,17 @@ void rdma_start_outgoing_migration(void *opaque,
const char *host_port, Error **errp)
{
MigrationState *s = opaque;
- RDMAContext *rdma = qemu_rdma_data_init(host_port, errp);
RDMAContext *rdma_return_path = NULL;
+ RDMAContext *rdma;
int ret = 0;
+ /* Avoid ram_block_discard_set_broken(), cannot change during migration. */
+ if (ram_block_discard_is_required()) {
+ error_setg(errp, "RDMA: cannot set discarding of RAM broken");
+ return;
+ }
+
+ rdma = qemu_rdma_data_init(host_port, errp);
if (rdma == NULL) {
goto err;
}
--
2.25.3
next prev parent reply other threads:[~2020-05-06 9:55 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-06 9:49 [PATCH v1 00/17] virtio-mem: Paravirtualized memory hot(un)plug David Hildenbrand
2020-05-06 9:49 ` [PATCH v1 01/17] exec: Introduce ram_block_discard_set_(unreliable|required)() David Hildenbrand
2020-05-15 9:54 ` Dr. David Alan Gilbert
2020-05-15 14:40 ` David Hildenbrand
2020-05-15 14:54 ` David Hildenbrand
2020-05-15 16:15 ` Dr. David Alan Gilbert
2020-05-06 9:49 ` [PATCH v1 02/17] vfio: Convert to ram_block_discard_set_broken() David Hildenbrand
2020-05-15 12:01 ` David Hildenbrand
2020-05-06 9:49 ` [PATCH v1 03/17] accel/kvm: " David Hildenbrand
2020-05-15 11:57 ` Dr. David Alan Gilbert
2020-05-06 9:49 ` [PATCH v1 04/17] s390x/pv: " David Hildenbrand
2020-05-06 9:49 ` [PATCH v1 05/17] virtio-balloon: Rip out qemu_balloon_inhibit() David Hildenbrand
2020-05-15 12:09 ` Dr. David Alan Gilbert
2020-05-15 12:12 ` David Hildenbrand
2020-05-06 9:49 ` [PATCH v1 06/17] target/i386: sev: Use ram_block_discard_set_broken() David Hildenbrand
2020-05-15 15:51 ` Dr. David Alan Gilbert
2020-05-06 9:49 ` David Hildenbrand [this message]
2020-05-15 12:45 ` [PATCH v1 07/17] migration/rdma: " Dr. David Alan Gilbert
2020-05-15 14:09 ` David Hildenbrand
2020-05-15 17:51 ` Dr. David Alan Gilbert
2020-05-15 17:59 ` David Hildenbrand
2020-05-15 18:36 ` Dr. David Alan Gilbert
2020-05-18 13:52 ` David Hildenbrand
2020-05-06 9:49 ` [PATCH v1 08/17] migration/colo: " David Hildenbrand
2020-05-15 13:58 ` Dr. David Alan Gilbert
2020-05-15 14:05 ` David Hildenbrand
2020-05-06 9:49 ` [PATCH v1 09/17] linux-headers: update to contain virtio-mem David Hildenbrand
2020-05-06 9:49 ` [PATCH v1 10/17] virtio-mem: Paravirtualized memory hot(un)plug David Hildenbrand
2020-05-06 16:12 ` Eric Blake
2020-05-06 16:14 ` David Hildenbrand
2020-05-15 15:37 ` Dr. David Alan Gilbert
2020-05-15 16:48 ` David Hildenbrand
2020-05-18 14:23 ` David Hildenbrand
2020-05-06 9:49 ` [PATCH v1 11/17] virtio-pci: Proxy for virtio-mem David Hildenbrand
2020-05-06 18:57 ` Pankaj Gupta
2020-05-18 13:34 ` David Hildenbrand
2020-05-06 9:49 ` [PATCH v1 12/17] MAINTAINERS: Add myself as virtio-mem maintainer David Hildenbrand
2020-05-15 15:55 ` Dr. David Alan Gilbert
2020-05-06 9:49 ` [PATCH v1 13/17] hmp: Handle virtio-mem when printing memory device info David Hildenbrand
2020-05-06 19:03 ` Pankaj Gupta
2020-05-06 9:49 ` [PATCH v1 14/17] numa: Handle virtio-mem in NUMA stats David Hildenbrand
2020-05-06 9:49 ` [PATCH v1 15/17] pc: Support for virtio-mem-pci David Hildenbrand
2020-05-06 12:19 ` Pankaj Gupta
2020-05-06 9:49 ` [PATCH v1 16/17] virtio-mem: Allow notifiers for size changes David Hildenbrand
2020-05-15 16:46 ` Dr. David Alan Gilbert
2020-05-06 9:49 ` [PATCH v1 17/17] virtio-pci: Send qapi events when the virtio-mem " David Hildenbrand
2020-05-15 15:18 ` David Hildenbrand
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=20200506094948.76388-8-david@redhat.com \
--to=david@redhat.com \
--cc=dgilbert@redhat.com \
--cc=ehabkost@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=quintela@redhat.com \
--cc=rth@twiddle.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).