Re: Phyr Starter

From: Robin Murphy
Date: Thu Jan 20 2022 - 12:54:53 EST


On 2022-01-20 15:27, Keith Busch wrote:
On Thu, Jan 20, 2022 at 02:56:02PM +0100, Christoph Hellwig wrote:
- on the input side to dma mapping the bio_vecs (or phyrs) are chained
as bios or whatever the containing structure is. These already exist
and have infrastructure at least in the block layer
- on the output side I plan for two options:

1) we have a sane IOMMU and everyting will be coalesced into a
single dma_range. This requires setting the block layer
merge boundary to match the IOMMU page size, but that is
a very good thing to do anyway.

It doesn't look like IOMMU page sizes are exported, or even necessarily
consistently sized on at least one arch (power).

FWIW POWER does its own thing separate from the IOMMU API. For all the regular IOMMU API players, page sizes are published in the iommu_domain that the common iommu-dma layer operates on. In fact it already uses them to pick chunk sizes for composing large buffer allocations.

Robin.