Re: [RFC PATCH v1 04/38] tsm: Support DMA Allocation from private memory

Aneesh Kumar K.V
2025-09-16T04:15:34Z

Mostafa Saleh <smostafa@google.com> 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