[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 09/17] migration-local: override before_ram_iter
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 09/17] migration-local: override before_ram_iterate to send pipefd |
Date: |
Thu, 24 Oct 2013 15:07:37 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130923 Thunderbird/17.0.9 |
Il 22/10/2013 04:25, Lei Li ha scritto:
> Override befor_ram_iterate to send pipefd. It will write the
> RAM_SAVE_FLAG_HOOK flags which will trigger the load hook to
> receive it.
>
> Signed-off-by: Lei Li <address@hidden>
> ---
> migration-local.c | 26 ++++++++++++++++++++++++++
> 1 files changed, 26 insertions(+), 0 deletions(-)
>
> diff --git a/migration-local.c b/migration-local.c
> index ed0ae6c..92c661c 100644
> --- a/migration-local.c
> +++ b/migration-local.c
> @@ -114,6 +114,31 @@ static int qemu_local_close(void *opaque)
> return 0;
> }
>
> +static int send_pipefd(int sockfd, int pipefd);
> +
> +static int qemu_local_send_pipefd(QEMUFile *f, void *opaque,
> + uint64_t flags)
> +{
> + QEMUFileLocal *s = opaque;
> + int ret;
> +
> + if (s->unix_page_flipping) {
> + /* Avoid sending pipe fd again in ram_save_complete() stage */
> + if (flags != RAM_CONTROL_FINISH) {
Why not "flags == RAM_CONTROL_SETUP"?
> + qemu_put_be64(f, RAM_SAVE_FLAG_HOOK);
> + qemu_fflush(f);
> + ret = send_pipefd(s->sockfd, s->pipefd[0]);
> + if (ret < 0) {
> + fprintf(stderr, "failed to pass pipe\n");
> + return ret;
> + }
> + DPRINTF("pipe fd was sent\n");
> + }
> + }
> +
> + return 0;
> +}
> +
> static const QEMUFileOps pipe_read_ops = {
> .get_fd = qemu_local_get_sockfd,
> .get_buffer = qemu_local_get_buffer,
> @@ -124,6 +149,7 @@ static const QEMUFileOps pipe_write_ops = {
> .get_fd = qemu_local_get_sockfd,
> .writev_buffer = qemu_local_writev_buffer,
> .close = qemu_local_close,
> + .before_ram_iterate = qemu_local_send_pipefd,
> };
>
> QEMUFile *qemu_fopen_socket_local(int sockfd, const char *mode)
>
Otherwise looks good.
Paolo
- [Qemu-devel] [PATCH 03/17] migration: add migrate_unix_page_flipping(), (continued)
- [Qemu-devel] [PATCH 03/17] migration: add migrate_unix_page_flipping(), Lei Li, 2013/10/21
- [Qemu-devel] [PATCH 04/17] qmp-command.hx: add missing docs for migration capabilites, Lei Li, 2013/10/21
- [Qemu-devel] [PATCH 05/17] migration-local: add QEMUFileLocal with socket based QEMUFile, Lei Li, 2013/10/21
- [Qemu-devel] [PATCH 06/17] migration-local: introduce qemu_fopen_socket_local(), Lei Li, 2013/10/21
- [Qemu-devel] [PATCH 07/17] migration-local: add send_pipefd(), Lei Li, 2013/10/21
- [Qemu-devel] [PATCH 08/17] migration-local: add recv_pipefd(), Lei Li, 2013/10/21
- [Qemu-devel] [PATCH 09/17] migration-local: override before_ram_iterate to send pipefd, Lei Li, 2013/10/21
- Re: [Qemu-devel] [PATCH 09/17] migration-local: override before_ram_iterate to send pipefd,
Paolo Bonzini <=
[Qemu-devel] [PATCH 10/17] migration-local: override save_page for page transmit, Lei Li, 2013/10/21
[Qemu-devel] [PATCH 11/17] savevm: adjust ram_control_save_page for page flipping, Lei Li, 2013/10/21
[Qemu-devel] [PATCH 12/17] migration-local: override hook_ram_load, Lei Li, 2013/10/21
[Qemu-devel] [PATCH 13/17] migration-unix: replace qemu_fopen_socket with qemu_fopen_socket_local, Lei Li, 2013/10/21