On 10/10/19 9:27 PM, Abdulla Bubshait wrote:
On Mon, 7 Oct 2019 18:11:32 -0300
Daniel Henrique Barboza <danielhb413 gmail com> wrote:
> These series tries to solve the partial assignment of multifunction
> hostdev PCI devices by introducing a new hostdev attribute called
> 'assigned'. This is how it works:
>
> - it is a boolean value that will be efffective just for
> multifunction hostdev PCI devices, since there's no other
> occurrence for this kind of use in Libvirt. Trying to
> declare assign='yes|no' in any other PCI hostdev device
> will cause parse errors;
I think this functionality should be available to all hostdev PCI
devices and not just multifunction ones. You might have several
devices that are part of the same IOMMU group that you don't mind
giving up from the host, but don't want to supply all of them to the
guest. This would be an alternative to using ACS patch in these
situations.
One example is having two nvme drives in a single IOMMU group, you
will be able to pass a single one to the guest rather than being
forced to pass both.
You're right. This can be extended to all PCI hostdev devices. The
conditions that I'm handling here (detaching/reattaching all the
devices that belongs in the same IOMMU) isn't exclusive to PCI
multifunction devices.
Thanks for the input. I'll re-spin this series considering all PCI hostdev
devices this time.
DHB