qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC for-next 0/2] QOM VMStateDescription remix


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [RFC for-next 0/2] QOM VMStateDescription remix
Date: Mon, 2 Sep 2013 14:41:09 +0300

On Mon, Jul 29, 2013 at 04:03:56AM +0200, Andreas Färber wrote:
> Hello,
> 
> Based on a comment from mst, this mini-series proposes to change semantics of
> VMStateDescription registration to be more similar to those of static 
> properties.
> 
> Today, a device has one VMStateDescription, the last assignment to dc->vmsd 
> wins.
> This means that a device must take care to include state of its parent type.
> To avoid dealing with individual fields, VMSTATE_STRUCT() and wrappers have
> been used. Such fields often require access of the deprecated QOM parent 
> field.
> 
> The proposal is that, e.g., TYPE_CPU assigns its own VMStateDescription and
> derived types (e.g., TYPE_ALPHA_CPU) register a VMStateDescription with name
> and versions to be used and only the fields specific to that type.
> In this v1, versions of the parents' vmsd are ignored, so someone changing 
> CPU's
> DeviceClass::vmsd (as opposed to DeviceClass::vmsd->fields[0].vmsd) would need
> to assure appropriate .field_exists tests or bump the version of derived 
> types'
> vmsd as if a field had been added there.
> 
> Only rudimentarily tested: I've run some machines that didn't crash on 
> startup.
> 
> Regards,
> Andreas
> 
> Cc: Michael S. Tsirkin <address@hidden>
> Cc: Juan Quintela <address@hidden>
> Cc: Anthony Liguori <address@hidden>
> Cc: Paolo Bonzini <address@hidden>

Overall okay
Acked-by: Michael S. Tsirkin <address@hidden>

but obviously this needs much more testing, in particular
you need to test migration, not just check that it doesn't
crash :)

Also - are there devices that already set vmstate at several levels?
If yes this will change the wire protocol won't it?

> Andreas Färber (2):
>   qdev: Construct VMStateDescription from type hierarchy
>   cpu: Move VMSTATE_CPU() into TYPE_CPU VMStateDescription
> 
>  hw/core/qdev.c            | 102 
> +++++++++++++++++++++++++++++++++++++++++-----
>  include/hw/qdev-core.h    |   1 +
>  include/qom/cpu.h         |   4 --
>  qom/cpu.c                 |  10 +++++
>  stubs/vmstate.c           |   1 +
>  target-alpha/machine.c    |   1 -
>  target-openrisc/machine.c |   1 -
>  7 files changed, 103 insertions(+), 17 deletions(-)
> 
> -- 
> 1.8.1.4



reply via email to

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