linux-pinenote/include
Thomas Gleixner 99ee5315da timerfd: Allow timers to be cancelled when clock was set
Some applications must be aware of clock realtime being set
backward. A simple example is a clock applet which arms a timer for
the next minute display. If clock realtime is set backward then the
applet displays a stale time for the amount of time which the clock
was set backwards. Due to that applications poll the time because we
don't have an interface.

Extend the timerfd interface by adding a flag which puts the timer
onto a different internal realtime clock. All timers on this clock are
expired whenever the clock was set.

The timerfd core records the monotonic offset when the timer is
created. When the timer is armed, then the current offset is compared
to the previous recorded offset. When it has changed, then
timerfd_settime returns -ECANCELED. When a timer is read the offset is
compared and if it changed -ECANCELED returned to user space. Periodic
timers are not rearmed in the cancelation case.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: John Stultz <johnstul@us.ibm.com>
Cc: Chris Friesen <chris.friesen@genband.com>
Tested-by: Kay Sievers <kay.sievers@vrfy.org>
Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Davide Libenzi <davidel@xmailserver.org>
Reviewed-by: Alexander Shishkin <virtuoso@slind.org>
Link: http://lkml.kernel.org/r/%3Calpine.LFD.2.02.1104271359580.3323%40ionos%3E
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2011-05-02 21:39:15 +02:00
..
acpi Fix common misspellings 2011-03-31 11:26:23 -03:00
asm-generic Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
crypto
drm drm/i915: restore only the mode of this driver on lastclose (v2) 2011-04-27 17:51:59 +10:00
keys libceph: Create a new key type "ceph". 2011-03-29 12:11:24 -07:00
linux timerfd: Allow timers to be cancelled when clock was set 2011-05-02 21:39:15 +02:00
math-emu
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6 2011-04-27 15:17:52 -07:00
mtd
net net/9p: nwname should be an unsigned int 2011-04-15 15:26:15 -05:00
pcmcia
rdma
rxrpc Fix common misspellings 2011-03-31 11:26:23 -03:00
scsi Fix common misspellings 2011-03-31 11:26:23 -03:00
sound Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
staging [media] Altera FPGA firmware download module 2011-03-21 20:32:16 -03:00
target Fix common misspellings 2011-03-31 11:26:23 -03:00
trace block: make unplug timer trace event correspond to the schedule() unplug 2011-04-16 13:51:05 +02:00
video Fix common misspellings 2011-03-31 11:26:23 -03:00
xen Fix common misspellings 2011-03-31 11:26:23 -03:00
Kbuild