[Qemu-devel] [PATCH] xen-pvdevice: Introduce a simplistic xen-pvdevice save state

2018-03-08 Thread Igor Druzhinin
This should help to avoid problems with accessing the device after
migration/resume without PV drivers. Older systems will acquire
the new record when migrated which should not change their state for
worse.

Signed-off-by: Igor Druzhinin 
---
 hw/i386/xen/xen_pvdevice.c | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c
index c093b34..ef22a03 100644
--- a/hw/i386/xen/xen_pvdevice.c
+++ b/hw/i386/xen/xen_pvdevice.c
@@ -71,6 +71,16 @@ static const MemoryRegionOps xen_pv_mmio_ops = {
 .endianness = DEVICE_LITTLE_ENDIAN,
 };
 
+static const VMStateDescription vmstate_xen_pvdevice = {
+.name = "xen-pvdevice",
+.version_id = 1,
+.minimum_version_id = 1,
+.fields = (VMStateField[]) {
+VMSTATE_PCI_DEVICE(parent_obj, XenPVDevice),
+VMSTATE_END_OF_LIST()
+}
+};
+
 static void xen_pv_realize(PCIDevice *pci_dev, Error **errp)
 {
 XenPVDevice *d = XEN_PV_DEVICE(pci_dev);
@@ -120,6 +130,7 @@ static void xen_pv_class_init(ObjectClass *klass, void 
*data)
 k->class_id = PCI_CLASS_SYSTEM_OTHER;
 dc->desc = "Xen PV Device";
 dc->props = xen_pv_props;
+dc->vmsd = &vmstate_xen_pvdevice;
 }
 
 static const TypeInfo xen_pv_type_info = {
-- 
2.7.4




Re: [Qemu-devel] [PATCH] xen-pvdevice: Introduce a simplistic xen-pvdevice save state

2018-03-09 Thread Anthony PERARD
On Thu, Mar 08, 2018 at 12:52:31PM +, Igor Druzhinin wrote:
> This should help to avoid problems with accessing the device after
> migration/resume without PV drivers. Older systems will acquire
> the new record when migrated which should not change their state for
> worse.
> 
> Signed-off-by: Igor Druzhinin 

Acked-by: Anthony PERARD 

Thanks,

-- 
Anthony PERARD



Re: [Qemu-devel] [PATCH] xen-pvdevice: Introduce a simplistic xen-pvdevice save state

2018-03-11 Thread Stefano Stabellini
On Thu, 8 Mar 2018, Igor Druzhinin wrote:
> This should help to avoid problems with accessing the device after
> migration/resume without PV drivers. Older systems will acquire
> the new record when migrated which should not change their state for
> worse.

Could you please explain what problems this patch is helping avoid? And
also how this patch is helping exactly?

Please add more concrete info.


> Signed-off-by: Igor Druzhinin 
> ---
>  hw/i386/xen/xen_pvdevice.c | 11 +++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c
> index c093b34..ef22a03 100644
> --- a/hw/i386/xen/xen_pvdevice.c
> +++ b/hw/i386/xen/xen_pvdevice.c
> @@ -71,6 +71,16 @@ static const MemoryRegionOps xen_pv_mmio_ops = {
>  .endianness = DEVICE_LITTLE_ENDIAN,
>  };
>  
> +static const VMStateDescription vmstate_xen_pvdevice = {
> +.name = "xen-pvdevice",
> +.version_id = 1,
> +.minimum_version_id = 1,
> +.fields = (VMStateField[]) {
> +VMSTATE_PCI_DEVICE(parent_obj, XenPVDevice),
> +VMSTATE_END_OF_LIST()
> +}
> +};
> +
>  static void xen_pv_realize(PCIDevice *pci_dev, Error **errp)
>  {
>  XenPVDevice *d = XEN_PV_DEVICE(pci_dev);
> @@ -120,6 +130,7 @@ static void xen_pv_class_init(ObjectClass *klass, void 
> *data)
>  k->class_id = PCI_CLASS_SYSTEM_OTHER;
>  dc->desc = "Xen PV Device";
>  dc->props = xen_pv_props;
> +dc->vmsd = &vmstate_xen_pvdevice;
>  }
>  
>  static const TypeInfo xen_pv_type_info = {
> -- 
> 2.7.4
> 



Re: [Qemu-devel] [PATCH] xen-pvdevice: Introduce a simplistic xen-pvdevice save state

2018-03-08 Thread Paul Durrant
> -Original Message-
> From: Igor Druzhinin [mailto:igor.druzhi...@citrix.com]
> Sent: 08 March 2018 12:53
> To: qemu-devel@nongnu.org; xen-de...@lists.xenproject.org
> Cc: sstabell...@kernel.org; Paul Durrant ; Anthony
> Perard ; m...@redhat.com;
> pbonz...@redhat.com; Igor Druzhinin 
> Subject: [PATCH] xen-pvdevice: Introduce a simplistic xen-pvdevice save
> state
> 
> This should help to avoid problems with accessing the device after
> migration/resume without PV drivers. Older systems will acquire
> the new record when migrated which should not change their state for
> worse.
> 
> Signed-off-by: Igor Druzhinin 

Reviewed-by: Paul Durrant 

> ---
>  hw/i386/xen/xen_pvdevice.c | 11 +++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c
> index c093b34..ef22a03 100644
> --- a/hw/i386/xen/xen_pvdevice.c
> +++ b/hw/i386/xen/xen_pvdevice.c
> @@ -71,6 +71,16 @@ static const MemoryRegionOps xen_pv_mmio_ops = {
>  .endianness = DEVICE_LITTLE_ENDIAN,
>  };
> 
> +static const VMStateDescription vmstate_xen_pvdevice = {
> +.name = "xen-pvdevice",
> +.version_id = 1,
> +.minimum_version_id = 1,
> +.fields = (VMStateField[]) {
> +VMSTATE_PCI_DEVICE(parent_obj, XenPVDevice),
> +VMSTATE_END_OF_LIST()
> +}
> +};
> +
>  static void xen_pv_realize(PCIDevice *pci_dev, Error **errp)
>  {
>  XenPVDevice *d = XEN_PV_DEVICE(pci_dev);
> @@ -120,6 +130,7 @@ static void xen_pv_class_init(ObjectClass *klass, void
> *data)
>  k->class_id = PCI_CLASS_SYSTEM_OTHER;
>  dc->desc = "Xen PV Device";
>  dc->props = xen_pv_props;
> +dc->vmsd = &vmstate_xen_pvdevice;
>  }
> 
>  static const TypeInfo xen_pv_type_info = {
> --
> 2.7.4