lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <552783F8.2080506@metafoo.de>
Date:	Fri, 10 Apr 2015 10:04:08 +0200
From:	Lars-Peter Clausen <lars@...afoo.de>
To:	Robert Baldyga <r.baldyga@...sung.com>, vinod.koul@...el.com
CC:	dan.j.williams@...el.com, dmaengine@...r.kernel.org,
	linux-kernel@...r.kernel.org, m.szyprowski@...sung.com,
	k.kozlowski@...sung.com
Subject: Re: [PATCH] dmaengine: pl330: get rid of pm_runtime_irq_safe()

On 04/10/2015 08:57 AM, Robert Baldyga wrote:
> As using pm_runtime_irq_safe() causes power domain is always enabled,
> we want to get rid of it to reach better power efficiency. For this purpose
> we call pm_runtime_get()/pm_runtime_put() only in DMA channel allocate/free
> code. DMA channels are always requested and freed in non-atomic context,
> so we don't need pm_runtime_irq_safe().

I wonder how useful this is considering that pretty much always a channel is 
requested. I think we need an extension to the dmaengine API that allows a 
channel consumer to notify the driver that the channel that it requested is 
currently not in use. E.g. something like dmaengine_pm_{get,put}(struct 
dma_chan *). These functions would have the restriction that they can only 
be called from a non-atomic context, whereas issue_pending() and friends can 
still be called from a atomic context. So dmaengine_pm_get() would kind of 
be a notification that consumer intends to do something  in the near future 
whereas dmaengine_pm_put() would be a notification that it is not going to 
use the channel in the near future.

E.g. for audio DMA the audio driver could call dmaengine_pm_get() when the 
PCM device is opened and dmaengine_pm_put() when it is closed. Whereas 
issue_pending is called when the audio is started.

- Lars

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ