[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 04/13] migration/rdma: Remove all uses of RAM_CONTROL_HOOK
From: |
Zhijian Li (Fujitsu) |
Subject: |
Re: [PATCH v3 04/13] migration/rdma: Remove all uses of RAM_CONTROL_HOOK |
Date: |
Fri, 13 Oct 2023 08:00:57 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 |
On 12/10/2023 04:35, Juan Quintela wrote:
> Instead of going trhough ram_control_load_hook(), call
> qemu_rdma_registration_handle() directly.
>
s/trhough/through
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
> Reviewed-by: Peter Xu <peterx@redhat.com>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> migration/qemu-file.h | 1 -
> migration/rdma.h | 3 +++
> migration/ram.c | 5 ++++-
> migration/rdma.c | 12 +++++++-----
> 4 files changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/migration/qemu-file.h b/migration/qemu-file.h
> index 35e671a01e..14ff0d9cc4 100644
> --- a/migration/qemu-file.h
> +++ b/migration/qemu-file.h
> @@ -41,7 +41,6 @@ typedef int (QEMURamHookFunc)(QEMUFile *f, uint64_t flags,
> void *data);
> */
> #define RAM_CONTROL_SETUP 0
> #define RAM_CONTROL_ROUND 1
> -#define RAM_CONTROL_HOOK 2
> #define RAM_CONTROL_FINISH 3
> #define RAM_CONTROL_BLOCK_REG 4
>
> diff --git a/migration/rdma.h b/migration/rdma.h
> index c13b94c782..8bd277efb9 100644
> --- a/migration/rdma.h
> +++ b/migration/rdma.h
> @@ -24,10 +24,13 @@ void rdma_start_incoming_migration(const char *host_port,
> Error **errp);
>
>
> #ifdef CONFIG_RDMA
> +int qemu_rdma_registration_handle(QEMUFile *f);
> int qemu_rdma_registration_start(QEMUFile *f, uint64_t flags);
> int qemu_rdma_registration_stop(QEMUFile *f, uint64_t flags);
> #else
> static inline
> +int qemu_rdma_registration_handle(QEMUFile *f) { return 0; }
> +static inline
> int qemu_rdma_registration_start(QEMUFile *f, uint64_t flags) { return 0; }
> static inline
> int qemu_rdma_registration_stop(QEMUFile *f, uint64_t flags) { return 0; }
> diff --git a/migration/ram.c b/migration/ram.c
> index 15bd4ad697..ee8bdcdc82 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -4072,7 +4072,10 @@ static int ram_load_precopy(QEMUFile *f)
> }
> break;
> case RAM_SAVE_FLAG_HOOK:
> - ram_control_load_hook(f, RAM_CONTROL_HOOK, NULL);
> + ret = qemu_rdma_registration_handle(f);
> + if (ret < 0) {
> + qemu_file_set_error(f, ret);
> + }
> break;
> default:
> error_report("Unknown combination of migration flags: 0x%x",
> flags);
> diff --git a/migration/rdma.c b/migration/rdma.c
> index 99c0914a23..e533814599 100644
> --- a/migration/rdma.c
> +++ b/migration/rdma.c
> @@ -3522,7 +3522,7 @@ static int dest_ram_sort_func(const void *a, const void
> *b)
> *
> * Keep doing this until the source tells us to stop.
> */
> -static int qemu_rdma_registration_handle(QEMUFile *f)
> +int qemu_rdma_registration_handle(QEMUFile *f)
> {
> RDMAControlHeader reg_resp = { .len = sizeof(RDMARegisterResult),
> .type = RDMA_CONTROL_REGISTER_RESULT,
> @@ -3534,7 +3534,7 @@ static int qemu_rdma_registration_handle(QEMUFile *f)
> };
> RDMAControlHeader blocks = { .type = RDMA_CONTROL_RAM_BLOCKS_RESULT,
> .repeat = 1 };
> - QIOChannelRDMA *rioc = QIO_CHANNEL_RDMA(qemu_file_get_ioc(f));
> + QIOChannelRDMA *rioc;
> Error *err = NULL;
> RDMAContext *rdma;
> RDMALocalBlocks *local;
> @@ -3550,7 +3550,12 @@ static int qemu_rdma_registration_handle(QEMUFile *f)
> int count = 0;
> int i = 0;
>
> + if (!migrate_rdma()) {
> + return 0;
> + }
> +
> RCU_READ_LOCK_GUARD();
> + rioc = QIO_CHANNEL_RDMA(qemu_file_get_ioc(f));
> rdma = qatomic_rcu_read(&rioc->rdmain);
>
> if (!rdma) {
> @@ -3841,9 +3846,6 @@ static int rdma_load_hook(QEMUFile *f, uint64_t flags,
> void *data)
> case RAM_CONTROL_BLOCK_REG:
> return rdma_block_notification_handle(f, data);
>
> - case RAM_CONTROL_HOOK:
> - return qemu_rdma_registration_handle(f);
> -
> default:
> /* Shouldn't be called with any other values */
> abort();
- [PATCH v3 00/13] Removal of QEMUFileHooks, Juan Quintela, 2023/10/11
- [PATCH v3 01/13] migration: Create migrate_rdma(), Juan Quintela, 2023/10/11
- [PATCH v3 03/13] migration/rdma: Unfold ram_control_after_iterate(), Juan Quintela, 2023/10/11
- [PATCH v3 04/13] migration/rdma: Remove all uses of RAM_CONTROL_HOOK, Juan Quintela, 2023/10/11
- Re: [PATCH v3 04/13] migration/rdma: Remove all uses of RAM_CONTROL_HOOK,
Zhijian Li (Fujitsu) <=
- [PATCH v3 05/13] migration/rdma: Unfold hook_ram_load(), Juan Quintela, 2023/10/11
- [PATCH v3 06/13] migration/rdma: Create rdma_control_save_page(), Juan Quintela, 2023/10/11
- [PATCH v3 07/13] qemu-file: Remove QEMUFileHooks, Juan Quintela, 2023/10/11
- [PATCH v3 09/13] migration/rdma: Remove qemu_ prefix from exported functions, Juan Quintela, 2023/10/11
- [PATCH v3 02/13] migration/rdma: Unfold ram_control_before_iterate(), Juan Quintela, 2023/10/11