[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1288809079-14663-1-git-send-email-john.stultz@linaro.org>
Date: Wed, 3 Nov 2010 11:31:12 -0700
From: John Stultz <john.stultz@...aro.org>
To: LKML <linux-kernel@...r.kernel.org>
Cc: John Stultz <johnstul@...ibm.com>,
Alessandro Zummo <a.zummo@...ertech.it>,
Thomas Gleixner <tglx@...utronix.de>,
Richard Cochran <richardcochran@...il.com>,
Arve Hjønnevåg <arve@...roid.com>
Subject: [PATCH 0/7] Posix interface for RTC (v2)
From: John Stultz <johnstul@...ibm.com>
So I think this patch set is starting to shape up, and
it has been functioning pretty well in my testing, so
I wanted to send it out again for review.
The first two patches lay groundwork, pulling the timerlist
infrastructure out of hrtimers and into common code.
The next two patches rework the RTC code, so the interface is
a little more abstracted away from the hardware, allowing
us to multiplex timers from different applications ontop of
a single RTC device, and cleaning up the now redundant older
emulation layer.
This is where the patchset diverges into two paths:
The next two patches provide a posix interface layer ontop of
the RTC device. One of the patches, provided by Richard Cochran,
allows for dynamic posix clock registration and is likely to be
reworked here shortly. The other implements the posix interface.
This interface exposes the actual RTC time and allows timers
to be set against that time domain, which may not stay in sync
with the kernel's system time. It also allows wakeup timers to be
triggered in the future when the machine may be suspended.
The last patch takes a different approach. It too provides a
posix interface that can be used to trigger wakeup alarms
when the machine is suspended, but it uses a bit of a hybrid
method, basing timers off the system time clock ids (ie:
CLOCK_REALTIME/MONOTONIC) while the system is running, and
then setting the RTC to fire only when we go to suspend.
This hybrid approach was inspired by the Android Alarm driver,
which uses this same method, but exposes the interface to
userland via ioctl device instead of the posix interface.
I wanted to send out both of these methods to get some
feedback on which direction (or possibly both) people
would prefer to see.
Any other feedback or comments would also be appreciated!
thanks
-john
CC: Alessandro Zummo <a.zummo@...ertech.it>
CC: Thomas Gleixner <tglx@...utronix.de>
CC: Richard Cochran <richardcochran@...il.com>
CC: Arve Hjønnevåg <arve@...roid.com>
John Stultz (6):
[RFC] Introduce timerlist infrastructure.
[RFC] hrtimers: Convert hrtimers to use timerlist infrastructure
[RFC] RTC: Rework RTC code to use timerlist for events
[RFC] RTC: Remove UIE emulation
[RFC] RTC: Add posix clock/timer interface
[RFC] Introduce Alarm (hybrid) timers
Richard Cochran (1):
[RFC] posix clocks: dynamic clock ids.
drivers/rtc/Makefile | 2 +-
drivers/rtc/class.c | 15 +
drivers/rtc/interface.c | 579 ++++++++++++++++++++++++++----------------
drivers/rtc/posix.c | 258 +++++++++++++++++++
drivers/rtc/rtc-dev.c | 104 --------
drivers/rtc/rtc-lib.c | 26 ++
drivers/rtc/rtc-sysfs.c | 10 +
include/linux/alarmtimer.h | 29 ++
include/linux/hrtimer.h | 32 +--
include/linux/posix-timers.h | 11 +-
include/linux/rtc.h | 52 +++-
include/linux/time.h | 4 +
include/linux/timerlist.h | 37 +++
kernel/hrtimer.c | 86 +++----
kernel/posix-timers.c | 41 +++-
kernel/time/Makefile | 2 +-
kernel/time/alarmtimer.c | 522 +++++++++++++++++++++++++++++++++++++
kernel/time/timer_list.c | 8 +-
lib/Makefile | 2 +-
lib/timerlist.c | 115 +++++++++
20 files changed, 1503 insertions(+), 432 deletions(-)
create mode 100644 drivers/rtc/posix.c
create mode 100644 include/linux/alarmtimer.h
create mode 100644 include/linux/timerlist.h
create mode 100644 kernel/time/alarmtimer.c
create mode 100644 lib/timerlist.c
--
1.7.3.2.146.gca209
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists