Re: PM / Wakeup: Introduce wakeup source objects and event statistics (v2)

From: Rafael J. Wysocki
Date: Thu Sep 16 2010 - 20:55:23 EST


On Friday, September 17, 2010, Kevin Hilman wrote:
> "Rafael J. Wysocki" <rjw@xxxxxxx> writes:
>
> > From: Rafael J. Wysocki <rjw@xxxxxxx>
> > Subject: PM / Wakeup: Introduce wakeup source objects and event statistics (v2)
> >
> > Introduce struct wakeup_source for representing system wakeup sources
> > within the kernel and for collecting statistics related to them.
> > Make the recently introduced helper functions pm_wakeup_event(),
> > pm_stay_awake() and pm_relax() use struct wakeup_source objects
> > internally, so that wakeup statistics associated with wakeup devices
> > can be collected and reported in a consistent way (the definition of
> > pm_relax() is changed, which is harmless, because this function is
> > not called directly by anyone yet). Introduce new wakeup-related
> > sysfs device attributes in /sys/devices/.../power for reporting the
> > device wakeup statistics.
> >
> > Change the global wakeup events counters event_count and
> > events_in_progress into atomic variables, so that it is not necessary
> > to acquire a global spinlock in pm_wakeup_event(), pm_stay_awake()
> > and pm_relax(), which should allow us to avoid lock contention in
> > these functions on SMP systems with many wakeup devices.
> >
> > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
>
> Hi Rafael,
>
> This looks like a really useful feature.

Great!

> Was doing some experiments with this on OMAP, and found a minor
> cut-and-paste bug in the Documentation file:
>
> [...]
>
> > +What: /sys/devices/.../power/wakeup_max_time_ms
> > +Date: September 2010
> > +Contact: Rafael J. Wysocki <rjw@xxxxxxx>
> > +Description:
> > + The /sys/devices/.../wakeup_max_time_ms attribute contains
> > + the maximum time of processing a single wakeup event associated
> > + with the device, in milliseconds. This attribute is read-only.
> > + If the device is not enabled to wake up the system from sleep
> > + states, this attribute is empty.
> > +
> > +What: /sys/devices/.../power/wakeup_max_time_ms
> ^^^
> s/max/last/ for this one.

Ah, thanks a lot.

> > +Date: September 2010
> > +Contact: Rafael J. Wysocki <rjw@xxxxxxx>
> > +Description:
> > + The /sys/devices/.../wakeup_last_time_ms attribute contains
> > + the value of the monotonic clock corresponding to the time of
> > + signaling the last wakeup event associated with the device, in
> > + milliseconds. This attribute is read-only. If the device is
> > + not enabled to wake up the system from sleep states, this
> > + attribute is empty.

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