[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 4/4] vl: Prioritize realizations of devices
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 4/4] vl: Prioritize realizations of devices |
Date: |
Wed, 25 Aug 2021 11:39:32 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
Peter Xu <peterx@redhat.com> writes:
> 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,
Is it really a good idea to magically reorder device realization just to
make a non-working command line work? Why can't we just fail the
non-working command line in a way that tells users how to get a working
one? We have way too much ordering magic already...
If we decide we want more magic, then I'd argue for *dependencies*
instead of priorities. Dependencies are specific and local: $this needs
to go after $that because $reasons. Priorities are unspecific and
global.
- [PATCH 3/4] qdev: Export qdev_get_device_class(), (continued)
- [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, 2021/08/23
- Re: [PATCH 4/4] vl: Prioritize realizations of devices,
Markus Armbruster <=
- 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
- Re: [PATCH 4/4] vl: Prioritize realizations of devices, Michael S. Tsirkin, 2021/08/23