All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 3/3] powerpc/dma: Remove ZONE_DMA completely
@ 2015-02-20  8:35 Benjamin Herrenschmidt
  2015-02-26  6:38 ` [3/3] " Michael Ellerman
  2015-03-18 14:19 ` [PATCH 3/3] " Aneesh Kumar K.V
  0 siblings, 2 replies; 7+ messages in thread
From: Benjamin Herrenschmidt @ 2015-02-20  8:35 UTC (permalink / raw)
  To: linuxppc dev list; +Cc: Scott Wood, Anton Blanchard, Brian J King

We don't initialize it, we don't use it, remove it.

We can bring it back if we ever wish to have support for devices
who have smaller than 32-bit DMA limitations but I don't think
we care much anymore.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
 arch/powerpc/Kconfig      |    2 +-
 arch/powerpc/kernel/dma.c |   10 +---------
 2 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 22b0940..4efbfba 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -712,7 +712,7 @@ config ISA
 
 config ZONE_DMA
 	bool
-	default y
+	default n
 
 config NEED_DMA_MAP_STATE
 	def_bool (PPC64 || NOT_COHERENT_CACHE)
diff --git a/arch/powerpc/kernel/dma.c b/arch/powerpc/kernel/dma.c
index e24e0ae..6306d4e 100644
--- a/arch/powerpc/kernel/dma.c
+++ b/arch/powerpc/kernel/dma.c
@@ -63,16 +63,8 @@ void *dma_direct_alloc_coherent(struct device *dev, size_t size,
 		return NULL;
 	}
 
-	switch (zone) {
-	case ZONE_DMA:
-		flag |= GFP_DMA;
-		break;
-#ifdef CONFIG_ZONE_DMA32
-	case ZONE_DMA32:
+	if (zone == ZONE_DMA32)
 		flag |= GFP_DMA32;
-		break;
-#endif
-	};
 
 	/* ignore region specifiers */
 	flag  &= ~(__GFP_HIGHMEM);

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [3/3] powerpc/dma: Remove ZONE_DMA completely
  2015-02-20  8:35 [PATCH 3/3] powerpc/dma: Remove ZONE_DMA completely Benjamin Herrenschmidt
@ 2015-02-26  6:38 ` Michael Ellerman
  2015-02-27  3:39   ` Michael Ellerman
  2015-03-18 14:19 ` [PATCH 3/3] " Aneesh Kumar K.V
  1 sibling, 1 reply; 7+ messages in thread
From: Michael Ellerman @ 2015-02-26  6:38 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, linuxppc dev list
  Cc: Scott Wood, Anton Blanchard, Brian J King

On Fri, 2015-20-02 at 08:35:44 UTC, Benjamin Herrenschmidt wrote:
> We don't initialize it, we don't use it, remove it.
> 
> We can bring it back if we ever wish to have support for devices
> who have smaller than 32-bit DMA limitations but I don't think
> we care much anymore.
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
>  arch/powerpc/Kconfig      |    2 +-
>  arch/powerpc/kernel/dma.c |   10 +---------
>  2 files changed, 2 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 22b0940..4efbfba 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -712,7 +712,7 @@ config ISA
>  
>  config ZONE_DMA
>  	bool
> -	default y
> +	default n
>  
>  config NEED_DMA_MAP_STATE
>  	def_bool (PPC64 || NOT_COHERENT_CACHE)
> diff --git a/arch/powerpc/kernel/dma.c b/arch/powerpc/kernel/dma.c
> index e24e0ae..6306d4e 100644
> --- a/arch/powerpc/kernel/dma.c
> +++ b/arch/powerpc/kernel/dma.c
> @@ -63,16 +63,8 @@ void *dma_direct_alloc_coherent(struct device *dev, size_t size,
>  		return NULL;
>  	}
>  
> -	switch (zone) {
> -	case ZONE_DMA:
> -		flag |= GFP_DMA;
> -		break;
> -#ifdef CONFIG_ZONE_DMA32
> -	case ZONE_DMA32:
> +	if (zone == ZONE_DMA32)
>  		flag |= GFP_DMA32;
> -		break;
> -#endif
> -	};

You still need the ifdef, else eg. ppc6xx_defconfig:

  arch/powerpc/kernel/dma.c:66:14: error: 'ZONE_DMA32' undeclared (first use in this function)

cheers

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [3/3] powerpc/dma: Remove ZONE_DMA completely
  2015-02-26  6:38 ` [3/3] " Michael Ellerman
@ 2015-02-27  3:39   ` Michael Ellerman
  2015-02-27  3:48     ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 7+ messages in thread
From: Michael Ellerman @ 2015-02-27  3:39 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Scott Wood, Anton Blanchard, linuxppc dev list, Brian J King

On Thu, 2015-02-26 at 17:38 +1100, Michael Ellerman wrote:
> On Fri, 2015-20-02 at 08:35:44 UTC, Benjamin Herrenschmidt wrote:
> > diff --git a/arch/powerpc/kernel/dma.c b/arch/powerpc/kernel/dma.c
> > index e24e0ae..6306d4e 100644
> > --- a/arch/powerpc/kernel/dma.c
> > +++ b/arch/powerpc/kernel/dma.c
> > @@ -63,16 +63,8 @@ void *dma_direct_alloc_coherent(struct device *dev, size_t size,
> >  		return NULL;
> >  	}
> >  
> > -	switch (zone) {
> > -	case ZONE_DMA:
> > -		flag |= GFP_DMA;
> > -		break;
> > -#ifdef CONFIG_ZONE_DMA32
> > -	case ZONE_DMA32:
> > +	if (zone == ZONE_DMA32)
> >  		flag |= GFP_DMA32;
> > -		break;
> > -#endif
> > -	};
> 
> You still need the ifdef, else eg. ppc6xx_defconfig:
> 
>   arch/powerpc/kernel/dma.c:66:14: error: 'ZONE_DMA32' undeclared (first use in this function)

And the rest :)

  http://kisskb.ellerman.id.au/kisskb/head/8505/

  Successful:	45% 49/109

cheers

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [3/3] powerpc/dma: Remove ZONE_DMA completely
  2015-02-27  3:39   ` Michael Ellerman
@ 2015-02-27  3:48     ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 7+ messages in thread
From: Benjamin Herrenschmidt @ 2015-02-27  3:48 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Scott Wood, Anton Blanchard, linuxppc dev list, Brian J King

On Fri, 2015-02-27 at 14:39 +1100, Michael Ellerman wrote:
> On Thu, 2015-02-26 at 17:38 +1100, Michael Ellerman wrote:
> > On Fri, 2015-20-02 at 08:35:44 UTC, Benjamin Herrenschmidt wrote:
> > > diff --git a/arch/powerpc/kernel/dma.c b/arch/powerpc/kernel/dma.c
> > > index e24e0ae..6306d4e 100644
> > > --- a/arch/powerpc/kernel/dma.c
> > > +++ b/arch/powerpc/kernel/dma.c
> > > @@ -63,16 +63,8 @@ void *dma_direct_alloc_coherent(struct device *dev, size_t size,
> > >  		return NULL;
> > >  	}
> > >  
> > > -	switch (zone) {
> > > -	case ZONE_DMA:
> > > -		flag |= GFP_DMA;
> > > -		break;
> > > -#ifdef CONFIG_ZONE_DMA32
> > > -	case ZONE_DMA32:
> > > +	if (zone == ZONE_DMA32)
> > >  		flag |= GFP_DMA32;
> > > -		break;
> > > -#endif
> > > -	};
> > 
> > You still need the ifdef, else eg. ppc6xx_defconfig:
> > 
> >   arch/powerpc/kernel/dma.c:66:14: error: 'ZONE_DMA32' undeclared (first use in this function)
> 
> And the rest :)
> 
>   http://kisskb.ellerman.id.au/kisskb/head/8505/
> 
>   Successful:	45% 49/109

Yup, I forgot I didn't have it unconditionally on ppc32 :-)

I'll respin some time next week.

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/3] powerpc/dma: Remove ZONE_DMA completely
  2015-02-20  8:35 [PATCH 3/3] powerpc/dma: Remove ZONE_DMA completely Benjamin Herrenschmidt
  2015-02-26  6:38 ` [3/3] " Michael Ellerman
@ 2015-03-18 14:19 ` Aneesh Kumar K.V
  2015-03-18 20:38   ` Benjamin Herrenschmidt
  1 sibling, 1 reply; 7+ messages in thread
From: Aneesh Kumar K.V @ 2015-03-18 14:19 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, linuxppc dev list
  Cc: Scott Wood, Anton Blanchard, Brian J King

Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:

> We don't initialize it, we don't use it, remove it.
>
> We can bring it back if we ever wish to have support for devices
> who have smaller than 32-bit DMA limitations but I don't think
> we care much anymore.
>
> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> ---
>  arch/powerpc/Kconfig      |    2 +-
>  arch/powerpc/kernel/dma.c |   10 +---------
>  2 files changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 22b0940..4efbfba 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -712,7 +712,7 @@ config ISA
>  
>  config ZONE_DMA
>  	bool
> -	default y
> +	default n
>  
>  config NEED_DMA_MAP_STATE
>  	def_bool (PPC64 || NOT_COHERENT_CACHE)
> diff --git a/arch/powerpc/kernel/dma.c b/arch/powerpc/kernel/dma.c
> index e24e0ae..6306d4e 100644
> --- a/arch/powerpc/kernel/dma.c
> +++ b/arch/powerpc/kernel/dma.c
> @@ -63,16 +63,8 @@ void *dma_direct_alloc_coherent(struct device *dev, size_t size,
>  		return NULL;
>  	}
>  
> -	switch (zone) {
> -	case ZONE_DMA:
> -		flag |= GFP_DMA;
> -		break;
> -#ifdef CONFIG_ZONE_DMA32
> -	case ZONE_DMA32:
> +	if (zone == ZONE_DMA32)
>  		flag |= GFP_DMA32;
> -		break;
> -#endif
> -	};
>  

Why not do it also for DMA32 as below. We call limit_zone_pfn() only for few
platforms. They can select ZONE_DMA32. Everywhere else ZONE_DMA32 is
same as ZONE_NORMAL ? So instead of having confusing output for
show_mem(), we now have


Node 0 Normal: 6*64kB (UM) 566*128kB (UEM) 367*256kB (UM) 185*512kB (UM)59*1024kB (UEM) 11*2048kB (UM) 4*4096kB (UM) 3*8192kB (UEM) 4016*16384kB

Node 1 Normal: 42*64kB (UEM) 14*128kB (UEM) 10*256kB (UM) 2*512kB (UM) 6*1024kB (UM) 7*2048kB (UEM) 5*4096kB (UM) 2*8192kB (U) 3644*16384kB (MR) =

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 38fe9c5409be..3a448cdaa22f 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -290,7 +290,7 @@ config PPC_EMULATE_SSTEP
 
 config ZONE_DMA32
 	bool
-	default y if PPC64
+	default n
 
 source "init/Kconfig"
 
diff --git a/arch/powerpc/kernel/dma.c b/arch/powerpc/kernel/dma.c
index 03511968a9c6..253222ddb308 100644
--- a/arch/powerpc/kernel/dma.c
+++ b/arch/powerpc/kernel/dma.c
@@ -71,6 +71,11 @@ void *dma_direct_alloc_coherent(struct device *dev, size_t size,
 	}
 
 	switch (zone) {
+#ifdef CONFIG_ZONE_DMA
+	case ZONE_DMA:
+		flag |= GFP_DMA;
+		break;
+#endif
 #ifdef CONFIG_ZONE_DMA32
 	case ZONE_DMA32:
 		flag |= GFP_DMA32;

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/3] powerpc/dma: Remove ZONE_DMA completely
  2015-03-18 14:19 ` [PATCH 3/3] " Aneesh Kumar K.V
@ 2015-03-18 20:38   ` Benjamin Herrenschmidt
  2015-03-20  5:26     ` Aneesh Kumar K.V
  0 siblings, 1 reply; 7+ messages in thread
From: Benjamin Herrenschmidt @ 2015-03-18 20:38 UTC (permalink / raw)
  To: Aneesh Kumar K.V
  Cc: Scott Wood, Anton Blanchard, linuxppc dev list, Brian J King

On Wed, 2015-03-18 at 19:49 +0530, Aneesh Kumar K.V wrote:
> Why not do it also for DMA32 as below. We call limit_zone_pfn() only
> for few
> platforms. They can select ZONE_DMA32. Everywhere else ZONE_DMA32 is
> same as ZONE_NORMAL ? So instead of having confusing output for
> show_mem(), we now have

There may be cases where we want ZONE_DMA32, what's confusing ?

Ben.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 3/3] powerpc/dma: Remove ZONE_DMA completely
  2015-03-18 20:38   ` Benjamin Herrenschmidt
@ 2015-03-20  5:26     ` Aneesh Kumar K.V
  0 siblings, 0 replies; 7+ messages in thread
From: Aneesh Kumar K.V @ 2015-03-20  5:26 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Scott Wood, Anton Blanchard, linuxppc dev list, Brian J King

Benjamin Herrenschmidt <benh@kernel.crashing.org> writes:

> On Wed, 2015-03-18 at 19:49 +0530, Aneesh Kumar K.V wrote:
>> Why not do it also for DMA32 as below. We call limit_zone_pfn() only
>> for few
>> platforms. They can select ZONE_DMA32. Everywhere else ZONE_DMA32 is
>> same as ZONE_NORMAL ? So instead of having confusing output for
>> show_mem(), we now have
>
> There may be cases where we want ZONE_DMA32, what's confusing ?
>
To see output like below

 Node 0 DMA32: 6*64kB (UM) 566*128kB (UEM) 367*256kB (UM) 185*512kB (UM)59*1024kB (UEM) 11*2048kB (UM) 4*4096kB (UM) 3*8192kB (UEM) 4016*16384kB

 Node 1 DMA32: 42*64kB (UEM) 14*128kB (UEM) 10*256kB (UM) 2*512kB (UM) 6*1024kB (UM) 7*2048kB (UEM) 5*4096kB (UM) 2*8192kB (U) 3644*16384kB (MR) =

 That is to find DMA32 convering more than 4GB range.

 -aneesh

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-03-20  5:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-20  8:35 [PATCH 3/3] powerpc/dma: Remove ZONE_DMA completely Benjamin Herrenschmidt
2015-02-26  6:38 ` [3/3] " Michael Ellerman
2015-02-27  3:39   ` Michael Ellerman
2015-02-27  3:48     ` Benjamin Herrenschmidt
2015-03-18 14:19 ` [PATCH 3/3] " Aneesh Kumar K.V
2015-03-18 20:38   ` Benjamin Herrenschmidt
2015-03-20  5:26     ` Aneesh Kumar K.V

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.