Re: [RFC PATCH v1 04/38] tsm: Support DMA Allocation from private memory
From: Aneesh Kumar K . V
Date: Tue Sep 16 2025 - 00:15:56 EST
Mostafa Saleh <smostafa@xxxxxxxxxx> writes:
> Hi Aneesh,
>
> On Mon, Jul 28, 2025 at 07:21:41PM +0530, Aneesh Kumar K.V (Arm) wrote:
>> Currently, we enforce the use of bounce buffers to ensure that memory
>> accessed by non-secure devices is explicitly shared with the host [1].
>> However, for secure devices, this approach must be avoided.
>
>
> Sorry this might be a basic question, I just started looking into this.
> I see that “force_dma_unencrypted” and “is_swiotlb_force_bounce” are only
> used from DMA-direct, but it seems in your case it involves an IOMMU.
> How does it influence bouncing in that case?
>
With the current patchset, the guest does not have an assigned IOMMU (no
Stage1 SMMU), so guest DMA operations use DMA-direct.
For non-secure devices:
- Streaming DMA uses swiotlb, which is a shared pool with the hypervisor.
- Non-streaming DMA uses DMA-direct, and the attributes of the allocated
memory are updated with dma_set_decrypted().
For secure devices, neither of these mechanisms is needed.
-aneesh