On 27 March 2015 at 22:52, NeilBrown <neilb@xxxxxxx> wrote: > On Fri, 27 Mar 2015 12:15:15 +0100 Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote: > >> Currently those host drivers which have deployed runtime PM, deals with >> the runtime PM reference counting entirely by themselves. >> >> Since host drivers don't know when the core will send the next request >> through some of the host_ops callbacks, they need to handle runtime PM >> get/put between each an every request. >> >> In quite many cases this has some negative effects, since it leads to a >> high frequency of scheduled runtime PM suspend operations. That due to >> the runtime PM reference count will normally reach zero in-between >> every request. > > I don't understand why this is a problem. > All the drivers use put_autosuspend, so the suspend doesn't happen for > (typically) 50ms, so the actually suspend won't happen if there is a sequence > of requests. It's not a problem, but it's suboptimal. > > Is it just the scheduling of a suspend - even without the suspend happening - > that is causing problems? If so, maybe the runtime_pm code needs optimising? Correct. Though, I don't think we can improve the behaviour of the runtime PM core in this regards. If the reference count reaches zero, due to a "put", it will need to perform some actions to schedule the suspend operation - no matter what. So to me, this is only an optimization of how we make use of the runtime PM API. Kind regards Uffe -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html