devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] dmaengine: xgene-dma: Disable memcpy operation due to performance drop
@ 2015-10-08  8:25 Rameshwar Prasad Sahu
  2015-10-08  8:53 ` Arnd Bergmann
  0 siblings, 1 reply; 3+ messages in thread
From: Rameshwar Prasad Sahu @ 2015-10-08  8:25 UTC (permalink / raw)
  To: vinod.koul, dan.j.williams
  Cc: dmaengine, arnd, linux-kernel, devicetree, linux-arm-kernel, jcm,
	patches, Rameshwar Prasad Sahu

The DMA engine supports memory copy, RAID5 XOR, RAID6 PQ, and other
computations. But the bandwidth of the entire DMA engine is shared
among all channels. This patch re-configures operations availability
such that one can achieve maximum performance for XOR and PQ
computation by removing the memory offload operations.

Signed-off-by: Rameshwar Prasad Sahu <rsahu@apm.com>
---
 drivers/dma/xgene-dma.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/dma/xgene-dma.c b/drivers/dma/xgene-dma.c
index 8d57b1b..2998fcb 100644
--- a/drivers/dma/xgene-dma.c
+++ b/drivers/dma/xgene-dma.c
@@ -154,6 +154,7 @@
 #define XGENE_DMA_MAX_XOR_SRC		5
 #define XGENE_DMA_16K_BUFFER_LEN_CODE	0x0
 #define XGENE_DMA_INVALID_LEN_CODE	0x7800000000000000ULL
+#undef XGENE_DMA_MEMCPY_ENABLE

 /* X-Gene DMA descriptor error codes */
 #define ERR_DESC_AXI			0x01
@@ -1707,7 +1708,9 @@ static void xgene_dma_set_caps(struct xgene_dma_chan *chan,
 	dma_cap_zero(dma_dev->cap_mask);

 	/* Set DMA device capability */
+#ifdef XGENE_DMA_MEMCPY_ENABLE
 	dma_cap_set(DMA_MEMCPY, dma_dev->cap_mask);
+#endif
 	dma_cap_set(DMA_SG, dma_dev->cap_mask);

 	/* Basically here, the X-Gene SoC DMA engine channel 0 supports XOR
--
1.8.2.1

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

* Re: [PATCH] dmaengine: xgene-dma: Disable memcpy operation due to performance drop
  2015-10-08  8:25 [PATCH] dmaengine: xgene-dma: Disable memcpy operation due to performance drop Rameshwar Prasad Sahu
@ 2015-10-08  8:53 ` Arnd Bergmann
  2015-10-08  8:57   ` Rameshwar Sahu
  0 siblings, 1 reply; 3+ messages in thread
From: Arnd Bergmann @ 2015-10-08  8:53 UTC (permalink / raw)
  To: Rameshwar Prasad Sahu
  Cc: vinod.koul, dan.j.williams, dmaengine, linux-kernel, devicetree,
	linux-arm-kernel, jcm, patches

On Thursday 08 October 2015 13:55:16 Rameshwar Prasad Sahu wrote:
> The DMA engine supports memory copy, RAID5 XOR, RAID6 PQ, and other
> computations. But the bandwidth of the entire DMA engine is shared
> among all channels. This patch re-configures operations availability
> such that one can achieve maximum performance for XOR and PQ
> computation by removing the memory offload operations.
> 
> Signed-off-by: Rameshwar Prasad Sahu <rsahu@apm.com>
> ---
>  drivers/dma/xgene-dma.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/dma/xgene-dma.c b/drivers/dma/xgene-dma.c
> index 8d57b1b..2998fcb 100644
> --- a/drivers/dma/xgene-dma.c
> +++ b/drivers/dma/xgene-dma.c
> @@ -154,6 +154,7 @@
>  #define XGENE_DMA_MAX_XOR_SRC          5
>  #define XGENE_DMA_16K_BUFFER_LEN_CODE  0x0
>  #define XGENE_DMA_INVALID_LEN_CODE     0x7800000000000000ULL
> +#undef XGENE_DMA_MEMCPY_ENABLE
> 
>  /* X-Gene DMA descriptor error codes */
>  #define ERR_DESC_AXI                   0x01
> @@ -1707,7 +1708,9 @@ static void xgene_dma_set_caps(struct xgene_dma_chan *chan,
>         dma_cap_zero(dma_dev->cap_mask);
> 
>         /* Set DMA device capability */
> +#ifdef XGENE_DMA_MEMCPY_ENABLE
>         dma_cap_set(DMA_MEMCPY, dma_dev->cap_mask);
> +#endif
>         dma_cap_set(DMA_SG, dma_dev->cap_mask);
> 
>         /* Basically here, the X-Gene SoC DMA engine channel 0 supports XOR

I don't see what the #ifdef gains you here when the setting is
hardcoded. Why not just remove that DMA_MEMCPY capability completely
if you don't want to use it?

	Arnd

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

* Re: [PATCH] dmaengine: xgene-dma: Disable memcpy operation due to performance drop
  2015-10-08  8:53 ` Arnd Bergmann
@ 2015-10-08  8:57   ` Rameshwar Sahu
  0 siblings, 0 replies; 3+ messages in thread
From: Rameshwar Sahu @ 2015-10-08  8:57 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Vinod Koul, dan.j.williams, dmaengine, linux-kernel, devicetree,
	linux-arm-kernel, jcm, patches

On Thu, Oct 8, 2015 at 2:23 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Thursday 08 October 2015 13:55:16 Rameshwar Prasad Sahu wrote:
>> The DMA engine supports memory copy, RAID5 XOR, RAID6 PQ, and other
>> computations. But the bandwidth of the entire DMA engine is shared
>> among all channels. This patch re-configures operations availability
>> such that one can achieve maximum performance for XOR and PQ
>> computation by removing the memory offload operations.
>>
>> Signed-off-by: Rameshwar Prasad Sahu <rsahu@apm.com>
>> ---
>>  drivers/dma/xgene-dma.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/dma/xgene-dma.c b/drivers/dma/xgene-dma.c
>> index 8d57b1b..2998fcb 100644
>> --- a/drivers/dma/xgene-dma.c
>> +++ b/drivers/dma/xgene-dma.c
>> @@ -154,6 +154,7 @@
>>  #define XGENE_DMA_MAX_XOR_SRC          5
>>  #define XGENE_DMA_16K_BUFFER_LEN_CODE  0x0
>>  #define XGENE_DMA_INVALID_LEN_CODE     0x7800000000000000ULL
>> +#undef XGENE_DMA_MEMCPY_ENABLE
>>
>>  /* X-Gene DMA descriptor error codes */
>>  #define ERR_DESC_AXI                   0x01
>> @@ -1707,7 +1708,9 @@ static void xgene_dma_set_caps(struct xgene_dma_chan *chan,
>>         dma_cap_zero(dma_dev->cap_mask);
>>
>>         /* Set DMA device capability */
>> +#ifdef XGENE_DMA_MEMCPY_ENABLE
>>         dma_cap_set(DMA_MEMCPY, dma_dev->cap_mask);
>> +#endif
>>         dma_cap_set(DMA_SG, dma_dev->cap_mask);
>>
>>         /* Basically here, the X-Gene SoC DMA engine channel 0 supports XOR
>
> I don't see what the #ifdef gains you here when the setting is
> hardcoded. Why not just remove that DMA_MEMCPY capability completely
> if you don't want to use it?

Okay Arnd,
>
>         Arnd
> --
> To unsubscribe from this list: send the line "unsubscribe dmaengine" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

end of thread, other threads:[~2015-10-08  8:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-08  8:25 [PATCH] dmaengine: xgene-dma: Disable memcpy operation due to performance drop Rameshwar Prasad Sahu
2015-10-08  8:53 ` Arnd Bergmann
2015-10-08  8:57   ` Rameshwar Sahu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).