[Qemu-devel] [RFC PATCH RDMA support v1: 2/5] install new monitor commands to configure RDMA

2013-01-28 Thread mrhines
From: "Michael R. Hines" Signed-off-by: Michael R. Hines --- hmp-commands.hx | 56 ++ hmp.c| 23 ++ hmp.h|4 qapi-schema.json | 56 +++

[Qemu-devel] [RFC PATCH RDMA support v1: 1/5] add openfabrics RDMA libraries and base RDMA code to build

2013-01-28 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 3/5] initialize RDMA options when QEMU first runs on command-line

2013-01-28 Thread mrhines
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-

[Qemu-devel] [RFC PATCH RDMA support v1: 4/5] connection-setup code between client/server

2013-01-28 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 5/5] send memory over RDMA as blocks are iterated

2013-01-28 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v4: 05/10] reuse function for parsing the QMP 'migrate' string

2013-03-17 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v4: 00/10] cleaner ramblocks and documentation

2013-03-17 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v4: 07/10] connection-establishment for RDMA

2013-03-17 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v4: 02/10] check for CONFIG_RDMA

2013-03-17 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v4: 01/10] ./configure --enable-rdma

2013-03-17 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v4: 09/10] check for QMP string and bypass nonblock() calls

2013-03-17 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v4: 10/10] send pc.ram over RDMA

2013-03-17 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v4: 08/10] introduce QEMUFileRDMA

2013-03-17 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v4: 03/10] more verbose documentation of the RDMA transport

2013-03-17 Thread mrhines
(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

[Qemu-devel] [RFC PATCH RDMA support v4: 04/10] iterators for getting the RAMBlocks

2013-03-17 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v4: 06/10] core RDMA migration code (rdma.c)

2013-03-17 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v6: 1/7] ./configure and Makefile

2013-04-09 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v6: 0/7] additional cleanup and consolidation

2013-04-09 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v6: 3/7] Introduce QEMURamControlOps

2013-04-09 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v6: 6/7] send pc.ram over RDMA

2013-04-09 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v6: 7/7] introduce qemu_ram_foreach_block()

2013-04-09 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v6: 2/7] documentation (docs/rdma.txt)

2013-04-09 Thread mrhines
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 ++

[Qemu-devel] [RFC PATCH RDMA support v6: 4/7] Introduce two new capabilities

2013-04-09 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 01/13] introduce qemu_ram_foreach_block()

2013-04-10 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 05/13] accessor function prototypes for new QEMUFileOps hooks

2013-04-10 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 04/13] update QEMUFileOps with new hooks

2013-04-10 Thread mrhines
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 ---

[Qemu-devel] [RFC PATCH RDMA support v7: 00/13] rdma cleanup and reordering

2013-04-10 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 06/13] implementation of new QEMUFileOps hooks

2013-04-10 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 08/13] default chunk registration to true

2013-04-10 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 09/13] parse QMP string for new 'rdma' protocol

2013-04-10 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 07/13] introduce capability for dynamic chunk registration

2013-04-10 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 12/13] updated protocol documentation

2013-04-10 Thread mrhines
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/

[Qemu-devel] [RFC PATCH RDMA support v1: 10/13] introduce new command migrate_check_for_zero

2013-04-10 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 11/13] send pc.ram over RDMA

2013-04-10 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 13/13] print out migration throughput while debugging

2013-04-10 Thread mrhines
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

[Qemu-devel] [RFC PATCH RDMA support v1: 03/13] RDMA is enabled by default per the usual ./configure testing.

2013-04-10 Thread mrhines
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

[Qemu-devel] [PATCH 0/8] rdma: migration support

2013-04-11 Thread mrhines
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

[Qemu-devel] [PATCH 1/8] rdma: introduce qemu ram foreach block

2013-04-11 Thread mrhines
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 |

[Qemu-devel] [PATCH 6/8] rdma: send pc.ram

2013-04-11 Thread mrhines
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

[Qemu-devel] [PATCH 3/8] rdma: new QEMUFileOps hooks

2013-04-11 Thread mrhines
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

[Qemu-devel] [PATCH 7/8] rdma: print out throughput while debugging

2013-04-11 Thread mrhines
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

[Qemu-devel] [PATCH 5/8] rdma: introduce capability for chunk registration

2013-04-11 Thread mrhines
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

[Qemu-devel] [PATCH 4/8] rdma: implement new QEMUFileOps hooks

2013-04-11 Thread mrhines
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 +++

[Qemu-devel] [PATCH 8/8] rdma: add documentation

2013-04-11 Thread mrhines
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

[Qemu-devel] [PATCH v2 0/8] rdma: migration support

2013-04-12 Thread mrhines
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

[Qemu-devel] [PATCH v2 1/8] rdma: introduce qemu_ram_foreach_block

2013-04-12 Thread mrhines
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

[Qemu-devel] [PATCH v2 3/8] rdma: export ram_handle_compressed()

2013-04-12 Thread mrhines
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

[Qemu-devel] [PATCH v2 8/8] rdma: add documentation

2013-04-12 Thread mrhines
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

[Qemu-devel] [PATCH v2 2/8] rdma: new QEMUFileOps hooks

2013-04-12 Thread mrhines
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

[Qemu-devel] [PATCH v2 6/8] rdma: send pc.ram

2013-04-12 Thread mrhines
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 +++

[Qemu-devel] [PATCH v2 4/8] rdma: introduce capability for chunk registration

2013-04-12 Thread mrhines
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

[Qemu-devel] [PATCH v2 7/8] rdma: print out throughput while debugging

2013-04-12 Thread mrhines
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

[Qemu-devel] [PULL 1/8] rdma: introduce qemu_ram_foreach_block

2013-04-15 Thread mrhines
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

[Qemu-devel] [PULL 0/8] rdma: migration support

2013-04-15 Thread mrhines
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

[Qemu-devel] [PULL 3/8] rdma: export ram_handle_compressed()

2013-04-15 Thread mrhines
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

[Qemu-devel] [PULL 7/8] rdma: print out throughput while debugging

2013-04-15 Thread mrhines
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

[Qemu-devel] [PULL 4/8] rdma: introduce capability for chunk registration

2013-04-15 Thread mrhines
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

[Qemu-devel] [PULL 2/8] rdma: new QEMUFileOps hooks

2013-04-15 Thread mrhines
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

[Qemu-devel] [PULL 6/8] rdma: send pc.ram

2013-04-15 Thread mrhines
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 +++

[Qemu-devel] [PULL 8/8] rdma: add documentation

2013-04-15 Thread mrhines
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

[Qemu-devel] [PULL v3 0/7] rdma: migration support

2013-04-16 Thread mrhines
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

[Qemu-devel] [PULL v3 5/7] rdma: send pc.ram

2013-04-16 Thread mrhines
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 ---

[Qemu-devel] [PULL v3 1/7] rdma: introduce qemu_ram_foreach_block

2013-04-16 Thread mrhines
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

[Qemu-devel] [PULL v3 2/7] rdma: new QEMUFileOps hooks

2013-04-16 Thread mrhines
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

[Qemu-devel] [PULL v3 7/7] rdma: add documentation

2013-04-16 Thread mrhines
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

[Qemu-devel] [PULL v3 3/7] rdma: introduce capability for chunk registration

2013-04-16 Thread mrhines
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

[Qemu-devel] [PULL v3 6/7] rdma: print throughput while debugging

2013-04-16 Thread mrhines
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

[Qemu-devel] [PULL v4 02/11] rdma: introduce qemu_ram_foreach_block()

2013-04-17 Thread mrhines
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

[Qemu-devel] [PULL v4 05/11] rdma: export qemu_fflush()

2013-04-17 Thread mrhines
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(-)

[Qemu-devel] [PULL v4 09/11] rdma: send pc.ram

2013-04-17 Thread mrhines
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 +++

[Qemu-devel] [PULL v4 00/11] rdma: migration support

2013-04-17 Thread mrhines
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

[Qemu-devel] [PULL v4 03/11] rdma: introduce qemu_file_mode_is_not_valid()

2013-04-17 Thread mrhines
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(+)

[Qemu-devel] [PULL v4 07/11] rdma: introduce capability for chunk registration

2013-04-17 Thread mrhines
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

[Qemu-devel] [PULL v4 06/11] rdma: new QEMUFileOps hooks

2013-04-17 Thread mrhines
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

[Qemu-devel] [PULL v4 11/11] rdma: add documentation

2013-04-17 Thread mrhines
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

[Qemu-devel] [PULL v4 04/11] rdma: export ram_handle_compressed()

2013-04-17 Thread mrhines
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

[Qemu-devel] [PULL v4 10/11] rdma: print out throughput while debugging

2013-04-17 Thread mrhines
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

[Qemu-devel] [PULL v4 01/11] rdma: export yield_until_fd_readable()

2013-04-17 Thread mrhines
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

[Qemu-devel] [PATCH v5 09/12] rdma: new QEMUFileOps hooks

2013-04-21 Thread mrhines
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

[Qemu-devel] [PATCH v5 04/12] rdma: introduce qemu_get_max_size()

2013-04-21 Thread mrhines
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

[Qemu-devel] [PATCH v5 03/12] rdma: export throughput w/ MigrationStats QMP

2013-04-21 Thread mrhines
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 ++

[Qemu-devel] [PATCH v5 00/12] rdma: migration support

2013-04-21 Thread mrhines
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

[Qemu-devel] [PATCH v5 05/12] rdma: introduce qemu_file_mode_is_not_valid()

2013-04-21 Thread mrhines
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(+),

[Qemu-devel] [PATCH v5 10/12] rdma: introduce capability x-rdma-pin-all

2013-04-21 Thread mrhines
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.

[Qemu-devel] [PATCH v5 08/12] rdma: introduce qemu_ram_foreach_block()

2013-04-21 Thread mrhines
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

[Qemu-devel] [PATCH v5 11/12] rdma: core logic

2013-04-21 Thread mrhines
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

[Qemu-devel] [PATCH v5 07/12] rdma: introduce ram_handle_compressed()

2013-04-21 Thread mrhines
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

[Qemu-devel] [PATCH v5 01/12] rdma: add documentation

2013-04-21 Thread mrhines
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

[Qemu-devel] [PATCH v5 06/12] rdma: export qemu_fflush()

2013-04-21 Thread mrhines
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(-)

[Qemu-devel] [PATCH v5 12/12] rdma: send pc.ram

2013-04-21 Thread mrhines
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 +++

[Qemu-devel] [PATCH v5 00/12] rdma: migration support

2013-04-22 Thread mrhines
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

[Qemu-devel] [PATCH v5 03/12] rdma: export throughput w/ MigrationStats QMP

2013-04-22 Thread mrhines
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 ++

[Qemu-devel] [PATCH v5 05/12] rdma: introduce qemu_file_mode_is_not_valid()

2013-04-22 Thread mrhines
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(+),

[Qemu-devel] [PATCH v5 01/12] rdma: add documentation

2013-04-22 Thread mrhines
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

[Qemu-devel] [PATCH v5 04/12] rdma: introduce qemu_get_max_size()

2013-04-22 Thread mrhines
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

[Qemu-devel] [PATCH v5 07/12] rdma: introduce ram_handle_compressed()

2013-04-22 Thread mrhines
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

[Qemu-devel] [PATCH v5 06/12] rdma: export qemu_fflush()

2013-04-22 Thread mrhines
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(-)

[Qemu-devel] [PATCH v5 08/12] rdma: introduce qemu_ram_foreach_block()

2013-04-22 Thread mrhines
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

[Qemu-devel] [PATCH v5 10/12] rdma: introduce capability x-rdma-pin-all

2013-04-22 Thread mrhines
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.

[Qemu-devel] [PATCH v5 12/12] rdma: send pc.ram

2013-04-22 Thread mrhines
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   2   3   4   >