[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [RFC] xen/arm: introduce XENFEAT_ARM_dom0_iommu
On 17.02.2021 16:34, Bertrand Marquis wrote: >> On 17 Feb 2021, at 02:00, Stefano Stabellini <sstabellini@xxxxxxxxxx> wrote: >> Today Linux uses the swiotlb-xen driver (drivers/xen/swiotlb-xen.c) to >> translate addresses for DMA operations in Dom0. Specifically, >> swiotlb-xen is used to translate the address of a foreign page (a page >> belonging to a domU) mapped into Dom0 before using it for DMA. >> >> This is important because although Dom0 is 1:1 mapped, DomUs are not. On >> systems without an IOMMU swiotlb-xen enables PV drivers to work as long >> as the backends are in Dom0. Thanks to swiotlb-xen, the DMA operation >> ends up using the MFN, rather than the GFN. >> >> >> On systems with an IOMMU, this is not necessary: when a foreign page is >> mapped in Dom0, it is added to the Dom0 p2m. A new GFN->MFN translation >> is enstablished for both MMU and SMMU. Dom0 could safely use the GFN >> address (instead of the MFN) for DMA operations and they would work. It >> would be more efficient than using swiotlb-xen. >> >> If you recall my presentation from Xen Summit 2020, Xilinx is working on >> cache coloring. With cache coloring, no domain is 1:1 mapped, not even >> Dom0. In a scenario where Dom0 is not 1:1 mapped, swiotlb-xen does not >> work as intended. >> >> >> The suggested solution for both these issues is to add a new feature >> flag "XENFEAT_ARM_dom0_iommu" that tells Dom0 that it is safe not to use >> swiotlb-xen because IOMMU translations are available for Dom0. If >> XENFEAT_ARM_dom0_iommu is set, Linux should skip the swiotlb-xen >> initialization. I have tested this scheme with and without cache >> coloring (hence with and without 1:1 mapping of Dom0) on ZCU102 and it >> works as expected: DMA operations succeed. > > Wouldn’t it be easier to name the flag XENFEAT_ARM_swiotlb_needed ? Except that "swiotlb" is Linux terminology, which I don't think a Xen feature should be named after. Names should be generic, except maybe when they're really targeting exactly one kind of guest (which imo would better never be the case). Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |