Message ID | 1459785281-6686-1-git-send-email-dgilbert@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 04/04/2016 06:54 PM, Dr. David Alan Gilbert (git) wrote: > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > > The i82801b11 bridge didn't have a vmsd and thus didn't send > any migration data, including that of its parent PCIBridge object. > The symptom being if the guest used any devices behind the bridge > the guest crashed (mostly with various interrupt related issues). > > Note: This will cause migration from old qemus that used this device to > explicitly fail during migration as opposed to the guest crashing. > > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> > Suggested-by: Marcel Apfelbaum <marcel@redhat.com> > --- > hw/pci-bridge/i82801b11.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/hw/pci-bridge/i82801b11.c b/hw/pci-bridge/i82801b11.c > index 5c40708..2404e7e 100644 > --- a/hw/pci-bridge/i82801b11.c > +++ b/hw/pci-bridge/i82801b11.c > @@ -78,6 +78,14 @@ err_bridge: > return rc; > } > > +static const VMStateDescription i82801b11_bridge_dev_vmstate = { > + .name = "i82801b11_bridge", > + .fields = (VMStateField[]) { > + VMSTATE_PCI_DEVICE(parent_obj, PCIBridge), > + VMSTATE_END_OF_LIST() > + } > +}; > + > static void i82801b11_bridge_class_init(ObjectClass *klass, void *data) > { > PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); > @@ -89,6 +97,7 @@ static void i82801b11_bridge_class_init(ObjectClass *klass, void *data) > k->revision = ICH9_D2P_A2_REVISION; > k->init = i82801b11_bridge_initfn; > k->config_write = pci_bridge_write_config; > + dc->vmsd = &i82801b11_bridge_dev_vmstate; > set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); > } > > If this patch was enough we got lucky :) Is not too late to make it to 2.6, right? Reviewed-by: Marcel Apfelbaum <marcel@redhat.com> Thanks, Marcel
On 4 April 2016 at 17:14, Marcel Apfelbaum <marcel@redhat.com> wrote: > On 04/04/2016 06:54 PM, Dr. David Alan Gilbert (git) wrote: >> >> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> >> >> The i82801b11 bridge didn't have a vmsd and thus didn't send >> any migration data, including that of its parent PCIBridge object. >> The symptom being if the guest used any devices behind the bridge >> the guest crashed (mostly with various interrupt related issues). >> >> Note: This will cause migration from old qemus that used this device to >> explicitly fail during migration as opposed to the guest crashing. > If this patch was enough we got lucky :) > Is not too late to make it to 2.6, right? You should add a line to http://wiki.qemu.org/Planning/2.6#Known_issues for things you think should be fixed for 2.6... thanks -- PMM
* Peter Maydell (peter.maydell@linaro.org) wrote: > On 4 April 2016 at 17:14, Marcel Apfelbaum <marcel@redhat.com> wrote: > > On 04/04/2016 06:54 PM, Dr. David Alan Gilbert (git) wrote: > >> > >> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> > >> > >> The i82801b11 bridge didn't have a vmsd and thus didn't send > >> any migration data, including that of its parent PCIBridge object. > >> The symptom being if the guest used any devices behind the bridge > >> the guest crashed (mostly with various interrupt related issues). > >> > >> Note: This will cause migration from old qemus that used this device to > >> explicitly fail during migration as opposed to the guest crashing. > > > If this patch was enough we got lucky :) > > Is not too late to make it to 2.6, right? > > You should add a line to > http://wiki.qemu.org/Planning/2.6#Known_issues > for things you think should be fixed for 2.6... It would be nice for it to be in 2.6, however it's not actually a 2.6 regression, it's been broken forever, but the difference is that libvirt started using that bridge for q35 recently. Dave > thanks > -- PMM -- Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On 04/04/2016 18:40, Dr. David Alan Gilbert wrote: > It would be nice for it to be in 2.6, however it's not actually > a 2.6 regression, it's been broken forever, but the difference > is that libvirt started using that bridge for q35 recently. I think we should fix it, hard freeze is not limited to regressions. Paolo
On 04/04/2016 07:37 PM, Peter Maydell wrote: > On 4 April 2016 at 17:14, Marcel Apfelbaum <marcel@redhat.com> wrote: >> On 04/04/2016 06:54 PM, Dr. David Alan Gilbert (git) wrote: >>> >>> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com> >>> >>> The i82801b11 bridge didn't have a vmsd and thus didn't send >>> any migration data, including that of its parent PCIBridge object. >>> The symptom being if the guest used any devices behind the bridge >>> the guest crashed (mostly with various interrupt related issues). >>> >>> Note: This will cause migration from old qemus that used this device to >>> explicitly fail during migration as opposed to the guest crashing. > >> If this patch was enough we got lucky :) >> Is not too late to make it to 2.6, right? > > You should add a line to > http://wiki.qemu.org/Planning/2.6#Known_issues > for things you think should be fixed for 2.6... > Done. Thanks, Marcel > thanks > -- PMM >
diff --git a/hw/pci-bridge/i82801b11.c b/hw/pci-bridge/i82801b11.c index 5c40708..2404e7e 100644 --- a/hw/pci-bridge/i82801b11.c +++ b/hw/pci-bridge/i82801b11.c @@ -78,6 +78,14 @@ err_bridge: return rc; } +static const VMStateDescription i82801b11_bridge_dev_vmstate = { + .name = "i82801b11_bridge", + .fields = (VMStateField[]) { + VMSTATE_PCI_DEVICE(parent_obj, PCIBridge), + VMSTATE_END_OF_LIST() + } +}; + static void i82801b11_bridge_class_init(ObjectClass *klass, void *data) { PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); @@ -89,6 +97,7 @@ static void i82801b11_bridge_class_init(ObjectClass *klass, void *data) k->revision = ICH9_D2P_A2_REVISION; k->init = i82801b11_bridge_initfn; k->config_write = pci_bridge_write_config; + dc->vmsd = &i82801b11_bridge_dev_vmstate; set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); }