From: "Michael R. Hines"
Signed-off-by: Michael R. Hines
---
hmp-commands.hx | 56 ++
hmp.c| 23 ++
hmp.h|4
qapi-schema.json | 56 +++
From: "Michael R. Hines"
Signed-off-by: Michael R. Hines
---
Makefile.target |5 +-
include/qemu/rdma.h | 249 ++
qemu-rdma.c | 1357 +++
3 files changed, 1609 insertions(+), 2 deletions(-)
create mode 100644 include/qem
From: "Michael R. Hines"
Signed-off-by: Michael R. Hines
---
exec.c | 27 +++
vl.c | 10 ++
2 files changed, 37 insertions(+)
diff --git a/exec.c b/exec.c
index b85508b..4fc56d1 100644
--- a/exec.c
+++ b/exec.c
@@ -25,6 +25,8 @@
#endif
#include "qemu-
From: "Michael R. Hines"
Signed-off-by: Michael R. Hines
---
migration-tcp.c | 53 +
migration.c | 41 +
2 files changed, 94 insertions(+)
diff --git a/migration-tcp.c b/migration-tcp.c
index e
From: "Michael R. Hines"
Signed-off-by: Michael R. Hines
---
arch_init.c | 116 +++--
include/migration/qemu-file.h |1 +
savevm.c | 90 +++-
3 files changed, 189 insertions(+), 18 del
From: "Michael R. Hines"
Signed-off-by: Michael R. Hines
---
include/qemu/sockets.h |1 +
util/qemu-sockets.c|2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h
index ae5c21c..5066fca 100644
--- a/include/qemu/sockets
From: "Michael R. Hines"
Changes since v3:
- Compile-tested with and without --enable-rdma is working.
- Updated docs/rdma.txt (included below)
- Merged with latest pull queue from Paolo
- Implemented qemu_ram_foreach_block()
mrhines@mrhinesdev:~/qemu$ git diff --stat master
Mak
From: "Michael R. Hines"
Signed-off-by: Michael R. Hines
---
migration-rdma.c | 205 ++
1 file changed, 205 insertions(+)
create mode 100644 migration-rdma.c
diff --git a/migration-rdma.c b/migration-rdma.c
new file mode 100644
index 0
From: "Michael R. Hines"
Make both rdma.c and migration-rdma.c conditionally built.
Signed-off-by: Michael R. Hines
---
Makefile.objs |1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile.objs b/Makefile.objs
index f99841c..d12208b 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -5
From: "Michael R. Hines"
Signed-off-by: Michael R. Hines
---
configure | 25 +
1 file changed, 25 insertions(+)
diff --git a/configure b/configure
index 46a7594..bdc6b13 100755
--- a/configure
+++ b/configure
@@ -170,6 +170,7 @@ xfs=""
vhost_net="no"
kvm="no"
+rd
From: "Michael R. Hines"
Since we're not using TCP anymore, we skip these calls.
Also print a little extra text while debugging, like "gbps"
which is helpful to know how the link is being utilized.
Signed-off-by: Michael R. Hines
---
include/migration/migration.h |3 +++
migration.c
From: "Michael R. Hines"
Signed-off-by: Michael R. Hines
---
arch_init.c | 28 +++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/arch_init.c b/arch_init.c
index 98e2bc6..b013cc8 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -45,6 +45,7 @@
#include "e
From: "Michael R. Hines"
This compiles with and without --enable-rdma.
Signed-off-by: Michael R. Hines
---
include/migration/qemu-file.h | 10 +++
savevm.c | 172 ++---
2 files changed, 172 insertions(+), 10 deletions(-)
diff --git a
(included below)
+- Merged with latest pull queue from Paolo
+- Implemented qemu_ram_foreach_block()
+
+mrhines@mrhinesdev:~/qemu$ git diff --stat master
+Makefile.objs |1 +
+arch_init.c | 28 +-
+configure | 25 ++
+docs/rdma.txt
From: "Michael R. Hines"
This introduces:
1. qemu_ram_foreach_block
2. qemu_ram_count_blocks
Both used in communicating the RAMBlocks
to each side for later memory registration.
Signed-off-by: Michael R. Hines
---
exec.c| 21 +
include/exec/cpu-common
From: "Michael R. Hines"
Signed-off-by: Michael R. Hines
---
include/migration/rdma.h | 244
rdma.c | 1532 ++
2 files changed, 1776 insertions(+)
create mode 100644 include/migration/rdma.h
create mode 100644 rdma.c
di
From: "Michael R. Hines"
RDMA is enabled by default per the usual ./configure testing.
Only one new file is added in the patch now (migration-rdma.c),
which is conditionalized by CONFIG_RDMA.
Signed-off-by: Michael R. Hines
---
Makefile.objs |1 +
configure | 29
From: "Michael R. Hines"
Several changes since v5:
- Only one new file in the patch now! (migration-rdma.c)
- Smaller number of files touched, fewer prototypes
- Merged files as requested (rdma.c and and migration-rdma.c)
- Eliminated header as requested (rdma.h)
- Created new function pointers
From: "Michael R. Hines"
RDMA requires hooks before and after each iteration round
in order to coordinate the new dynamic page registration support.
This is done now by introducing a new set of function pointers
which are only used by arch_init.c.
Pointers include:
1. save_ram_page (which can be
From: "Michael R. Hines"
All that is left for this part of the patch is:
1. use the new (optionally defined) save_ram_page function pointer
to decide what to do with the page if RDMA is enable or not
and return ENOTSUP as agreed.
2. invoke hooks from QEMURamControlOps function pointers to
From: "Michael R. Hines"
This is used during RDMA initialization in order to transmit
a description of all the RAM blocks to the peer for later
dynamic chunk registration purposes.
Signed-off-by: Michael R. Hines
---
exec.c|9 +
include/exec/cpu-common.h |5
From: "Michael R. Hines"
Verbose documentation is included, for both the protocol and
interface to QEMU.
Additionally, there is a Features/RDMALiveMigration wiki as
well as a patch on github.com (hinesmr/qemu.git)
Signed-off-by: Michael R. Hines
---
docs/rdma.txt | 300 ++
From: "Michael R. Hines"
RDMA performs very slowly with zero-page checking.
Without the ability to disable it, RDMA throughput and
latency promises and high performance links cannot be
fully realized.
On the other hand, dynamic page registration support is also
included in the RDMA protocol. Thi
From: "Michael R. Hines"
This is used during RDMA initialization in order to transmit
a description of all the RAM blocks to the peer for later
dynamic chunk registration purposes.
Signed-off-by: Michael R. Hines
---
exec.c|9 +
include/exec/cpu-common.h |5
From: "Michael R. Hines"
These are just the protytpes of the accessor methods used by
arch_init.c which invoke functions inside savevm.c to call
out to the hooks that may (or may not) have been overridden
inside of QEMUFileOps.
The actual definitions come later in the patch series.
Signed-off-b
From: "Michael R. Hines"
These are just the prototypes for optional new hooks that RDMA
takes advantage of to perform dynamic page registration.
An optional hook is also introduce for a custom function
to be able to override the default save_page function.
Signed-off-by: Michael R. Hines
---
From: "Michael R. Hines"
Changes since v6:
(Thanks, Paolo - things look much cleaner now.)
- Try to get patch-ordering correct =)
- Much cleaner use of QEMUFileOps
- Much fewer header files changes
- Convert zero check capability to QMP command instead
- Updated documentation
Wiki: http://wiki
From: "Michael R. Hines"
These are the actual definitions of the accessor methods
which call out to QEMUFileOps hooks during the RAM iteration
faces. These hooks are accessed by arch_init.c,
which comes later in the patch series.
Signed-off-by: Michael R. Hines
---
savevm.c | 78
From: "Michael R. Hines"
Just enable it by default. User can now disable if they want to.
Signed-off-by: Michael R. Hines
---
migration.c |1 +
1 file changed, 1 insertion(+)
diff --git a/migration.c b/migration.c
index 404c19a..41cf5ba 100644
--- a/migration.c
+++ b/migration.c
@@ -69,6
From: "Michael R. Hines"
This parse the QMP string for the new 'rdma' protocol
and calls out to the appropriate funtions to initiate
the connection before the migration starts.
Signed-off-by: Michael R. Hines
---
migration.c |9 -
1 file changed, 8 insertions(+), 1 deletion(-)
dif
From: "Michael R. Hines"
This capability allows you to disable dynamic chunk registration
for better throughput on high-performance links.
It is enabled by default.
Signed-off-by: Michael R. Hines
---
migration.c |9 +
qapi-schema.json |2 +-
2 files changed, 10 insertion
From: "Michael R. Hines"
Full documentation on the rdma protocol: docs/rdma.txt
Signed-off-by: Michael R. Hines
---
docs/rdma.txt | 331 +
1 file changed, 331 insertions(+)
create mode 100644 docs/rdma.txt
diff --git a/docs/rdma.txt b/
From: "Michael R. Hines"
This allows the user to disable zero page checking during migration
Signed-off-by: Michael R. Hines
---
hmp-commands.hx | 14 ++
hmp.c|6 ++
hmp.h|1 +
migration.c | 12
qapi-schema.json | 13
From: "Michael R. Hines"
This takes advantages of the previous patches:
1. use the new QEMUFileOps hook 'save_page' and return
ENOTSUP if not supported.
2. call out to the right accessor methods to invoke
the iteration hooks defined in QEMUFileOps
Signed-off-by: Michael R. Hines
---
arch
From: "Michael R. Hines"
It's very helpful when debugging to print out migration throughput
after each iteration round to compare the different migration
technologies.
Signed-off-by: Michael R. Hines
---
migration.c |8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a
From: "Michael R. Hines"
Only one new file is added in the patch now (migration-rdma.c),
which is conditionalized by CONFIG_RDMA.
Signed-off-by: Michael R. Hines
---
Makefile.objs |1 +
configure | 29 +
2 files changed, 30 insertions(+)
diff --git a/Make
From: "Michael R. Hines"
Changes since v7:
- Ran checkpatch.pl
- Finished additional cleanup requests
- Deleted zero scanning option
- Cleaned up docs/rdma.txt
Wiki: http://wiki.qemu.org/Features/RDMALiveMigration
Github: g...@github.com:hinesmr/qemu.git
Signed-off-by: Michael R. Hines
From: "Michael R. Hines"
This is used during RDMA initialization in order to
transmit a description of all the RAM blocks to the
peer for later dynamic chunk registration purposes.
Signed-off-by: Michael R. Hines
---
exec.c|9 +
include/exec/cpu-common.h |
From: "Michael R. Hines"
This takes advantages of the previous patches:
1. use the new QEMUFileOps hook 'save_page'
2. call out to the right accessor methods to invoke
the iteration hooks defined in QEMUFileOps
Signed-off-by: Michael R. Hines
---
arch_init.c | 35
From: "Michael R. Hines"
These are just the prototypes for optional new hooks
that RDMA takes advantage of to perform dynamic page
registration.
An optional hook is also introduced for a custom function
to be able to override the default save_page function.
Also included are just the protytp
From: "Michael R. Hines"
It's very helpful when debugging to print out migration throughput
after each iteration round to compare the different migration
technologies.
Signed-off-by: Michael R. Hines
---
migration.c |8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a
From: "Michael R. Hines"
This capability allows you to disable dynamic chunk registration
for better throughput on high-performance links.
It is enabled by default.
Signed-off-by: Michael R. Hines
---
migration.c | 11 ++-
qapi-schema.json |2 +-
2 files changed, 11 inserti
From: "Michael R. Hines"
These are the actual definitions of the accessor methods
which call out to QEMUFileOps hooks during the RAM
iteration faces. These hooks are accessed by
arch_init.c, which comes later in the patch series.
Signed-off-by: Michael R. Hines
---
savevm.c | 81 +++
From: "Michael R. Hines"
docs/rdma.txt contains full documentation,
wiki links, github url and contact information.
Signed-off-by: Michael R. Hines
---
docs/rdma.txt | 338 +
1 file changed, 338 insertions(+)
create mode 100644 docs/rdm
From: "Michael R. Hines"
Changes since v1:
- Finished additional cleanup requests
- Introduced COMPRESS command to zap zeros
Wiki: http://wiki.qemu.org/Features/RDMALiveMigration
Github: g...@github.com:hinesmr/qemu.git
Michael R. Hines (10):
rdma: introduce qemu_ram_foreach_block
rdma: ne
From: "Michael R. Hines"
This is used during RDMA initialization in order to
transmit a description of all the RAM blocks to the
peer for later dynamic chunk registration purposes.
Signed-off-by: Michael R. Hines
---
exec.c|9 +
include/exec/cpu-common.h |5
From: "Michael R. Hines"
This gives RDMA shared access to madvise() on the destination side
when an entire chunk is found to be zero.
Signed-off-by: Michael R. Hines
---
arch_init.c | 24
include/migration/migration.h |1 +
2 files changed, 17 i
From: "Michael R. Hines"
docs/rdma.txt contains full documentation,
wiki links, github url and contact information.
Signed-off-by: Michael R. Hines
---
docs/rdma.txt | 336 +
1 file changed, 336 insertions(+)
create mode 100644 docs/rdm
From: "Michael R. Hines"
These are the prototypes and implementation of new hooks that
RDMA takes advantage of to perform dynamic page registration.
An optional hook is also introduced for a custom function
to be able to override the default save_page function.
Also included are the prototypes
From: "Michael R. Hines"
This takes advantages of the previous patches:
1. use the new QEMUFileOps hook 'save_page'
2. call out to the right accessor methods to invoke
the iteration hooks defined in QEMUFileOps
Signed-off-by: Michael R. Hines
---
arch_init.c | 35 +++
From: "Michael R. Hines"
This capability allows you to disable dynamic chunk registration
for better throughput on high-performance links.
It is enabled by default.
Signed-off-by: Michael R. Hines
---
include/migration/migration.h |2 ++
migration.c | 11 ++-
q
From: "Michael R. Hines"
It's very helpful when debugging to print out migration throughput
after each iteration round to compare the different migration
technologies.
Signed-off-by: Michael R. Hines
---
migration.c |8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a
From: "Michael R. Hines"
This is used during RDMA initialization in order to
transmit a description of all the RAM blocks to the
peer for later dynamic chunk registration purposes.
Signed-off-by: Michael R. Hines
---
exec.c|9 +
include/exec/cpu-common.h |5
From: "Michael R. Hines"
The following changes since commit 24a6e7f4d91e9ed5f8117ecb083431a23f8609a0:
virtio-balloon: fix dynamic properties. (2013-04-15 17:06:58 -0500)
are available in the git repository at:
g...@github.com:hinesmr/qemu.git rdma_patch_v2
for you to fetch changes up to 6
From: "Michael R. Hines"
This gives RDMA shared access to madvise() on the destination side
when an entire chunk is found to be zero.
Signed-off-by: Michael R. Hines
---
arch_init.c | 24
include/migration/migration.h |1 +
2 files changed, 17 i
From: "Michael R. Hines"
It's very helpful when debugging to print out migration throughput
after each iteration round to compare the different migration
technologies.
Signed-off-by: Michael R. Hines
---
migration.c |8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a
From: "Michael R. Hines"
This capability allows you to disable dynamic chunk registration
for better throughput on high-performance links.
It is enabled by default.
Signed-off-by: Michael R. Hines
---
include/migration/migration.h |2 ++
migration.c | 11 ++-
q
From: "Michael R. Hines"
These are the prototypes and implementation of new hooks that
RDMA takes advantage of to perform dynamic page registration.
An optional hook is also introduced for a custom function
to be able to override the default save_page function.
Also included are the prototypes
From: "Michael R. Hines"
This takes advantages of the previous patches:
1. use the new QEMUFileOps hook 'save_page'
2. call out to the right accessor methods to invoke
the iteration hooks defined in QEMUFileOps
Signed-off-by: Michael R. Hines
---
arch_init.c | 35 +++
From: "Michael R. Hines"
docs/rdma.txt contains full documentation,
wiki links, github url and contact information.
Signed-off-by: Michael R. Hines
---
docs/rdma.txt | 336 +
1 file changed, 336 insertions(+)
create mode 100644 docs/rdm
From: "Michael R. Hines"
The following changes since commit e0a83fc2c1582dc8d4453849852ebe6c258b7c3a:
qom: do nothing on unparent of object without parent (2013-04-16 16:10:21
-0500)
are available in the git repository at:
g...@github.com:hinesmr/qemu.git rdma_patch_v3
for you to fetch c
From: "Michael R. Hines"
This takes advantages of the previous patches:
1. use the new QEMUFileOps hook 'save_page'
2. call out to the right accessor methods to invoke
the iteration hooks defined in QEMUFileOps
3. Expose a common way to zap zero pages
Signed-off-by: Michael R. Hines
---
From: "Michael R. Hines"
This is used during RDMA initialization in order to
transmit a description of all the RAM blocks to the
peer for later dynamic chunk registration purposes.
Signed-off-by: Michael R. Hines
---
exec.c|9 +
include/exec/cpu-common.h |5
From: "Michael R. Hines"
These are the prototypes and implementation of new hooks that
RDMA takes advantage of to perform dynamic page registration.
An optional hook is also introduced for a custom function
to be able to override the default save_page function.
Also included are the prototypes
From: "Michael R. Hines"
docs/rdma.txt contains full documentation,
wiki links, github url and contact information.
Signed-off-by: Michael R. Hines
---
docs/rdma.txt | 357 +
1 file changed, 357 insertions(+)
create mode 100644 docs/rdm
From: "Michael R. Hines"
This capability allows you to disable dynamic chunk registration
for better throughput on high-performance links.
It is enabled by default.
Signed-off-by: Michael R. Hines
---
migration.c | 10 ++
qapi-schema.json |2 +-
2 files changed, 11 insertio
From: "Michael R. Hines"
It's very helpful when debugging to print out migration throughput
after each iteration round to compare the different migration
technologies.
Signed-off-by: Michael R. Hines
---
migration.c |8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a
From: "Michael R. Hines"
This is used during RDMA initialization in order to
transmit a description of all the RAM blocks to the
peer for later dynamic chunk registration purposes.
Signed-off-by: Michael R. Hines
---
exec.c|9 +
include/exec/cpu-common.h |5
From: "Michael R. Hines"
RDMA uses this to flush the control channel before sending its
own message to handle page registrations.
Signed-off-by: Michael R. Hines
---
include/migration/qemu-file.h |1 +
savevm.c |2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
From: "Michael R. Hines"
This takes advantages of the previous patches:
1. use the new QEMUFileOps hook 'save_page'
2. call out to the right accessor methods to invoke
the iteration hooks defined in QEMUFileOps
Signed-off-by: Michael R. Hines
---
arch_init.c | 35 +++
From: "Michael R. Hines"
The following changes since commit e0a83fc2c1582dc8d4453849852ebe6c258b7c3a:
qom: do nothing on unparent of object without parent (2013-04-16 16:10:21
-0500)
are available in the git repository at:
g...@github.com:hinesmr/qemu.git rdma_patch_v4
for you to fetch c
From: "Michael R. Hines"
QEMUFileRDMA also has read and write modes. This function is now
shared to reduce code duplication.
Signed-off-by: Michael R. Hines
---
include/migration/qemu-file.h |2 ++
savevm.c | 20 +---
2 files changed, 15 insertions(+)
From: "Michael R. Hines"
This capability allows you to disable dynamic chunk registration
for better throughput on high-performance links.
It is enabled by default.
Signed-off-by: Michael R. Hines
---
migration.c | 10 ++
qapi-schema.json |8 +++-
2 files changed, 17 in
From: "Michael R. Hines"
These are the prototypes and implementation of new hooks that
RDMA takes advantage of to perform dynamic page registration.
An optional hook is also introduced for a custom function
to be able to override the default save_page function.
Also included are the prototypes
From: "Michael R. Hines"
docs/rdma.txt contains full documentation,
wiki links, github url and contact information.
Signed-off-by: Michael R. Hines
---
docs/rdma.txt | 360 +
1 file changed, 360 insertions(+)
create mode 100644 docs/rdm
From: "Michael R. Hines"
This gives RDMA shared access to madvise() on the destination side
when an entire chunk is found to be zero.
Signed-off-by: Michael R. Hines
---
arch_init.c | 24
include/migration/migration.h |2 ++
2 files changed, 18
From: "Michael R. Hines"
It's very helpful when debugging to print out migration throughput
after each iteration round to compare the different migration
technologies.
Signed-off-by: Michael R. Hines
---
migration.c |8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a
From: "Michael R. Hines"
The RDMA event channel can be made non-blocking just like a TCP
socket. Exporting this function allows us to yield so that the
QEMU monitor remains available.
Signed-off-by: Michael R. Hines
---
include/block/coroutine.h |6 ++
qemu-coroutine-io.c | 23
From: "Michael R. Hines"
These are the prototypes and implementation of new hooks that
RDMA takes advantage of to perform dynamic page registration.
An optional hook is also introduced for a custom function
to be able to override the default save_page function.
Also included are the prototypes
From: "Michael R. Hines"
This functions allows you to perform your own per-QEMUFileOps
calculation for the value of 'max_size'.
For RDMA, this calculation artificially limits migration throughput
and needs to be done differently for high-throughput links.
Signed-off-by: Michael R. Hines
---
i
From: "Michael R. Hines"
This exposes throughput (in megabits/sec) through QMP.
By itself, this patch only prints zero and the value is
actually calculated in the next patch.
Signed-off-by: Michael R. Hines
---
hmp.c |2 ++
include/migration/qemu-file.h |2 ++
From: "Michael R. Hines"
Changes since v4:
- Added new QEMUFileOps function: qemu_get_max_size()
- Renamed capability to x-pin-all, disabled by default
- Added numbers for x-pin-all to performance section in docs/rdma.txt
- Included performance numbers in this cover letter
- Converted throughput
From: "Michael R. Hines"
QEMUFileRDMA also has read and write modes. This function is now
shared to reduce code duplication.
Signed-off-by: Michael R. Hines
---
include/migration/qemu-file.h |1 +
savevm.c | 20 +---
2 files changed, 14 insertions(+),
From: "Michael R. Hines"
This capability allows you to disable dynamic chunk registration
for better throughput on high-performance links.
For example, using an 8GB RAM virtual machine with all 8GB of memory in
active use and the VM itself is completely idle using a 40 gbps infiniband link:
1.
From: "Michael R. Hines"
This is used during RDMA initialization in order to
transmit a description of all the RAM blocks to the
peer for later dynamic chunk registration purposes.
Signed-off-by: Michael R. Hines
---
exec.c|9 +
include/exec/cpu-common.h |5
From: "Michael R. Hines"
Code that does need to be visible is kept
well contained inside this file and this is the only
new additional file to the entire patch - good progress.
This file includes the entire protocol and interfaces
required to perform RDMA migration.
Also, the configure and Make
From: "Michael R. Hines"
This gives RDMA shared access to madvise() on the destination side
when an entire chunk is found to be zero.
Signed-off-by: Michael R. Hines
---
arch_init.c | 24
include/migration/migration.h |2 ++
2 files changed, 18
From: "Michael R. Hines"
docs/rdma.txt contains full documentation,
wiki links, github url and contact information.
Signed-off-by: Michael R. Hines
---
docs/rdma.txt | 404 +
1 file changed, 404 insertions(+)
create mode 100644 docs/rdm
From: "Michael R. Hines"
RDMA uses this to flush the control channel before sending its
own message to handle page registrations.
Signed-off-by: Michael R. Hines
---
include/migration/qemu-file.h |1 +
savevm.c |2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
From: "Michael R. Hines"
This takes advantages of the previous patches:
1. use the new QEMUFileOps hook 'save_page'
2. call out to the right accessor methods to invoke
the iteration hooks defined in QEMUFileOps
Signed-off-by: Michael R. Hines
---
arch_init.c | 35 +++
From: "Michael R. Hines"
Juan, Please pull.
Changes since v4:
- Re-ran checkpatch.pl
- Added new QEMUFileOps function: qemu_get_max_size()
- Renamed capability to x-pin-all, disabled by default
- Added numbers for x-pin-all to performance section in docs/rdma.txt
- Included performance numbers
From: "Michael R. Hines"
This exposes throughput (in megabits/sec) through QMP.
By itself, this patch only prints zero and the value is
actually calculated in the next patch.
Signed-off-by: Michael R. Hines
---
hmp.c |2 ++
include/migration/qemu-file.h |2 ++
From: "Michael R. Hines"
QEMUFileRDMA also has read and write modes. This function is now
shared to reduce code duplication.
Signed-off-by: Michael R. Hines
---
include/migration/qemu-file.h |1 +
savevm.c | 20 +---
2 files changed, 14 insertions(+),
From: "Michael R. Hines"
docs/rdma.txt contains full documentation,
wiki links, github url and contact information.
Signed-off-by: Michael R. Hines
---
docs/rdma.txt | 404 +
1 file changed, 404 insertions(+)
create mode 100644 docs/rdm
From: "Michael R. Hines"
This functions allows you to perform your own per-QEMUFileOps
calculation for the value of 'max_size'.
For RDMA, this calculation artificially limits migration throughput
and needs to be done differently for high-throughput links.
Signed-off-by: Michael R. Hines
---
i
From: "Michael R. Hines"
This gives RDMA shared access to madvise() on the destination side
when an entire chunk is found to be zero.
Signed-off-by: Michael R. Hines
---
arch_init.c | 24
include/migration/migration.h |2 ++
2 files changed, 18
From: "Michael R. Hines"
RDMA uses this to flush the control channel before sending its
own message to handle page registrations.
Signed-off-by: Michael R. Hines
---
include/migration/qemu-file.h |1 +
savevm.c |2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
From: "Michael R. Hines"
This is used during RDMA initialization in order to
transmit a description of all the RAM blocks to the
peer for later dynamic chunk registration purposes.
Signed-off-by: Michael R. Hines
---
exec.c|9 +
include/exec/cpu-common.h |5
From: "Michael R. Hines"
This capability allows you to disable dynamic chunk registration
for better throughput on high-performance links.
For example, using an 8GB RAM virtual machine with all 8GB of memory in
active use and the VM itself is completely idle using a 40 gbps infiniband link:
1.
From: "Michael R. Hines"
This takes advantages of the previous patches:
1. use the new QEMUFileOps hook 'save_page'
2. call out to the right accessor methods to invoke
the iteration hooks defined in QEMUFileOps
Signed-off-by: Michael R. Hines
---
arch_init.c | 35 +++
1 - 100 of 332 matches
Mail list logo