diff options
| author | Peter Maydell <peter.maydell@linaro.org> | 2015-11-25 16:20:58 +0000 |
|---|---|---|
| committer | Peter Maydell <peter.maydell@linaro.org> | 2015-11-25 16:20:58 +0000 |
| commit | c7933a80bc6f3bb79c341f8fc17b4cf76622e2f3 (patch) | |
| tree | c3fb00be709f6a464dcebc3b2b86b04f2b5039b5 | |
| parent | 1a4dab849d5d06191ab5e5850f6b8bfcad8ceb47 (diff) | |
| parent | f77dcdbc76dbf9bade9739e85e1013639e535835 (diff) | |
| download | focaccia-qemu-c7933a80bc6f3bb79c341f8fc17b4cf76622e2f3.tar.gz focaccia-qemu-c7933a80bc6f3bb79c341f8fc17b4cf76622e2f3.zip | |
Merge remote-tracking branch 'remotes/juanquintela/tags/migration/20151125' into staging
migration/next for 20151125 # gpg: Signature made Wed 25 Nov 2015 14:28:47 GMT using RSA key ID 5872D723 # gpg: Good signature from "Juan Quintela <quintela@redhat.com>" # gpg: aka "Juan Quintela <quintela@trasno.org>" * remotes/juanquintela/tags/migration/20151125: block-migration: limit the memory usage Assume madvise for (no)hugepage works Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
| -rw-r--r-- | migration/block.c | 7 | ||||
| -rw-r--r-- | migration/postcopy-ram.c | 10 |
2 files changed, 8 insertions, 9 deletions
diff --git a/migration/block.c b/migration/block.c index 310e2b36dc..656f38f341 100644 --- a/migration/block.c +++ b/migration/block.c @@ -36,6 +36,8 @@ #define MAX_IS_ALLOCATED_SEARCH 65536 +#define MAX_INFLIGHT_IO 512 + //#define DEBUG_BLK_MIGRATION #ifdef DEBUG_BLK_MIGRATION @@ -665,7 +667,10 @@ static int block_save_iterate(QEMUFile *f, void *opaque) blk_mig_lock(); while ((block_mig_state.submitted + block_mig_state.read_done) * BLOCK_SIZE < - qemu_file_get_rate_limit(f)) { + qemu_file_get_rate_limit(f) && + (block_mig_state.submitted + + block_mig_state.read_done) < + MAX_INFLIGHT_IO) { blk_mig_unlock(); if (block_mig_state.bulk_completed == 0) { /* first finish the bulk phase */ diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c index 22d6b18e63..3946aa98aa 100644 --- a/migration/postcopy-ram.c +++ b/migration/postcopy-ram.c @@ -241,10 +241,7 @@ static int cleanup_range(const char *block_name, void *host_addr, * We turned off hugepage for the precopy stage with postcopy enabled * we can turn it back on now. */ - if (qemu_madvise(host_addr, length, QEMU_MADV_HUGEPAGE)) { - error_report("%s HUGEPAGE: %s", __func__, strerror(errno)); - return -1; - } + qemu_madvise(host_addr, length, QEMU_MADV_HUGEPAGE); /* * We can also turn off userfault now since we should have all the @@ -345,10 +342,7 @@ static int nhp_range(const char *block_name, void *host_addr, * do delete areas of the page, even if THP thinks a hugepage would * be a good idea, so force hugepages off. */ - if (qemu_madvise(host_addr, length, QEMU_MADV_NOHUGEPAGE)) { - error_report("%s: NOHUGEPAGE: %s", __func__, strerror(errno)); - return -1; - } + qemu_madvise(host_addr, length, QEMU_MADV_NOHUGEPAGE); return 0; } |