Thread (19 messages) 19 messages, 8 authors, 2024-10-09

Re: [PATCH 00/51] treewide: Switch to __pm_runtime_put_autosuspend()

From: Uwe Kleine-König <hidden>
Date: 2024-10-08 20:38:06
Also in: amd-gfx, asahi, dmaengine, dri-devel, imx, linux-arm-kernel, linux-bluetooth, linux-clk, linux-crypto, linux-gpio, linux-i2c, linux-i3c, linux-iio, linux-iommu, linux-media, linux-mediatek, linux-mmc, linux-pci, linux-phy, linux-pwm, linux-remoteproc, linux-serial, linux-sound, linux-spi, linux-staging, linux-usb, linux-wireless, lkml, netdev, nouveau

Hello,

On Mon, Oct 07, 2024 at 09:49:24PM +0300, Laurent Pinchart wrote:
On Fri, Oct 04, 2024 at 04:38:36PM +0200, Ulf Hansson wrote:
quoted
On Fri, 4 Oct 2024 at 11:41, Sakari Ailus [off-list ref] wrote:
quoted
Hello everyone,

This set will switch the users of pm_runtime_put_autosuspend() to
__pm_runtime_put_autosuspend() while the former will soon be re-purposed
to include a call to pm_runtime_mark_last_busy(). The two are almost
always used together, apart from bugs which are likely common. Going
forward, most new users should be using pm_runtime_put_autosuspend().

Once this conversion is done and pm_runtime_put_autosuspend() re-purposed,
I'll post another set to merge the calls to __pm_runtime_put_autosuspend()
and pm_runtime_mark_last_busy().
That sounds like it could cause a lot of churns.

Why not add a new helper function that does the
pm_runtime_put_autosuspend() and the pm_runtime_mark_last_busy()
things? Then we can start moving users over to this new interface,
rather than having this intermediate step?
I think the API would be nicer if we used the shortest and simplest
function names for the most common use cases. Following
pm_runtime_put_autosuspend() with pm_runtime_mark_last_busy() is that
most common use case. That's why I like Sakari's approach of repurposing
pm_runtime_put_autosuspend(), and introducing
__pm_runtime_put_autosuspend() for the odd cases where
pm_runtime_mark_last_busy() shouldn't be called.
That's ok for me. However this patch series isn't the optimal path to
there because most drivers (i.e. those that already today do
pm_runtime_mark_last_busy() in combination with
pm_runtime_put_autosuspend()) have to be patched twice.

The saner route is: Only convert the drivers with a sole
pm_runtime_put_autosuspend() (i.e. without pm_runtime_mark_last_busy())
to __pm_runtime_put_autosuspend(). Then add the mark_last_busy() bits to
pm_runtime_put_autosuspend() and then drop the explicit calls to
pm_runtime_mark_last_busy() before pm_runtime_put_autosuspend().

(Note this doesn't take into account Rafael's position that
pm_runtime_put() might be the saner option. My argument applies for that
conversion analogously.)

Best regards
Uwe

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help