[PATCH 4/6] qemu: assign PCI address to device pvpanic-pci
Eric Auger
eric.auger at redhat.com
Thu Feb 9 17:26:14 UTC 2023
Hi A?drea, Kristina,
On 2/9/23 17:33, Andrea Bolognani wrote:
> On Wed, Feb 08, 2023 at 12:49:03PM +0100, Kristina Hanicova wrote:
>> +++ b/src/qemu/qemu_domain_address.c
>> @@ -1062,10 +1062,24 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDef *dev,
>> }
>> break;
>>
>> + case VIR_DOMAIN_DEVICE_PANIC:
>> + switch ((virDomainPanicModel) dev->data.panic->model) {
>> + case VIR_DOMAIN_PANIC_MODEL_PVPANIC:
>> + return pciFlags;
> So, this is correct, because pvpanic-pci is indeed a conventional PCI
> device (as opposed to a PCI Express device).
>
> However, when used with a PCIe-based machine such as aarch64/virt,
> these flags result in the device being plugged into a
> pcie-pci-bridge, which in turn is plugged into a pcie-root-port,
> itself plugged into pcie.0.
>
> While this seems to work fine, it's also kind of a waste of PCI
> controllers. For a "system" device such as pvpanic-pci, I think
> plugging directly into pcie.0 might be more appropriate. This is
> particularly true of x86/q35, where with the current implementation
> switching from ISA pvpanic to pvpanic-pci would result in adding two
> extra PCI controllers.
>
> So I think this would be a good fit for the
> VIR_PCI_CONNECT_INTEGRATED flag that I've added a while ago for use
> with virtio-iommu. While this would technically result in libvirt
> being more restrictive than QEMU in what PCI addresses it accepts for
> pvpanic-pci, I don't think this would limit users in practice, and in
> the default case (libvirt automatically picking the address) the
> resulting configuration would be preferable.
>
> We can always decide to relax this restriction later down the line,
> if it turns out to really be a limiting factor.
>
> Eric, what do you think about this idea?
I do agree. If we can avoid putting that device downstream to a
pcie-to-pci bridge that's much better. Putting it onto pcie.0 looks more
appropriate to me indeed.
Thanks
Eric
>
>
> (There's one caveat: VIR_PCI_CONNECT_INTEGRATED doesn't seem to work
> with pciFlags at the moment O:-) It works fine with pcieFlags and
> virtioFlags. I'll try to figure out why that's the case.)
>
More information about the libvir-list
mailing list