All of lore.kernel.org
 help / color / mirror / Atom feed
From: Prarit Bhargava <prarit@redhat.com>
To: John Stultz <john.stultz@linaro.org>
Cc: linux-kernel@vger.kernel.org,
	Daniel Bristot de Oliveira <bristot@redhat.com>,
	Richard Cochran <richardcochran@gmail.com>,
	Jan Kara <jack@suse.cz>, Jiri Bohac <jbohac@suse.cz>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>,
	Shuah Khan <shuahkh@osg.samsung.com>
Subject: Re: [PATCH 0/5 v2] Fixes for leapsecond expiring early ABS_TIME CLOCK_REALTIME timers
Date: Mon, 15 Jun 2015 09:46:40 -0400	[thread overview]
Message-ID: <557ED740.7030000@redhat.com> (raw)
In-Reply-To: <557ECEB8.6010804@redhat.com>



On 06/15/2015 09:10 AM, Prarit Bhargava wrote:
> 
> 
> On 06/11/2015 06:54 PM, John Stultz wrote:
>> 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
>>
> 
> I'm testing this on a few more large CPU count systems.  So far, so good ...
> 

John, unfortunately I'm seeing failures across a lot of the large systems
dev/early-leap-timer as of this AM

[root@intel-chiefriver-04 ~]# systemctl status chronyd
chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled)
   Active: inactive (dead) since Mon 2015-06-15 09:25:33 EDT; 5s ago
  Process: 731 ExecStartPost=/usr/libexec/chrony-helper add-dhclient-servers
(code=exited, status=0/SUCCESS)
  Process: 713 ExecStart=/usr/sbin/chronyd -u chrony $OPTIONS (code=exited,
status=0/SUCCESS)
 Main PID: 724 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/chronyd.service

Jun 15 09:25:06 intel-chiefriver-04.khw.lab.eng.bos.redhat.com chronyd[724]: ...
Jun 15 09:25:06 intel-chiefriver-04.khw.lab.eng.bos.redhat.com chronyd[724]: ...
Jun 15 09:25:06 intel-chiefriver-04.khw.lab.eng.bos.redhat.com chronyd[724]: ...
Jun 15 09:25:06 intel-chiefriver-04.khw.lab.eng.bos.redhat.com chronyd[724]: ...
Jun 15 09:25:06 intel-chiefriver-04.khw.lab.eng.bos.redhat.com systemd[1]: St...
Jun 15 09:25:19 intel-chiefriver-04.khw.lab.eng.bos.redhat.com chronyd[724]: ...
Jun 15 09:25:19 intel-chiefriver-04.khw.lab.eng.bos.redhat.com chronyd[724]: ...
Jun 15 09:25:33 intel-chiefriver-04.khw.lab.eng.bos.redhat.com systemd[1]: St...
Jun 15 09:25:33 intel-chiefriver-04.khw.lab.eng.bos.redhat.com chronyd[724]: ...
Jun 15 09:25:33 intel-chiefriver-04.khw.lab.eng.bos.redhat.com systemd[1]: St...
Hint: Some lines were ellipsized, use -l to show in full.
[root@intel-chiefriver-04 ~]# ./leap-a-day -s
Setting time to speed up testing
This runs continuously. Press ctrl-c to stop

Setting time to Mon Jun 15 19:59:50 2015
Scheduling leap second for Mon Jun 15 20:00:00 2015
Setting timer for Mon Jun 15 20:00:00 2015
Mon Jun 15 19:59:57 2015 +  18177 us (0)        TIME_INS
Mon Jun 15 19:59:57 2015 + 526181 us (0)        TIME_INS
Mon Jun 15 19:59:58 2015 +  37418 us (0)        TIME_INS
Mon Jun 15 19:59:58 2015 + 546474 us (0)        TIME_INS
Mon Jun 15 19:59:59 2015 +  55724 us (0)        TIME_INS
Mon Jun 15 19:59:59 2015 + 566970 us (0)        TIME_INS
Mon Jun 15 19:59:59 2015 +   6013 us (1)        TIME_OOP - TIMER FIRED
Error: Early timer expiration!
Error: Incorrect NTP state?
Mon Jun 15 19:59:59 2015 +   6040 us (1)        TIME_OOP
Mon Jun 15 19:59:59 2015 + 517240 us (1)        TIME_OOP
Mon Jun 15 20:00:00 2015 +  28504 us (1)        TIME_WAIT
Mon Jun 15 20:00:00 2015 + 539745 us (1)        TIME_WAIT
Mon Jun 15 20:00:01 2015 +  50978 us (1)        TIME_WAIT
Mon Jun 15 20:00:01 2015 + 560360 us (1)        TIME_WAIT
Mon Jun 15 20:00:02 2015 +  69952 us (1)        TIME_WAIT
ERROR: hrtimer early expiration failure observed.
Leap complete
Errors observed

P.

  reply	other threads:[~2015-06-15 13:46 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2015-06-15 18:55     ` John Stultz

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=557ED740.7030000@redhat.com \
    --to=prarit@redhat.com \
    --cc=bristot@redhat.com \
    --cc=jack@suse.cz \
    --cc=jbohac@suse.cz \
    --cc=john.stultz@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=richardcochran@gmail.com \
    --cc=shuahkh@osg.samsung.com \
    --cc=tglx@linutronix.de \
    /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 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.