Re: [RFC PATCH 04/15] PM / Runtime: Allow drivers to intercept pm qos flag changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Oct 24, 2013 at 05:42:13PM -0700, Dan Williams wrote:
> Hi Rafael, sorry about the email mix up.
> 
> On Thu, Oct 24, 2013 at 4:08 PM, Rafael J. Wysocki <rjw@xxxxxxxxxxxxx> wrote:
> >> > +
> >> > +What:          /sys/devices/.../power/pm_qos_no_notify_flags
> >> > +Date:          October 2013
> >> > +Contact:       Dan Williams <dan.j.williams@xxxxxxxxx>
> >> > +Description:
> >> > +               The /sys/devices/.../power/pm_qos_no_notify_flags attribute is
> >> > +               used for determining whether the kernel is permitted to forward
> >> > +               changes to the the PM QoS flags (no_power_off, remote_wakeup) to
> >> > +               other devices it deems to be related in the system.  When this
> >> > +               flag is set userspace is indicating that it wants exclusive
> >> > +               control
> >
> > This is aganist the way the PM QoS flags were designed.  There is no exclusive
> > control over them and user space cannot expect specific behavior when one of
> > them is unset in sysfs.  Specifically, "no power off" unset doesn't mean "power
> > off is required".  It merely means "I have no objections against powering off
> > if that's what you decide to do".
> 
> 'Exclusive control' was the wrong choice of terms.  This admittedly
> ugly pm_qos_no_notify_flags flag would disable propagating the
> pm_qos_no_power_off setting to another device.
>
> The problem I am trying to solve is that deviceA can only safely be
> powered off depending on the state of deviceB.  The kernel knows this
> relationship and in most cases when userspace says "I don't have any
> objections to powering off deviceA it almost certainly means I have no
> objections to you coordinating poweroff of deviceA + deviceB".

So your plan was to automatically change the pm_qos_no_port_poweroff
flag for deviceB whenever userspace set deviceA pm_qos_no_port_poweroff?
And userspace could tell the kernel not to do that with the
pm_qos_no_notify_flags file?

> I could skip this flag and keep this knowledge internal.  I.e.
> userspace would just need to know that clearing pm_qos_no_power_off on
> deviceA will not enable power off until the same setting is performed
> on deviceB.  I do place a link from deviceA to deviceB in sysfs.

That seems to be the easier solution.  I suspect that what userspace
will do is clear pm_qos_no_power_off for all ports marked as hardwired,
and then never touch pm_qos_no_power_off again.  It seems like
unnecessary optimization to try to pair the two device states.

> Although ordering becomes trickier without notification...

What situations specifically are trickier?

> Alternatively I could just power manage deviceB behind userspace's
> back when taking action on deviceA, but I think that is even more of a
> hack and takes away configuration ability from userspace.

Yeah, I don't think that's a good idea.

Sarah Sharp
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux