Re: [PATCH] rtc: add in ability to push out an existing wakealarmusing sysfs

From: Andrew Morton
Date: Wed May 22 2013 - 18:20:19 EST

On Wed, 22 May 2013 15:05:44 -0700 Bernie Thompson <bhthompson@xxxxxxxxxxxx> wrote:

> On Wed, May 22, 2013 at 2:55 PM, Andrew Morton
> <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> >
> > On Fri, 10 May 2013 17:53:31 -0700 Bernie Thompson <bhthompson@xxxxxxxxxxxx> wrote:
> >
> > > This adds in the ability for the rtc sysfs code to handle += characters
> > > at the beginning of a wakealarm setting string. This will allow the user to
> > > attempt to push out an existing wakealarm by a provided amount.
> > >
> > > In the case that the += characters are provided but the alarm is not active
> > > -EVINVAL is returned.
> > >
> >
> > Well that sounds useful, but I'm not personally in a position to
> > confidently judge whether it's useful enough to merge the patch. The
> > changelog doesn't make a compelling case and everybody else has chosen
> > to sit on their hands.
> >
> > So I really don't know what to do with this patch.
> >
> Thank you for looking at this, I was just talking with Doug on CC this
> morning about
> explaining why this is useful, at least for my purposes in
> suspend/resume testing.
> The basic test goes something like:
> 1. Set a wake alarm from userspace 5 seconds in the future
> 2. Start the suspend process (echo mem > /sys/power/state)
> 3. After ~2.5 seconds if userspace is still running (using another
> thread to check
> this), move the wake alarm 5 more seconds
> If the "move" involves an unset of the wakealarm then there's a
> period of time where the system is midway through suspending but has
> no wake alarm. It will get stuck.
> We'd rather not remove the "move" since the idea is to avoid a
> cancelled suspend when the alarm fires _during_ suspend. It is
> difficult for the test to tell the difference between a suspend that
> was cancelled because the alarm fired too early and a suspend that was
> cancelled/failed for some other reason.

OK, I'm (easily) convinced.

I guess that if the alarm fires right in the middle of
rtc_sysfs_set_wakealarm() execution, everything collapses in a heap.

Why does the current code "Avoid accidentally clobbering active
alarms"?[*] I'd have thought that being able to reset the expiry time
of a pending alarm would be rather useful.

[*] repeat after me: comments should explain "what", not "why". grr.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at