The IOVA domain structure is a bit overloaded, holding: - IOVA tree management - FQ control - IOVA rcache memories
Indeed only a couple of IOVA users use the rcache, and only dma-iommu.c uses the FQ feature. This series separates out that structure. In addition, it moves the FQ code into dma-iommu.c . This is not strictly necessary, but it does make it easier for the FQ domain lookup the rcache domain. The rcache code stays where it is, as it may be reworked in future, so there is not much point in relocating and then discarding. This topic was initially discussed and suggested (I think) by Robin here: https://lore.kernel.org/linux-iommu/1d06eda1-9961-d023-f5e7-fe87e768f...@arm.com/ I also added in another old patch to avoid double-negatives now that the error handling is a bit better for IOVA init code: https://lore.kernel.org/linux-iommu/YAVeDOiKBEKZ2Tdq@myrica/ Baseline is v5.15-rc2 John Garry (5): iova: Move fast alloc size roundup into alloc_iova_fast() iommu: Separate flush queue memories from IOVA domain structure iommu: Move IOVA flush queue code to dma-iommu iommu: Separate IOVA rcache memories from iova_domain structure iommu/iova: Avoid double-negatives in magazine helpers drivers/iommu/dma-iommu.c | 341 +++++++++++++++++++++++--- drivers/iommu/iova.c | 343 ++++++++------------------- drivers/vdpa/vdpa_user/iova_domain.c | 61 ++--- drivers/vdpa/vdpa_user/iova_domain.h | 4 +- include/linux/iova.h | 82 +------ 5 files changed, 451 insertions(+), 380 deletions(-) -- 2.26.2 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu