Re: [PATCH 2/4] iommu: Add PASID support for DMA mapping API users

From: Lu Baolu
Date: Tue Dec 07 2021 - 21:32:03 EST


Hi Jacob,

On 12/7/21 9:47 PM, Jacob Pan wrote:
DMA mapping API is the de facto standard for in-kernel DMA. It operates
on a per device/RID basis which is not PASID-aware.

Some modern devices such as Intel Data Streaming Accelerator, PASID is
required for certain work submissions. To allow such devices use DMA
mapping API, we need the following functionalities:
1. Provide device a way to retrieve a kernel PASID for work submission
2. Enable the kernel PASID on the IOMMU
3. Establish address space for the kernel PASID that matches the default
domain. Let it be IOVA or physical address in case of pass-through.

This patch introduces a driver facing API that enables DMA API
PASID usage. Once enabled, device drivers can continue to use DMA APIs as
is. There is no difference in dma_handle between without PASID and with
PASID.

Can a device issue DMA requests with PASID even there's no system IOMMU
or the system IOMMU is disabled?

Best regards,
baolu