[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC for-1.6 qom-next 0/3] PCIe VMState cleanups
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH RFC for-1.6 qom-next 0/3] PCIe VMState cleanups for 1.6 |
Date: |
Sun, 28 Jul 2013 16:26:08 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7 |
Am 28.07.2013 15:44, schrieb Andreas Färber:
> Am 28.07.2013 03:41, schrieb Andreas Färber:
>> Patch 1 assumes the following are equivalent:
>> a) - Struct A
>> - Field Aa
>> ...
>> - Field X
>> ...
>> b) - Struct A
>> - Field Aa
>> ...
>> - Field X
>>
>> Patch 2 relies on XHCI not being released yet, thus no compatibiliy concerns.
>>
>> Patch 3 assumes the following are equivalent:
>> a) - Struct A
>> - Field Aa
>> ...
>> - Field X
>> b) - Struct A
>> - Field Aa
>> ...
>> - Subsection Ax
>> - Field X
>>
>> CC'ing Juan to verify which of these are correct/safe.
>
> If the answer is "doing both as subsections will work fine" then this
> series could be postponed post-1.6, of course.
>
> Looking deeper at PCI devices, I notice that while XHCI was the only
> device to use VMSTATE_MSIX() macro, other devices were using
> msix_init*() as well, namely
> * nvme (unmigratable)
> * pci-assign (unmigratable)
> * vfio (unmigratable)
> * vmxnet3 - does an extra register_savevm() just for msix_save()
> * ivshmem - calling msix_save() conditionally after pci_device_save()
> * virtio-pci - calling msix_save() conditionally after pci_device_save()
Sorry, unconditionally, but msix_save() is no-op if !msix_present(), so
effect is the same - stored immediately after for some devices, with
ivshmem using its own qdev property condition hopefully equivalent to
msix_present() and vmxnet3 breaking that scheme.
While pci_device_save() internally reuses vmstate_pci[e]_device, neither
ivshmem nor virtio-pci set PCIDeviceClass::is_express, so are unaffected
by changes of vmstate_pcie_device in this series.
Stefan, do you see bumping vmxnet3 version_id post-1.6 as an acceptable
solution? Then we could make MSI-X a vmstate_pci_device subsection, too,
if I'm not making a thinko.
Andreas
> * megasas - #ifdef USE_MSIX'ed out, will need changes
>
> CC'ing net and scsi maintainers and Hannes.
>
> Regards,
> Andreas
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
- [Qemu-devel] [PATCH RFC for-1.6 qom-next 0/3] PCIe VMState cleanups for 1.6, Andreas Färber, 2013/07/27
- [Qemu-devel] [PATCH RFC for-1.6 qom-next 2/3] pci: Add MSIX subsection for vmstate_pcie_device, Andreas Färber, 2013/07/27
- [Qemu-devel] [PATCH RFC for-1.6 qom-next 1/3] pcie: Move AER log into VMSTATE_PCIE_DEVICE(), Andreas Färber, 2013/07/27
- [Qemu-devel] [PATCH RFC for-1.6 qom-next 3/3] pci: Move AER log into VMStateSubsection, Andreas Färber, 2013/07/27
- Re: [Qemu-devel] [PATCH RFC for-1.6 qom-next 0/3] PCIe VMState cleanups for 1.6, Andreas Färber, 2013/07/28
- Re: [Qemu-devel] [PATCH RFC for-1.6 qom-next 0/3] PCIe VMState cleanups for 1.6,
Andreas Färber <=
- Re: [Qemu-devel] [PATCH RFC for-1.6 qom-next 0/3] PCIe VMState cleanups for 1.6, Michael S. Tsirkin, 2013/07/28