[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] docs: fusa: Add requirements for Device Passthrough



Hi Bertrand,

On 09/10/2024 07:30, Bertrand Marquis wrote:
Hi Stefano,

On 9 Oct 2024, at 00:46, Stefano Stabellini <sstabellini@xxxxxxxxxx> wrote:

On Tue, 8 Oct 2024, Oleksandr Tyshchenko wrote:
On 7 Oct 2024, at 20:55, Oleksandr Tyshchenko <olekstysh@xxxxxxxxx> wrote:
+
+Rationale:
+
+Comments:
+
+Covers:
+ - `XenProd~device_passthrough~1`
+
+Assign PCI device to domain (with IOMMU)
+----------------------------------------
+
+`XenSwdgn~passthrough_assign_pci_device_with_iommu~1`
+
+Description:
+Xen shall assign a specified PCI device (always implied as DMA-capable)
to
+a domain during its creation using passthrough (partial) device tree on
Arm64
+and Hyperlaunch device tree on AMD-x86. The physical device to be
assigned is
+protected by the IOMMU.

This is a very long and complex requirement.
I would suggest to split it in 3:
- generic: Xen shall support assign PCI devices to domains.
- arm64 one: Xen shall assign PCI devices based on device tree (explain how
this is configured in dts)
- amd: xxxx based on hyperlaunch

I agree, will split, but ...

- Xen shall use the IOMMU to enforce DMA operations done by a PCI device
assigned to a domain to be restricted to the memory of the given domain.


... does this need to be a separate 4th requirement here (and for the similar
requirement for the platform device down the document) or this sentence is
meant to be added to all resulting generic/arm64/amd requirements?

This is not specific to PCI, though? The generic requirement is "Xen
shall use the IOMMU to enforce DMA operations done by a DMA-capable
device assigned to a domain to be restricted to the memory of the given
domain".

I think it is also OK to both have a PCI-specific and a
non-PCI-specific requirement for that, I just wanted to mention that it
doesn't look like something to PCI-specific.

I think we should completely abstract out the DMA engine problem as it
is not specific to a PCI or not device but to any DMA capable stuff.

+1


Maybe the same also goes for interrupts and how those are assigned or
forwarded or not to a domain (attached or not to a device).

I am not sure we can abstract this one because:
* For platform devices, we should be able to support SPIs and MSI(-x) (only the former is so far). * For PCI devices, at least on Arm, AFAIR, we only intend to support MSI(-x).

Cheers,

--
Julien Grall



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.