qemu-trivial
[Top][All Lists]
Advanced

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

RE: [PATCH] docs/devel/migration.rst: Updates content from code and fixe


From: Zhang, Chen
Subject: RE: [PATCH] docs/devel/migration.rst: Updates content from code and fixes minor issues
Date: Wed, 9 Mar 2022 08:54:55 +0000

Ping....

Thanks
Chen

> -----Original Message-----
> From: Zhang, Chen <chen.zhang@intel.com>
> Sent: Thursday, January 27, 2022 6:33 PM
> To: Dr. David Alan Gilbert <dgilbert@redhat.com>; Juan Quintela
> <quintela@redhat.com>; qemu-dev <qemu-devel@nongnu.org>; qemu-
> trivial@nongnu.org
> Cc: Zhang, Chen <chen.zhang@intel.com>
> Subject: [PATCH] docs/devel/migration.rst: Updates content from code and
> fixes minor issues
> 
> Signed-off-by: Zhang Chen <chen.zhang@intel.com>
> ---
>  docs/devel/migration.rst | 36 +++++++++++++++++++++++-------------
>  1 file changed, 23 insertions(+), 13 deletions(-)
> 
> diff --git a/docs/devel/migration.rst b/docs/devel/migration.rst index
> 2401253482..9f190d439a 100644
> --- a/docs/devel/migration.rst
> +++ b/docs/devel/migration.rst
> @@ -156,12 +156,20 @@ An example (from hw/input/pckbd.c)
>        .name = "pckbd",
>        .version_id = 3,
>        .minimum_version_id = 3,
> +      .pre_load = kbd_pre_load,
> +      .post_load = kbd_post_load,
> +      .pre_save = kbd_pre_save,
>        .fields = (VMStateField[]) {
>            VMSTATE_UINT8(write_cmd, KBDState),
>            VMSTATE_UINT8(status, KBDState),
>            VMSTATE_UINT8(mode, KBDState),
> -          VMSTATE_UINT8(pending, KBDState),
> +          VMSTATE_UINT8(pending_tmp, KBDState),
>            VMSTATE_END_OF_LIST()
> +      },
> +      .subsections = (const VMStateDescription*[]) {
> +          &vmstate_kbd_outport,
> +          &vmstate_kbd_extended_state,
> +          NULL
>        }
>    };
> 
> @@ -278,7 +286,7 @@ Example:
>        IDEState *s = opaque;
> 
>        return ((s->status & DRQ_STAT) != 0)
> -          || (s->bus->error_status & BM_STATUS_PIO_RETRY);
> +          || (s->bus->error_status & IDE_RETRY_PIO);
>    }
> 
>    const VMStateDescription vmstate_ide_drive_pio_state = { @@ -312,6
> +320,8 @@ Example:
>        },
>        .subsections = (const VMStateDescription*[]) {
>            &vmstate_ide_drive_pio_state,
> +          &vmstate_ide_tray_state,
> +          &vmstate_ide_atapi_gesn_state,
>            NULL
>        }
>    };
> @@ -481,11 +491,11 @@ versions exist for high bandwidth IO.
> 
>  An iterative device must provide:
> 
> -  - A ``save_setup`` function that initialises the data structures and
> -    transmits a first section containing information on the device.  In the
> -    case of RAM this transmits a list of RAMBlocks and sizes.
> +  - A ``save_setup`` function that initialize the data structures and
> +    transmits a first section containing information on the device. In the
> +    case of RAM used to transmit a list of RAMBlocks and sizes.
> 
> -  - A ``load_setup`` function that initialises the data structures on the
> +  - A ``load_setup`` function that initialize the data structures on
> + the
>      destination.
> 
>    - A ``save_live_pending`` function that is called repeatedly and must @@ -
> 756,13 +766,13 @@ ADVISE->DISCARD->LISTEN->RUNNING->END
>      (the 'listen thread') which takes over the job of receiving
>      pages off the migration stream, while the main thread carries
>      on processing the blob.  With this thread able to process page
> -    reception, the destination now 'sensitises' the RAM to detect
> +    reception, the destination now 'sensitive' the RAM to detect
>      any access to missing pages (on Linux using the 'userfault'
>      system).
> 
>   - Running
> 
> -    POSTCOPY_RUN causes the destination to synchronise all
> +    POSTCOPY_RUN causes the destination to synchronize all
>      state and start the CPUs and IO devices running.  The main
>      thread now finishes processing the migration package and
>      now carries on as it would for normal precopy migration @@ -771,8 +781,8
> @@ ADVISE->DISCARD->LISTEN->RUNNING->END
> 
>   - End
> 
> -    The listen thread can now quit, and perform the cleanup of migration
> -    state, the migration is now complete.
> +    The listen thread already exited, and perform the cleanup of migration
> +    state, the migration has been completed.
> 
>  Source side page maps
>  ---------------------
> @@ -861,9 +871,9 @@ Firmware
>  ========
> 
>  Migration migrates the copies of RAM and ROM, and thus when running -on
> the destination it includes the firmware from the source. Even after -
> resetting a VM, the old firmware is used.  Only once QEMU has been
> restarted -is the new firmware in use.
> +on the destination it includes the firmware from the source. The old
> +firmware of the VM is still used even rebooted. And the new firmware
> +will not be loaded until QEMU is restarted.
> 
>  - Changes in firmware size can cause changes in the required RAMBlock size
>    to hold the firmware and thus migration can fail.  In practice it's best
> --
> 2.25.1




reply via email to

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