Re: [PATCH] lan78xx: Protect runtime_auto check by #ifdef CONFIG_PM

From: Alan Stern
Date: Mon Mar 21 2016 - 14:24:23 EST


On Mon, 21 Mar 2016, Oliver Neukum wrote:

> On Mon, 2016-03-21 at 10:57 -0400, Alan Stern wrote:
>
> > One possible solution is to export a sysfs parameter to prevent
> > statistics collection (or more generally, to change the interval at
> > which it occurs).
>
> Surely, not performing a task can hardly be beaten in terms of power
> consumption. That is not meant to be flippant, but I think these
> issues are orthogonal. The question of how much to do doesn't
> solve the question of doing efficiently what we do.

In other words, what's the best way to collect the statistics without
interfering with runtime PM, right?

If the device is suspended, presumably we know there's nothing to
collect -- especially if we already collected the statistics at the
time the device got suspended. Hence my suggestion to avoid querying
the device while it is suspended.

But this leaves open the issue that querying the device too often will
prevent it from going into autosuspend. It seems to me that the best
way to deal with this is to make sure that the autosuspend timeout is
shorter than the interal between queries, not to make the querying
conditional on !runtime_auto.

> > But checking the runtime_auto flag is probably not a great idea. Even
> > if it isn't set, collecting statistics is likely to wait up a device
> > that otherwise would have remained suspended.
> >
> > Perhaps the best solution is to collect the statistics only when the
> > device is not suspended or is about to suspend.
>
> If we know when the next activity will come, why not pass this
> information down?

I don't follow.

Alan Stern