[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 18/33] migration: push Error **errp into colo_init_ram_cache()
From: |
Daniel P . Berrangé |
Subject: |
[PATCH 18/33] migration: push Error **errp into colo_init_ram_cache() |
Date: |
Thu, 4 Feb 2021 17:18:52 +0000 |
This is an incremental step in converting vmstate loading code to report
via Error objects instead of printing directly to the console/monitor.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
migration/ram.c | 11 ++++++-----
migration/ram.h | 2 +-
migration/savevm.c | 8 +++-----
3 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/migration/ram.c b/migration/ram.c
index f6180e8f4f..0b8c5f3c86 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -3028,7 +3028,7 @@ static void colo_init_ram_state(void)
* memory of the secondary VM, it is need to hold the global lock
* to call this helper.
*/
-int colo_init_ram_cache(void)
+int colo_init_ram_cache(Error **errp)
{
RAMBlock *block;
@@ -3038,16 +3038,17 @@ int colo_init_ram_cache(void)
NULL,
false);
if (!block->colo_cache) {
- error_report("%s: Can't alloc memory for COLO cache of block
%s,"
- "size 0x" RAM_ADDR_FMT, __func__, block->idstr,
- block->used_length);
+ error_setg_errno(errp, errno,
+ "%s: Can't alloc memory for COLO cache of
block %s,"
+ "size 0x" RAM_ADDR_FMT, __func__,
block->idstr,
+ block->used_length);
RAMBLOCK_FOREACH_NOT_IGNORED(block) {
if (block->colo_cache) {
qemu_anon_ram_free(block->colo_cache,
block->used_length);
block->colo_cache = NULL;
}
}
- return -errno;
+ return -1;
}
}
}
diff --git a/migration/ram.h b/migration/ram.h
index 1cea36ba51..88b0b6636b 100644
--- a/migration/ram.h
+++ b/migration/ram.h
@@ -74,7 +74,7 @@ int64_t ramblock_recv_bitmap_send(QEMUFile *file,
int ram_dirty_bitmap_reload(MigrationState *s, RAMBlock *rb);
/* ram cache */
-int colo_init_ram_cache(void);
+int colo_init_ram_cache(Error **errp);
void colo_flush_ram_cache(void);
void colo_release_ram_cache(void);
void colo_incoming_start_dirty_log(void);
diff --git a/migration/savevm.c b/migration/savevm.c
index c59e76b478..ace76e32f7 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -2215,17 +2215,15 @@ static int
loadvm_handle_recv_bitmap(MigrationIncomingState *mis,
static int loadvm_process_enable_colo(MigrationIncomingState *mis,
Error **errp)
{
- int ret;
if (migration_incoming_enable_colo(errp) < 0) {
return -1;
}
- ret = colo_init_ram_cache();
- if (ret < 0) {
- error_setg(errp, "failed to init colo RAM cache: %d", ret);
+ if (colo_init_ram_cache(errp) < 0) {
migration_incoming_disable_colo();
+ return -1;
}
- return ret;
+ return 0;
}
/*
--
2.29.2
- [PATCH 11/33] migration: push Error **errp into ram_postcopy_incoming_init(), (continued)
- [PATCH 11/33] migration: push Error **errp into ram_postcopy_incoming_init(), Daniel P . Berrangé, 2021/02/04
- [PATCH 13/33] migration: push Error **errp into loadvm_postcopy_handle_run(), Daniel P . Berrangé, 2021/02/04
- [PATCH 12/33] migration: push Error **errp into loadvm_postcopy_handle_listen(), Daniel P . Berrangé, 2021/02/04
- [PATCH 15/33] migration: make loadvm_postcopy_handle_resume() void, Daniel P . Berrangé, 2021/02/04
- [PATCH 14/33] migration: push Error **errp into loadvm_postcopy_ram_handle_discard(), Daniel P . Berrangé, 2021/02/04
- [PATCH 16/33] migration: push Error **errp into loadvm_handle_recv_bitmap(), Daniel P . Berrangé, 2021/02/04
- [PATCH 17/33] migration: push Error **errp into loadvm_process_enable_colo(), Daniel P . Berrangé, 2021/02/04
- [PATCH 18/33] migration: push Error **errp into colo_init_ram_cache(),
Daniel P . Berrangé <=
- [PATCH 23/33] migration: simplify some error reporting in save_snapshot(), Daniel P . Berrangé, 2021/02/04
- [PATCH 19/33] migration: push Error **errp into check_section_footer(), Daniel P . Berrangé, 2021/02/04
- [PATCH 21/33] migration: remove error reporting from qemu_fopen_bdrv() callers, Daniel P . Berrangé, 2021/02/04
- [PATCH 20/33] migration: push Error **errp into global_state_store(), Daniel P . Berrangé, 2021/02/04
- [PATCH 25/33] migration: push Error **errp into qemu_savevm_state_complete_precopy(), Daniel P . Berrangé, 2021/02/04
- [PATCH 22/33] migration: push Error **errp into qemu_savevm_state_iterate(), Daniel P . Berrangé, 2021/02/04
- [PATCH 28/33] migration: push Error **errp into qemu_savevm_send_packaged(), Daniel P . Berrangé, 2021/02/04
- [PATCH 31/33] migration: push Error **errp into qemu_savevm_state_resume_prepare(), Daniel P . Berrangé, 2021/02/04
- [PATCH 26/33] migration: push Error **errp into qemu_savevm_state_complete_precopy_non_iterable(), Daniel P . Berrangé, 2021/02/04