linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* Ideas/suggestions to avoid repeated locking and reducing too many lists with dmaengine?
@ 2014-02-24 19:03 Joel Fernandes
  2014-02-24 19:21 ` Russell King - ARM Linux
  2014-02-24 20:50 ` Andy Gross
  0 siblings, 2 replies; 7+ messages in thread
From: Joel Fernandes @ 2014-02-24 19:03 UTC (permalink / raw)
  To: linux-arm-kernel

Hi folks,

Just wanted your thoughts/suggestions on how we can avoid overhead in the EDMA
dmaengine driver. I am seeing a lots of performance drop specially for small
transfers with EDMA versus before raw EDMA was moved to DMAEngine framework
(atleast 25%).

One of the things I am thinking about is the repeated (spin) locking/unlocking
of the virt_dma_chan->lock or vc->lock. In many cases, there's only 1 user or
thread requiring to do a DMA, so I feel the locking is unnecessary and potential
overhead. If there's a sane way to detect this an avoid locking altogether, that
would be great.

 Also with respect to virt_dma (which is used by edma to manage all the
descriptors and lists) there are too many lists: submitted, issued, completed
etc and the descriptor moves from one to the other. I am thinking if there is a
way we can avoid using so many lists and just have 2 lists and move the desc
from one list to the other, That could avoid using the intermediate list
altogether and classify dma requests as "done" or "not done".

Since this involves discussing concurrency primitives, copying linux-rt-users as
well.

Thanks,
-Joel

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

end of thread, other threads:[~2014-02-25 12:29 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-24 19:03 Ideas/suggestions to avoid repeated locking and reducing too many lists with dmaengine? Joel Fernandes
2014-02-24 19:21 ` Russell King - ARM Linux
2014-02-24 22:38   ` Joel Fernandes
2014-02-24 22:53     ` Joel Fernandes
2014-02-25 12:29     ` Russell King - ARM Linux
2014-02-24 20:50 ` Andy Gross
2014-02-25 12:24   ` Russell King - ARM Linux

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).