[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 4/4] vl: Prioritize realizations of devices
From: |
Peter Xu |
Subject: |
Re: [PATCH 4/4] vl: Prioritize realizations of devices |
Date: |
Mon, 23 Aug 2021 19:05:52 -0400 |
On Mon, Aug 23, 2021 at 05:56:23PM -0400, Eduardo Habkost wrote:
> I don't have any other example, but I assume address assignment
> based on ordering is a common pattern in device code.
>
> I would take a very close and careful look at the devices with
> non-default vmsd priority. If you can prove that the 13 device
> types with non-default priority are all order-insensitive, a
> custom sort function as you describe might be safe.
Besides virtio-mem-pci, there'll also similar devfn issue with all
MIG_PRI_PCI_BUS, as they'll be allocated just like other pci devices. Say,
below two cmdlines will generate different pci topology too:
$ qemu-system-x86_64 -device pcie-root-port,chassis=0 \
-device pcie-root-port,chassis=1 \
-device virtio-net-pci
And:
$ qemu-system-x86_64 -device pcie-root-port,chassis=0 \
-device virtio-net-pci
-device pcie-root-port,chassis=1 \
This cannot be solved by keeping priority==0 ordering.
After a second thought, I think I was initially wrong on seeing migration
priority and device realization the same problem.
For example, for live migration we have a requirement on PCI_BUS being migrated
earlier than MIG_PRI_IOMMU because there's bus number information required
because IOMMU relies on the bus number to find address spaces. However that's
definitely not a requirement for device realizations, say, realizing vIOMMU
after pci buses are fine (bus assigned during bios).
I've probably messed up with the ideas (though they really look alike!). Sorry
about that.
Since the only ordering constraint so far is IOMMU vs all the rest of devices,
I'll introduce a new priority mechanism and only make sure vIOMMUs are realized
earlier. That'll also avoid other implications on pci devfn allocations.
Will rework a new version tomorrow. Thanks a lot for all the comments,
--
Peter Xu
- [PATCH 2/4] qemu-config: Allow in-place sorting of QemuOptsList, (continued)
- [PATCH 2/4] qemu-config: Allow in-place sorting of QemuOptsList, Peter Xu, 2021/08/18
- [PATCH 3/4] qdev: Export qdev_get_device_class(), Peter Xu, 2021/08/18
- [PATCH 4/4] vl: Prioritize realizations of devices, Peter Xu, 2021/08/18
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Eduardo Habkost, 2021/08/23
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Peter Xu, 2021/08/23
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Eduardo Habkost, 2021/08/23
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Peter Xu, 2021/08/23
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Michael S. Tsirkin, 2021/08/23
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Peter Xu, 2021/08/23
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Eduardo Habkost, 2021/08/23
- Re: [PATCH 4/4] vl: Prioritize realizations of devices,
Peter Xu <=
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Markus Armbruster, 2021/08/25
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Markus Armbruster, 2021/08/25
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Peter Xu, 2021/08/25
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Peter Xu, 2021/08/25
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Markus Armbruster, 2021/08/26
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Igor Mammedov, 2021/08/26
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Peter Xu, 2021/08/26
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Peter Xu, 2021/08/30
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Markus Armbruster, 2021/08/31
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Markus Armbruster, 2021/08/26