All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5 v2] Fixes for leapsecond expiring early ABS_TIME CLOCK_REALTIME timers
@ 2015-06-11 22:54 John Stultz
  2015-06-11 22:54 ` [PATCH 1/5] time: Move clock_was_set_seq update to before we update the shadow-timekeeper John Stultz
                   ` (6 more replies)
  0 siblings, 7 replies; 23+ messages in thread
From: John Stultz @ 2015-06-11 22:54 UTC (permalink / raw)
  To: linux-kernel
  Cc: John Stultz, Prarit Bhargava, Daniel Bristot de Oliveira,
	Richard Cochran, Jan Kara, Jiri Bohac, Thomas Gleixner,
	Ingo Molnar, Shuah Khan

So this is a second round at trying to address the issue, trying
to integrate feedback from Ingo and Thomas, trying to simplify
what I can. I've also split out the changes so each can be
more easily reviewed. Its still not tiny, but its simpler.

This series is against tip/timers/core, and the first patch isn't
strictly related but is a fix that is needed in tip/timers/core.

As Prarit reported here:
https://lkml.org/lkml/2015/5/27/458

Since the leapsecond is applied at timer tick time, and not
the actual second edge, ABS_TIME CLOCK_REALTIME timers set for
right after the leapsecond could fire a second early, since
some timers may be expired before we trigger the timekeeping
timer, which then applies the leapsecond.

Thus this patch series tries to address this issue, including
extending the leap-a-day test to catch this problem, as well
as other relevant fixups I found while working on the code.

This series has only had limited testing, so I wanted to send
it out for initial review and comment. Folks can grab this tree
via git for testing here:
https://git.linaro.org/people/john.stultz/linux.git dev/early-leap-timer

Thoughts and feedback would be appreciated!
thanks
-john

Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Daniel Bristot de Oliveira <bristot@redhat.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Jiri Bohac <jbohac@suse.cz>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Shuah Khan <shuahkh@osg.samsung.com>


John Stultz (5):
  time: Move clock_was_set_seq update to before we update the
    shadow-timekeeper
  ntp: Introduce and use SECS_PER_DAY macro instead of 86400
  time: Do leapsecond adjustment to avoid early timer expirations
  ntp: Do leapsecond adjustment in adjtimex read path
  selftests: timers: Add leap-second timer edge testing to leap-a-day.c

 include/linux/time64.h                      |  1 +
 include/linux/timekeeper_internal.h         |  2 +
 kernel/time/ntp.c                           | 61 ++++++++++++++++++++---
 kernel/time/ntp_internal.h                  |  1 +
 kernel/time/timekeeping.c                   | 35 +++++++++++--
 tools/testing/selftests/timers/leap-a-day.c | 76 +++++++++++++++++++++++++++--
 6 files changed, 160 insertions(+), 16 deletions(-)

-- 
1.9.1


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2015-06-15 18:55 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-11 22:54 [PATCH 0/5 v2] Fixes for leapsecond expiring early ABS_TIME CLOCK_REALTIME timers John Stultz
2015-06-11 22:54 ` [PATCH 1/5] time: Move clock_was_set_seq update to before we update the shadow-timekeeper John Stultz
2015-06-12  9:31   ` [tip:timers/core] time: Move clock_was_set_seq update before updating shadow-timekeeper tip-bot for John Stultz
2015-06-11 22:54 ` [PATCH 2/5] ntp: Introduce and use SECS_PER_DAY macro instead of 86400 John Stultz
2015-06-12  9:31   ` [tip:timers/core] " tip-bot for John Stultz
2015-06-11 22:54 ` [PATCH 3/5] time: Do leapsecond adjustment to avoid early timer expirations John Stultz
2015-06-12  9:32   ` [tip:timers/core] time: Prevent early expiry of hrtimers[ CLOCK_REALTIME] at the leap second edge tip-bot for John Stultz
2015-06-11 22:54 ` [PATCH 4/5] ntp: Do leapsecond adjustment in adjtimex read path John Stultz
2015-06-12  7:37   ` Richard Cochran
2015-06-12  9:32   ` [tip:timers/core] " tip-bot for John Stultz
2015-06-11 22:54 ` [PATCH 5/5] selftests: timers: Add leap-second timer edge testing to leap-a-day.c John Stultz
2015-06-12  9:32   ` [tip:timers/core] " tip-bot for John Stultz
2015-06-12 14:52 ` [PATCH 0/5 v2] Fixes for leapsecond expiring early ABS_TIME CLOCK_REALTIME timers Dave Jones
2015-06-12 14:55   ` Prarit Bhargava
2015-06-12 14:59     ` Dave Jones
2015-06-12 15:02       ` Prarit Bhargava
2015-06-12 17:58   ` John Stultz
2015-06-12 18:06     ` John Stultz
2015-06-12 18:11       ` Thomas Gleixner
2015-06-13  7:17         ` Ingo Molnar
2015-06-15 13:10 ` Prarit Bhargava
2015-06-15 13:46   ` Prarit Bhargava
2015-06-15 18:55     ` John Stultz

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.