[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <767d181165f74ce78c86b20bbe09cd9b@hisilicon.com>
Date: Tue, 27 Oct 2020 08:22:50 +0000
From: "Song Bao Hua (Barry Song)" <song.bao.hua@...ilicon.com>
To: "hch@....de" <hch@....de>, "will@...nel.org" <will@...nel.org>
CC: Robin Murphy <robin.murphy@....com>,
"iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Linuxarm <linuxarm@...wei.com>
Subject: RE: [PATCH] dma: Per-NUMA-node CMA should depend on NUMA
> -----Original Message-----
> From: hch@....de [mailto:hch@....de]
> Sent: Tuesday, October 27, 2020 8:55 PM
> To: Song Bao Hua (Barry Song) <song.bao.hua@...ilicon.com>
> Cc: Robin Murphy <robin.murphy@....com>; hch@....de;
> iommu@...ts.linux-foundation.org; linux-kernel@...r.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
Powered by blists - more mailing lists