From: Alexander Shishkin <virtuoso@slind.org>
To: linux-kernel@vger.kernel.org
Cc: John Stultz <johnstul@us.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
"H. Peter Anvin" <hpa@zytor.com>,
Kay Sievers <kay.sievers@vrfy.org>, Greg KH <gregkh@suse.de>,
Chris Friesen <chris.friesen@genband.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
"Kirill A. Shutemov" <kirill@shutemov.name>,
Thomas Gleixner <tglx@linutronix.de>,
Alexander Shishkin <virtuoso@slind.org>
Subject: [PATCHv6 0/7] system time changes notification
Date: Thu, 11 Nov 2010 21:29:55 +0200 [thread overview]
Message-ID: <1289503802-22444-1-git-send-email-virtuoso@slind.org> (raw)
Hi,
This is the sixth version of system time change notification mechanism
for linux kernel. The need for it comes from applications which would
like to keep track of time changes without having to wake up every
$TIMEOUT and calling gettimeofday().
An excellent description for one of the usecases, written by Kay Sievers
(http://kerneltrap.org/mailarchive/linux-kernel/2010/8/5/4603531):
"""
This is the example Lennart and I thought about when we considered
adding cron-like stuff to systemd's timer configs, but didn't want to
do silly things like scheduled checks for the actual time, so we
delayed this feature until such a notification becomes available.
Consider we want stuff like "wakeup every day at 3pm", the next wakeup
might be earlier than the timer we calculated last time, on system
time changes. We need to re-calculate it. This is necessary for all
repeating events.
Say we want to wakeup at 3pm, now it's 4pm, so we schedule it in 23
hours. Now the system time changes to 2pm, and we would expect to
wakeup in one hour, but we take 25.
"""
Changes since v5:
- addressed Thomas Gleixner's comments
- added clockid syscall parameter as suggested by John Stultz
- updated powerpc and blackfin syscalls
Changes since v4:
- updated arm and s390 syscall wiring
- removed RFC
Changes since v3:
- broken out separate patches adding time_change_notify syscall to
arm, powerpc, x86, ia64, s390 and blackfin
Changes since v2:
- replaced sysfs interface with a syscall
- added sysctl/procfs handle to set a limit to the number of users
- fixed issues pointed out by Greg.
Changes since v1:
- updated against 2.6.36-rc1,
- added notification/filtering options,
- added Documentation/ABI/sysfs-kernel-time-notify interface description.
Alexander Shishkin (7):
notify userspace about time changes
wire up sys_time_change_notify() on ARM
wire up sys_time_change_notify() on x86
wire up sys_time_change_notify() on ia64
wire up sys_time_change_notify() on s390
wire up sys_time_change_notify() on powerpc
wire up sys_time_change_notify() on blackfin
Documentation/time-change-notify-example.c | 65 +++++++++++
arch/arm/include/asm/unistd.h | 1 +
arch/arm/kernel/calls.S | 1 +
arch/blackfin/include/asm/unistd.h | 3 +-
arch/blackfin/mach-common/entry.S | 1 +
arch/ia64/include/asm/unistd.h | 3 +-
arch/ia64/kernel/entry.S | 1 +
arch/powerpc/include/asm/systbl.h | 1 +
arch/powerpc/include/asm/unistd.h | 3 +-
arch/s390/include/asm/unistd.h | 3 +-
arch/s390/kernel/compat_wrapper.S | 7 ++
arch/s390/kernel/syscalls.S | 1 +
arch/x86/ia32/ia32entry.S | 1 +
arch/x86/include/asm/unistd_32.h | 3 +-
arch/x86/include/asm/unistd_64.h | 2 +
arch/x86/kernel/syscall_table_32.S | 1 +
include/asm-generic/unistd.h | 4 +-
include/linux/syscalls.h | 2 +
include/linux/time.h | 13 +++
kernel/sys_ni.c | 3 +
kernel/time/Kconfig | 7 ++
kernel/time/Makefile | 1 +
kernel/time/notify.c | 163 ++++++++++++++++++++++++++++
kernel/time/ntp.c | 3 +
kernel/time/timekeeping.c | 3 +
25 files changed, 290 insertions(+), 6 deletions(-)
create mode 100644 Documentation/time-change-notify-example.c
create mode 100644 kernel/time/notify.c
Regards,
--
Alex
next reply other threads:[~2010-11-11 19:30 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-11 19:29 Alexander Shishkin [this message]
2010-11-11 19:29 ` [PATCHv6 1/7] notify userspace about time changes Alexander Shishkin
2010-11-11 20:55 ` Arnd Bergmann
2010-11-11 19:29 ` [PATCHv6 2/7] wire up sys_time_change_notify() on ARM Alexander Shishkin
2010-11-11 19:29 ` [PATCHv6 3/7] wire up sys_time_change_notify() on x86 Alexander Shishkin
2010-11-11 19:29 ` [PATCHv6 4/7] wire up sys_time_change_notify() on ia64 Alexander Shishkin
2010-11-11 19:30 ` [PATCHv6 5/7] wire up sys_time_change_notify() on s390 Alexander Shishkin
2010-11-11 19:30 ` [PATCHv6 6/7] wire up sys_time_change_notify() on powerpc Alexander Shishkin
2010-11-11 19:30 ` [PATCHv6 7/7] wire up sys_time_change_notify() on blackfin Alexander Shishkin
2010-11-11 20:28 ` [PATCHv6 0/7] system time changes notification Valdis.Kletnieks
2010-11-11 20:51 ` Alexander Shishkin
2010-11-11 21:16 ` Thomas Gleixner
2010-11-11 22:11 ` Kyle Moffett
2010-11-11 22:36 ` john stultz
2010-11-11 23:19 ` Kyle Moffett
2010-11-11 23:41 ` john stultz
2010-11-11 23:45 ` john stultz
2010-11-11 22:50 ` Thomas Gleixner
2010-11-12 2:35 ` Davide Libenzi
2010-11-17 19:06 ` Alexander Shishkin
2010-11-17 20:42 ` Davide Libenzi
2010-11-17 21:29 ` Alexander Shishkin
2010-11-17 21:34 ` Kay Sievers
2010-11-18 15:59 ` Alexander Shishkin
2010-11-17 21:46 ` Thomas Gleixner
2010-11-18 9:49 ` Alexander Shishkin
2010-11-18 13:08 ` Artem Bityutskiy
2010-11-12 9:25 ` Alan Cox
2010-11-12 10:53 ` Richard Cochran
2010-11-12 11:25 ` Alan Cox
2010-11-12 10:47 ` Kay Sievers
2010-11-12 12:30 ` Alexander Shishkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1289503802-22444-1-git-send-email-virtuoso@slind.org \
--to=virtuoso@slind.org \
--cc=akpm@linux-foundation.org \
--cc=chris.friesen@genband.com \
--cc=gregkh@suse.de \
--cc=hpa@zytor.com \
--cc=johnstul@us.ibm.com \
--cc=kay.sievers@vrfy.org \
--cc=kirill@shutemov.name \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®