qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [PATCH 11/17] migration: add is_active_iterate handler


From: Juan Quintela
Subject: Re: [Qemu-block] [PATCH 11/17] migration: add is_active_iterate handler
Date: Tue, 24 Jan 2017 10:48:04 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Vladimir Sementsov-Ogievskiy <address@hidden> wrote:
> Only-postcopy savevm states (dirty-bitmap) don't need live iteration, so
> to disable them and stop transporting empty sections there is a new
> savevm handler.
>
> Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
> ---
>  include/migration/vmstate.h | 1 +
>  migration/savevm.c          | 5 +++++
>  2 files changed, 6 insertions(+)
>
> diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h
> index dc656be..2c53d0b 100644
> --- a/include/migration/vmstate.h
> +++ b/include/migration/vmstate.h
> @@ -47,6 +47,7 @@ typedef struct SaveVMHandlers {
>      /* This runs both outside and inside the iothread lock.  */
>      bool (*is_active)(void *opaque);
>      bool (*has_postcopy)(void *opaque);
> +    bool (*is_active_iterate)(void *opaque);
>  
>      /* This runs outside the iothread lock in the migration case, and
>       * within the lock in the savevm case.  The callback had better only
> diff --git a/migration/savevm.c b/migration/savevm.c
> index c58b9f9..4eb1640 100644
> --- a/migration/savevm.c
> +++ b/migration/savevm.c
> @@ -988,6 +988,11 @@ int qemu_savevm_state_iterate(QEMUFile *f, bool postcopy)
>                  continue;
>              }
>          }
> +        if (se->ops && se->ops->is_active_iterate) {
> +            if (!se->ops->is_active_iterate(se->opaque)) {
> +                continue;
> +            }
> +        }
>          /*
>           * In the postcopy phase, any device that doesn't know how to
>           * do postcopy should have saved it's state in the _complete

Reviewed-by: Juan Quintela <address@hidden>

I still don't see cleary why you can't "reuse" the is_active(), but
well, it will have to add magic there, so ....

BTW, in hindsight, this "is_active" functions are used mainly to check
if the thing is "not active" O:-)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]