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 <igor.druzhinin@citrix.com>
---
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
> -----Original Message----- > From: Igor Druzhinin [mailto:igor.druzhinin@citrix.com] > Sent: 08 March 2018 12:53 > To: qemu-devel@nongnu.org; xen-devel@lists.xenproject.org > Cc: sstabellini@kernel.org; Paul Durrant <Paul.Durrant@citrix.com>; Anthony > Perard <anthony.perard@citrix.com>; mst@redhat.com; > pbonzini@redhat.com; Igor Druzhinin <igor.druzhinin@citrix.com> > 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 <igor.druzhinin@citrix.com> Reviewed-by: Paul Durrant <paul.durrant@citrix.com> > --- > 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
On Thu, Mar 08, 2018 at 12:52:31PM +0000, 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 <igor.druzhinin@citrix.com> Acked-by: Anthony PERARD <anthony.perard@citrix.com> Thanks, -- Anthony PERARD
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 <igor.druzhinin@citrix.com> > --- > 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 >
© 2016 - 2024 Red Hat, Inc.