* [Qemu-devel] [PATCH v2] rdma: rename 'x-rdma' => 'rdma'
@ 2013-10-26 20:03 mrhines
2013-11-05 22:19 ` Eric Blake
0 siblings, 1 reply; 3+ messages in thread
From: mrhines @ 2013-10-26 20:03 UTC (permalink / raw)
To: qemu-devel
Cc: aliguori, quintela, owasserm, onom, abali, mrhines, gokul,
pbonzini, chegu_vinod
From: "Michael R. Hines" <mrhines@us.ibm.com>
As far as we can tell, all known bugs have been fixed:
1. Parallel RDMA migrations are working
2. IPv6 migration is working
3. Libvirt patches are ready
4. virt-test is working
Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
---
docs/rdma.txt | 24 ++++++++++--------------
migration-rdma.c | 2 +-
migration.c | 6 +++---
qapi-schema.json | 4 ++--
4 files changed, 16 insertions(+), 20 deletions(-)
diff --git a/docs/rdma.txt b/docs/rdma.txt
index 8d1e003..c559f9a 100644
--- a/docs/rdma.txt
+++ b/docs/rdma.txt
@@ -66,7 +66,7 @@ bulk-phase round of the migration and can be enabled for extremely
high-performance RDMA hardware using the following command:
QEMU Monitor Command:
-$ migrate_set_capability x-rdma-pin-all on # disabled by default
+$ migrate_set_capability rdma-pin-all on # disabled by default
Performing this action will cause all 8GB to be pinned, so if that's
not what you want, then please ignore this step altogether.
@@ -93,12 +93,12 @@ $ migrate_set_speed 40g # or whatever is the MAX of your RDMA device
Next, on the destination machine, add the following to the QEMU command line:
-qemu ..... -incoming x-rdma:host:port
+qemu ..... -incoming rdma:host:port
Finally, perform the actual migration on the source machine:
QEMU Monitor Command:
-$ migrate -d x-rdma:host:port
+$ migrate -d rdma:host:port
PERFORMANCE
===========
@@ -120,8 +120,8 @@ For example, in the same 8GB RAM example with all 8GB of memory in
active use and the VM itself is completely idle using the same 40 gbps
infiniband link:
-1. x-rdma-pin-all disabled total time: approximately 7.5 seconds @ 9.5 Gbps
-2. x-rdma-pin-all enabled total time: approximately 4 seconds @ 26 Gbps
+1. rdma-pin-all disabled total time: approximately 7.5 seconds @ 9.5 Gbps
+2. rdma-pin-all enabled total time: approximately 4 seconds @ 26 Gbps
These numbers would of course scale up to whatever size virtual machine
you have to migrate using RDMA.
@@ -407,18 +407,14 @@ socket is broken during a non-RDMA based migration.
TODO:
=====
-1. 'migrate x-rdma:host:port' and '-incoming x-rdma' options will be
- renamed to 'rdma' after the experimental phase of this work has
- completed upstream.
-2. Currently, 'ulimit -l' mlock() limits as well as cgroups swap limits
+1. Currently, 'ulimit -l' mlock() limits as well as cgroups swap limits
are not compatible with infinband memory pinning and will result in
an aborted migration (but with the source VM left unaffected).
-3. Use of the recent /proc/<pid>/pagemap would likely speed up
+2. Use of the recent /proc/<pid>/pagemap would likely speed up
the use of KSM and ballooning while using RDMA.
-4. Also, some form of balloon-device usage tracking would also
+3. Also, some form of balloon-device usage tracking would also
help alleviate some issues.
-5. Move UNREGISTER requests to a separate thread.
-6. Use LRU to provide more fine-grained direction of UNREGISTER
+4. Use LRU to provide more fine-grained direction of UNREGISTER
requests for unpinning memory in an overcommitted environment.
-7. Expose UNREGISTER support to the user by way of workload-specific
+5. Expose UNREGISTER support to the user by way of workload-specific
hints about application behavior.
diff --git a/migration-rdma.c b/migration-rdma.c
index f94f3b4..eeb4302 100644
--- a/migration-rdma.c
+++ b/migration-rdma.c
@@ -3412,7 +3412,7 @@ void rdma_start_outgoing_migration(void *opaque,
}
ret = qemu_rdma_source_init(rdma, &local_err,
- s->enabled_capabilities[MIGRATION_CAPABILITY_X_RDMA_PIN_ALL]);
+ s->enabled_capabilities[MIGRATION_CAPABILITY_RDMA_PIN_ALL]);
if (ret) {
goto err;
diff --git a/migration.c b/migration.c
index b4f8462..d9c7a62 100644
--- a/migration.c
+++ b/migration.c
@@ -81,7 +81,7 @@ void qemu_start_incoming_migration(const char *uri, Error **errp)
if (strstart(uri, "tcp:", &p))
tcp_start_incoming_migration(p, errp);
#ifdef CONFIG_RDMA
- else if (strstart(uri, "x-rdma:", &p))
+ else if (strstart(uri, "rdma:", &p))
rdma_start_incoming_migration(p, errp);
#endif
#if !defined(WIN32)
@@ -423,7 +423,7 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
if (strstart(uri, "tcp:", &p)) {
tcp_start_outgoing_migration(s, p, &local_err);
#ifdef CONFIG_RDMA
- } else if (strstart(uri, "x-rdma:", &p)) {
+ } else if (strstart(uri, "rdma:", &p)) {
rdma_start_outgoing_migration(s, p, &local_err);
#endif
#if !defined(WIN32)
@@ -501,7 +501,7 @@ bool migrate_rdma_pin_all(void)
s = migrate_get_current();
- return s->enabled_capabilities[MIGRATION_CAPABILITY_X_RDMA_PIN_ALL];
+ return s->enabled_capabilities[MIGRATION_CAPABILITY_RDMA_PIN_ALL];
}
bool migrate_auto_converge(void)
diff --git a/qapi-schema.json b/qapi-schema.json
index 145eca8..4bae4b1 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -615,7 +615,7 @@
# This feature allows us to minimize migration traffic for certain work
# loads, by sending compressed difference of the pages
#
-# @x-rdma-pin-all: Controls whether or not the entire VM memory footprint is
+# @rdma-pin-all: Controls whether or not the entire VM memory footprint is
# mlock()'d on demand or all at once. Refer to docs/rdma.txt for usage.
# Disabled by default. Experimental: may (or may not) be renamed after
# further testing is complete. (since 1.6)
@@ -632,7 +632,7 @@
# Since: 1.2
##
{ 'enum': 'MigrationCapability',
- 'data': ['xbzrle', 'x-rdma-pin-all', 'auto-converge', 'zero-blocks'] }
+ 'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks'] }
##
# @MigrationCapabilityStatus
--
1.7.10.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH v2] rdma: rename 'x-rdma' => 'rdma'
2013-10-26 20:03 [Qemu-devel] [PATCH v2] rdma: rename 'x-rdma' => 'rdma' mrhines
@ 2013-11-05 22:19 ` Eric Blake
2013-11-06 18:54 ` Michael R. Hines
0 siblings, 1 reply; 3+ messages in thread
From: Eric Blake @ 2013-11-05 22:19 UTC (permalink / raw)
To: mrhines, qemu-devel
Cc: aliguori, quintela, owasserm, onom, abali, mrhines, gokul,
pbonzini, chegu_vinod
[-- Attachment #1: Type: text/plain, Size: 1433 bytes --]
On 10/26/2013 02:03 PM, mrhines@linux.vnet.ibm.com wrote:
> From: "Michael R. Hines" <mrhines@us.ibm.com>
>
> As far as we can tell, all known bugs have been fixed:
>
> 1. Parallel RDMA migrations are working
> 2. IPv6 migration is working
> 3. Libvirt patches are ready
> 4. virt-test is working
>
> Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
> ---
> docs/rdma.txt | 24 ++++++++++--------------
> migration-rdma.c | 2 +-
> migration.c | 6 +++---
> qapi-schema.json | 4 ++--
> 4 files changed, 16 insertions(+), 20 deletions(-)
> +++ b/qapi-schema.json
> @@ -615,7 +615,7 @@
> # This feature allows us to minimize migration traffic for certain work
> # loads, by sending compressed difference of the pages
> #
> -# @x-rdma-pin-all: Controls whether or not the entire VM memory footprint is
> +# @rdma-pin-all: Controls whether or not the entire VM memory footprint is
> # mlock()'d on demand or all at once. Refer to docs/rdma.txt for usage.
> # Disabled by default. Experimental: may (or may not) be renamed after
> # further testing is complete. (since 1.6)
This text is still out-of-date. s/1.6/1.7/ (if we are still trying to
get it in 1.7), as well as removing mention of it being experimental.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 621 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH v2] rdma: rename 'x-rdma' => 'rdma'
2013-11-05 22:19 ` Eric Blake
@ 2013-11-06 18:54 ` Michael R. Hines
0 siblings, 0 replies; 3+ messages in thread
From: Michael R. Hines @ 2013-11-06 18:54 UTC (permalink / raw)
To: Eric Blake
Cc: quintela, qemu-devel, owasserm, onom, abali, mrhines, gokul,
pbonzini, chegu_vinod
On 11/05/2013 05:19 PM, Eric Blake wrote:
> On 10/26/2013 02:03 PM, mrhines@linux.vnet.ibm.com wrote:
>> From: "Michael R. Hines" <mrhines@us.ibm.com>
>>
>> As far as we can tell, all known bugs have been fixed:
>>
>> 1. Parallel RDMA migrations are working
>> 2. IPv6 migration is working
>> 3. Libvirt patches are ready
>> 4. virt-test is working
>>
>> Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
>> ---
>> docs/rdma.txt | 24 ++++++++++--------------
>> migration-rdma.c | 2 +-
>> migration.c | 6 +++---
>> qapi-schema.json | 4 ++--
>> 4 files changed, 16 insertions(+), 20 deletions(-)
>> +++ b/qapi-schema.json
>> @@ -615,7 +615,7 @@
>> # This feature allows us to minimize migration traffic for certain work
>> # loads, by sending compressed difference of the pages
>> #
>> -# @x-rdma-pin-all: Controls whether or not the entire VM memory footprint is
>> +# @rdma-pin-all: Controls whether or not the entire VM memory footprint is
>> # mlock()'d on demand or all at once. Refer to docs/rdma.txt for usage.
>> # Disabled by default. Experimental: may (or may not) be renamed after
>> # further testing is complete. (since 1.6)
> This text is still out-of-date. s/1.6/1.7/ (if we are still trying to
> get it in 1.7), as well as removing mention of it being experimental.
>
Thanks, Erik. Very silly of me to miss that.
- Michael
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-11-06 18:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-26 20:03 [Qemu-devel] [PATCH v2] rdma: rename 'x-rdma' => 'rdma' mrhines
2013-11-05 22:19 ` Eric Blake
2013-11-06 18:54 ` Michael R. Hines
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).