John Stultz
96efdcf2d0
ntp: Do leapsecond adjustment in adjtimex read path
...
Since the leapsecond is applied at tick-time, this means there is a
small window of time at the start of a leap-second where we cross into
the next second before applying the leap.
This patch modified adjtimex so that the leap-second is applied on the
second edge. Providing more correct leapsecond behavior.
This does make it so that adjtimex()'s returned time values can be
inconsistent with time values read from gettimeofday() or
clock_gettime(CLOCK_REALTIME,...) for a brief period of one tick at
the leapsecond. However, those other interfaces do not provide the
TIME_OOP time_state return that adjtimex() provides, which allows the
leapsecond to be properly represented. They instead only see a time
discontinuity, and cannot tell the first 23:59:59 from the repeated
23:59:59 leap second.
This seems like a reasonable tradeoff given clock_gettime() /
gettimeofday() cannot properly represent a leapsecond, and users
likely care more about performance, while folks who are using
adjtimex() more likely care about leap-second correctness.
Signed-off-by: John Stultz <john.stultz@linaro.org>
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: Ingo Molnar <mingo@kernel.org>
Link: http://lkml.kernel.org/r/1434063297-28657-5-git-send-email-john.stultz@linaro.org
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-06-12 11:15:49 +02:00
..
bpf
bpf: fix 64-bit divide
2015-04-27 23:11:49 -04:00
configs
debug
debug: prevent entering debug mode on panic/exception.
2015-02-19 12:39:03 -06:00
events
Merge branch 'linus' into timers/core
2015-05-19 16:12:32 +02:00
gcov
gcov: fix softlockups
2015-04-17 09:04:08 -04:00
irq
genirq: Set IRQCHIP_SKIP_SET_WAKE flag for dummy_irq_chip
2015-04-24 20:57:06 +02:00
livepatch
Merge branch 'for-4.1/core-noarch' into for-linus
2015-04-13 23:57:20 +02:00
locking
Merge branch 'linus' into timers/core
2015-05-19 16:12:32 +02:00
power
Merge back earlier suspend/hibernate material for v4.1.
2015-04-10 12:01:59 +02:00
printk
TTY/Serial patches for 4.1-rc1
2015-04-21 09:33:10 -07:00
rcu
Merge branch 'linus' into timers/core
2015-05-19 16:12:32 +02:00
sched
Merge branch 'linus' into timers/core
2015-05-19 16:12:32 +02:00
time
ntp: Do leapsecond adjustment in adjtimex read path
2015-06-12 11:15:49 +02:00
trace
tracing: Make ftrace_print_array_seq compute buf_len
2015-05-06 23:03:23 -04:00
.gitignore
acct.c
acct: check FMODE_CAN_WRITE
2015-04-11 22:27:55 -04:00
async.c
audit.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
audit.h
Merge branch 'upstream' of git://git.infradead.org/users/pcmoore/audit
2015-04-22 14:49:23 -07:00
audit_tree.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
audit_watch.c
VFS: audit: d_backing_inode() annotations
2015-04-15 15:06:55 -04:00
auditfilter.c
Merge branch 'upstream' of git://git.infradead.org/users/pcmoore/audit
2015-02-11 20:07:47 -08:00
auditsc.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2015-04-26 17:22:07 -07:00
backtracetest.c
bounds.c
capability.c
kernel: conditionally support non-root users, groups and capabilities
2015-04-15 16:35:22 -07:00
cgroup.c
cgroup: remove use of seq_printf return value
2015-04-15 16:35:25 -07:00
cgroup_freezer.c
compat.c
all arches, signal: move restart_block to struct task_struct
2015-02-12 18:54:12 -08:00
configs.c
context_tracking.c
context_tracking: Export context_tracking_user_enter/exit
2015-03-09 15:43:00 +01:00
cpu.c
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2015-04-14 13:36:04 -07:00
cpu_pm.c
cpuset.c
kernel, cpuset: remove exception for __GFP_THISNODE
2015-04-14 16:49:03 -07:00
crash_dump.c
cred.c
kernel: conditionally support non-root users, groups and capabilities
2015-04-15 16:35:22 -07:00
delayacct.c
dma.c
elfcore.c
exec_domain.c
Remove rest of exec domains.
2015-04-12 21:03:31 +02:00
exit.c
Remove execution domain support
2015-04-12 20:58:24 +02:00
extable.c
fork.c
oprofile: reduce mmap_sem hold for mm->exe_file
2015-04-17 09:04:11 -04:00
freezer.c
futex.c
futex: Remove bogus hrtimer_active() check
2015-04-22 17:06:51 +02:00
futex_compat.c
groups.c
kernel: conditionally support non-root users, groups and capabilities
2015-04-15 16:35:22 -07:00
hung_task.c
kernel/hung_task.c: change hung_task.c to use for_each_process_thread()
2015-04-15 16:35:22 -07:00
irq_work.c
jump_label.c
kallsyms.c
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kexec.c
kexec: allocate the kexec control page with KEXEC_CONTROL_MEMORY_GFP
2015-04-23 16:52:01 +02:00
kmod.c
kprobes.c
kprobes: makes kprobes/enabled works correctly for optimized kprobes.
2015-02-13 21:21:42 -08:00
ksysfs.c
kthread.c
latencytop.c
Makefile
modsign: change default key details
2015-04-30 09:35:41 -07:00
module-internal.h
module.c
Quentin opened a can of worms by adding extable entry checking to modpost,
2015-04-22 09:49:24 -07:00
module_signing.c
notifier.c
nsproxy.c
padata.c
padata: use %*pb[l] to print bitmaps including cpumasks and nodemasks
2015-02-13 21:21:38 -08:00
panic.c
params.c
params: handle quotes properly for values not of form foo="bar".
2015-04-15 13:31:23 +09:30
pid.c
fork: report pid reservation failure properly
2015-04-17 09:04:06 -04:00
pid_namespace.c
profile.c
profile: use %*pb[l] to print bitmaps including cpumasks and nodemasks
2015-02-13 21:21:38 -08:00
ptrace.c
ptrace: ptrace_detach() can no longer race with SIGKILL
2015-04-17 09:04:06 -04:00
range.c
reboot.c
kernel/reboot.c: add orderly_reboot for graceful reboot
2015-04-15 16:35:23 -07:00
relay.c
VFS: kernel/: d_inode() annotations
2015-04-15 15:06:55 -04:00
resource.c
kernel/resource.c: remove deprecated __check_region() and friends
2015-04-15 16:35:22 -07:00
seccomp.c
seccomp: cap SECCOMP_RET_ERRNO data to MAX_ERRNO
2015-02-17 14:34:55 -08:00
signal.c
signal: remove warning about using SI_TKILL in rt_[tg]sigqueueinfo
2015-04-17 09:04:06 -04:00
smp.c
smp: Fix error case handling in smp_call_function_*()
2015-04-19 13:19:23 -07:00
smpboot.c
smpboot: Add common code for notification from dying CPU
2015-03-11 13:20:25 -07:00
smpboot.h
softirq.c
stacktrace.c
stop_machine.c
sys.c
prctl: avoid using mmap_sem for exe_file serialization
2015-04-17 09:04:07 -04:00
sys_ni.c
kernel: conditionally support non-root users, groups and capabilities
2015-04-15 16:35:22 -07:00
sysctl.c
kernel/sysctl.c: detect overflows when converting to int
2015-04-17 09:04:08 -04:00
sysctl_binary.c
system_certificates.S
system_keyring.c
task_work.c
taskstats.c
test_kprobes.c
torture.c
tracepoint.c
tsacct.c
uid16.c
up.c
user-return-notifier.c
user.c
user_namespace.c
utsname.c
utsname_sysctl.c
watchdog.c
watchdog: Fix merge 'conflict'
2015-05-18 10:08:29 -07:00
workqueue.c
workqueue: Reorder sysfs code
2015-04-06 11:16:04 -04:00
workqueue_internal.h