From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755252AbbIYHAz (ORCPT ); Fri, 25 Sep 2015 03:00:55 -0400 Received: from devils.ext.ti.com ([198.47.26.153]:40015 "EHLO devils.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754043AbbIYHAy (ORCPT ); Fri, 25 Sep 2015 03:00:54 -0400 Subject: Re: [PATCH] dmaengine: omap-dma: Enable packed accesses for cyclic transfers To: References: <1442233865-10412-1-git-send-email-peter.ujfalusi@ti.com> CC: , , , , From: Peter Ujfalusi Message-ID: <5604F11A.5040505@ti.com> Date: Fri, 25 Sep 2015 10:00:42 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <1442233865-10412-1-git-send-email-peter.ujfalusi@ti.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Vinod, On 09/14/2015 03:31 PM, Peter Ujfalusi wrote: > From: Misael Lopez Cruz > > The L3 throughput can be higher than expected when packed access > is not enabled. The ratio depends on the number of bytes in a > transaction and the EMIF interface width. Can you take a look at this patch? Thanks, Péter > The throughput was measured for the following settings/cases: > > * Case 1: Burst size of 64 bytes, packed access disabled > * Case 2: Burst size of 64 bytes, packed access enabled > * Case 3: Burst disabled, packed access disabled > > Throughput measurements were done during McASP-based audio > playback on the Jacinto6 EVM using the omapconf tool [1]: > $ omapconf trace bw -m sdma_rd > > --------------------------------------------------------- > Throughput (MB/s) > Audio parameters Case 1 Case 2 Case 3 > --------------------------------------------------------- > 44.1kHz, 16-bits, stereo 1.41 0.18 1.41 > 44.1kHz, 32-bits, stereo 1.41 0.35 1.41 > 44.1kHz, 16-bits, 4-chan 2.82 0.35 2.82 > 44.1kHz, 16-bits, 6-chan 4.23 0.53 4.23 > 44.1kHz, 16-bits, 8-chan 5.64 0.71 5.64 > --------------------------------------------------------- > > From above measurements, case 2 is the only one that delivers > the expected throughput for the given audio parameters. For > that reason, the packed accesses are now enabled. > > It's worth to mention that packed accesses cannot be enabled > for all addressing modes. In cyclic transfers, it can be > enabled in the source for MEM_TO_DEV and in dest for DEV_TO_MEM, > as they use post-increment mode which supports packed accesses. > > Peter Ujfalusi: > From the TRM regarding to this: > "NOTE: Except in the constant addressing mode, the source or > destination must be specified as packed for burst transactions > to occur." > > So w/o the packed setting the burst on the MEM side was not > enabled, this explains the numbers. > > [1] https://github.com/omapconf/omapconf > > Signed-off-by: Misael Lopez Cruz > Signed-off-by: Peter Ujfalusi > --- > drivers/dma/omap-dma.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c > index 249445c8a4c6..1dfc71c90123 100644 > --- a/drivers/dma/omap-dma.c > +++ b/drivers/dma/omap-dma.c > @@ -935,8 +935,12 @@ static struct dma_async_tx_descriptor *omap_dma_prep_dma_cyclic( > else > d->ccr |= CCR_SYNC_ELEMENT; > > - if (dir == DMA_DEV_TO_MEM) > + if (dir == DMA_DEV_TO_MEM) { > d->ccr |= CCR_TRIGGER_SRC; > + d->csdp |= CSDP_DST_PACKED; > + } else { > + d->csdp |= CSDP_SRC_PACKED; > + } > > d->cicr |= CICR_MISALIGNED_ERR_IE | CICR_TRANS_ERR_IE; > >