Am 29.07.2013 02:26, schrieb Andreas Färber: > Hello Michael and Gerd, > > As discussed, this series attempts to clean up PCIe devices fiddling with > individual PCI VMStateFields. It is based on my qom-devices queue, containing > changes to PCIe devices. > > v2 has been changed to use VMStateField::field_exists instead of subsections > and unifies PCI and PCIe. Making MSI-X such a conditional field affects PCI, > too, > now and therefore requires incompatible changes to VMXNET3 PCI NIC. > > This has been successfully tested with a selection of PCI and PCIe devices > on -machine pc (-machine q35 is unfortunately unmigratable due to ich9-ahci) > and shows identically sized state files (for "exec:cat > pc-pci.state") and > no immediate crashes. Not 1.6 material.
Ping! Stefan requested researching a solution that doesn't break vmxnet3 migration compatibility, but previous patches are waiting for review. Andreas > > A QOM follow-up RFC will be sent out shortly. > > Regards, > Andreas > > v1 -> v2: > * Prepended patches to drop VMSTATE_{PCI,PCIE}_DEVICE() arguments. > * Added patch to introduce VMSTATE_BUFFER_UNSAFE_INFO_TEST() macro. > * Unified PCI and PCIe VMStateDescriptions (mst). > * Instead of moving & turning into subsection, make AER log conditional field. > * Instead of subsection, make MSI-X a conditional field. > > Cc: Michael S. Tsirkin <m...@redhat.com> > Cc: Gerd Hoffmann <kra...@redhat.com> > Cc: Stefan Hajnoczi <stefa...@gmail.com> > Cc: Juan Quintela <quint...@redhat.com> > > Andreas Färber (6): > pci: Simplify VMSTATE_PCI_DEVICE() macro > pci: Simplify VMSTATE_PCIE_DEVICE() macro > vmstate: Introduce VMSTATE_BUFFER_UNSAFE_INFO_TEST() > pci: Unify vmstate_{pci,pcie}_device > pci: Move vmstate_pcie_aer_log into vmstate_pci_device > pci: Move VMSTATE_MSIX() into vmstate_pci_device > > hw/acpi/piix4.c | 2 +- > hw/audio/ac97.c | 2 +- > hw/audio/es1370.c | 2 +- > hw/audio/intel-hda.c | 2 +- > hw/char/serial-pci.c | 4 +-- > hw/char/tpci200.c | 2 +- > hw/display/cirrus_vga.c | 2 +- > hw/display/qxl.c | 2 +- > hw/display/vga-pci.c | 2 +- > hw/display/vmware_vga.c | 2 +- > hw/i2c/smbus_ich9.c | 2 +- > hw/ide/ich.c | 2 +- > hw/ide/pci.c | 2 +- > hw/isa/i82378.c | 2 +- > hw/isa/lpc_ich9.c | 2 +- > hw/isa/piix4.c | 2 +- > hw/isa/vt82c686.c | 4 +-- > hw/misc/ivshmem.c | 7 ++-- > hw/net/e1000.c | 2 +- > hw/net/eepro100.c | 2 +- > hw/net/ne2000.c | 2 +- > hw/net/pcnet-pci.c | 2 +- > hw/net/rtl8139.c | 2 +- > hw/net/vmxnet3.c | 29 +++------------ > hw/pci-bridge/ioh3420.c | 4 +-- > hw/pci-bridge/pci_bridge_dev.c | 2 +- > hw/pci-bridge/xio3130_downstream.c | 4 +-- > hw/pci-bridge/xio3130_upstream.c | 4 +-- > hw/pci-host/bonito.c | 2 +- > hw/pci-host/piix.c | 4 +-- > hw/pci-host/prep.c | 2 +- > hw/pci-host/q35.c | 2 +- > hw/pci/pci.c | 73 > +++++++++++++++++++++++--------------- > hw/pci/pcie_aer.c | 1 + > hw/scsi/esp-pci.c | 2 +- > hw/scsi/lsi53c895a.c | 2 +- > hw/scsi/megasas.c | 2 +- > hw/scsi/vmw_pvscsi.c | 2 +- > hw/usb/hcd-ehci-pci.c | 2 +- > hw/usb/hcd-uhci.c | 2 +- > hw/usb/hcd-xhci.c | 3 +- > hw/virtio/virtio-pci.c | 19 +++++----- > hw/watchdog/wdt_i6300esb.c | 2 +- > hw/xen/xen_platform.c | 2 +- > include/hw/pci/msix.h | 7 ++-- > include/hw/pci/pci.h | 6 ++-- > include/hw/pci/pcie.h | 10 ------ > include/migration/vmstate.h | 6 +++- > 48 files changed, 116 insertions(+), 133 deletions(-) > -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg