Messages in this thread | | | From | "Song Bao Hua (Barry Song)" <> | Subject | RE: [PATCH] dma: Per-NUMA-node CMA should depend on NUMA | Date | Tue, 27 Oct 2020 08:22:50 +0000 |
| |
> -----Original Message----- > From: hch@lst.de [mailto:hch@lst.de] > Sent: Tuesday, October 27, 2020 8:55 PM > To: Song Bao Hua (Barry Song) <song.bao.hua@hisilicon.com> > Cc: Robin Murphy <robin.murphy@arm.com>; hch@lst.de; > iommu@lists.linux-foundation.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH] dma: Per-NUMA-node CMA should depend on NUMA > > On Mon, Oct 26, 2020 at 08:07:43PM +0000, Song Bao Hua (Barry Song) > wrote: > > > diff --git a/kernel/dma/Kconfig b/kernel/dma/Kconfig > > > index c99de4a21458..964b74c9b7e3 100644 > > > --- a/kernel/dma/Kconfig > > > +++ b/kernel/dma/Kconfig > > > @@ -125,7 +125,8 @@ if DMA_CMA > > > > > > config DMA_PERNUMA_CMA > > > bool "Enable separate DMA Contiguous Memory Area for each NUMA > > > Node" > > > - default NUMA && ARM64 > > > + depends on NUMA > > > + default ARM64 > > > > On the other hand, at this moment, only ARM64 is calling the init code > > to get per_numa cma. Do we need to > > depends on NUMA && ARM64 ? > > so that this is not enabled by non-arm64? > > I actually hate having arch symbols in common code. A new > ARCH_HAS_DMA_PERNUMA_CMA, only selected by arm64 for now would be > more > clean I think.
Sounds good to me.
BTW, +Will.
Last time we talked about default pernuma cma size, you suggested a bootargs in arch/arm64/Kconfig but Will seems to have different idea. Am I right, Will?
Would we let aarch64 call dma_pernuma_cma_reserve(16MB) rather than dma_pernuma_cma_reserve()?
In this way, users will at least get a default pernuma CMA which is required at least by IOMMU. If users set a "cma_pernuma" bootargs, it will overwrite the default size from aarch64 code?
I mean
- void __init dma_pernuma_cma_reserve(size_t size) + void __init dma_pernuma_cma_reserve(size_t size) { if (!pernuma_size_bytes) + pernuma_size_bytes = size; .... }
Right now, it is easy that users will forget to set cma_pernuma in bootargs. Probably this feature is not enabled by users.
Thanks Barry
| |