[PATCH v2 5/8] dma-mapping: Support batch mode for dma_direct_sync_sg_for_*
Barry Song
21cnbao at gmail.com
Sat Dec 27 12:52:05 PST 2025
On Sun, Dec 28, 2025 at 9:09 AM Leon Romanovsky <leon at kernel.org> wrote:
>
> On Sat, Dec 27, 2025 at 11:52:45AM +1300, Barry Song wrote:
> > From: Barry Song <baohua at kernel.org>
> >
> > Instead of performing a flush per SG entry, issue all cache
> > operations first and then flush once. This ultimately benefits
> > __dma_sync_sg_for_cpu() and __dma_sync_sg_for_device().
> >
> > Cc: Leon Romanovsky <leon at kernel.org>
> > Cc: Catalin Marinas <catalin.marinas at arm.com>
> > Cc: Will Deacon <will at kernel.org>
> > Cc: Marek Szyprowski <m.szyprowski at samsung.com>
> > Cc: Robin Murphy <robin.murphy at arm.com>
> > Cc: Ada Couprie Diaz <ada.coupriediaz at arm.com>
> > Cc: Ard Biesheuvel <ardb at kernel.org>
> > Cc: Marc Zyngier <maz at kernel.org>
> > Cc: Anshuman Khandual <anshuman.khandual at arm.com>
> > Cc: Ryan Roberts <ryan.roberts at arm.com>
> > Cc: Suren Baghdasaryan <surenb at google.com>
> > Cc: Tangquan Zheng <zhengtangquan at oppo.com>
> > Signed-off-by: Barry Song <baohua at kernel.org>
> > ---
> > kernel/dma/direct.c | 14 +++++++-------
> > 1 file changed, 7 insertions(+), 7 deletions(-)
>
> <...>
>
> > - if (!dev_is_dma_coherent(dev)) {
> > + if (!dev_is_dma_coherent(dev))
> > arch_sync_dma_for_device(paddr, sg->length,
> > dir);
> > - arch_sync_dma_flush();
> > - }
> > }
> > + if (!dev_is_dma_coherent(dev))
> > + arch_sync_dma_flush();
>
> This patch should be squashed into the previous one. You introduced
> arch_sync_dma_flush() there, and now you are placing it elsewhere.
Hi Leon,
The previous patch replaces all arch_sync_dma_for_* calls with
arch_sync_dma_for_* plus arch_sync_dma_flush(), without any
functional change. The subsequent patches then implement the
actual batching. I feel this is a better approach for reviewing
each change independently. Otherwise, the previous patch would
be too large.
Thanks
Barry
More information about the linux-arm-kernel
mailing list