Steven Rostedt
af52a90a14
sched_clock: stop maximum check on NO HZ
...
Working with ftrace I would get large jumps of 11 millisecs or more with
the clock tracer. This killed the latencing timings of ftrace and also
caused the irqoff self tests to fail.
What was happening is with NO_HZ the idle would stop the jiffy counter and
before the jiffy counter was updated the sched_clock would have a bad
delta jiffies to compare with the gtod with the maximum.
The jiffies would stop and the last sched_tick would record the last gtod.
On wakeup, the sched clock update would compare the gtod + delta jiffies
(which would be zero) and compare it to the TSC. The TSC would have
correctly (with a stable TSC) moved forward several jiffies. But because the
jiffies has not been updated yet the clock would be prevented from moving
forward because it would appear that the TSC jumped too far ahead.
The clock would then virtually stop, until the jiffies are updated. Then
the next sched clock update would see that the clock was very much behind
since the delta jiffies is now correct. This would then jump the clock
forward by several jiffies.
This caused ftrace to report several milliseconds of interrupts off
latency at every resume from NO_HZ idle.
This patch adds hooks into the nohz code to disable the checking of the
maximum clock update when nohz is in effect. It resumes the max check
when nohz has updated the jiffies again.
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Cc: Steven Rostedt <srostedt@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-07-11 15:53:26 +02:00
..
irq
genirq: reenable a nobody cared disabled irq when a new driver arrives
2008-05-02 13:40:34 +02:00
power
Merge branches 'release', 'acpica', 'bugzilla-10224', 'bugzilla-9772', 'bugzilla-9916', 'ec', 'eeepc', 'idle', 'misc', 'pm-legacy', 'sysfs-links-2.6.26', 'thermal', 'thinkpad' and 'video' into release
2008-04-30 13:58:00 -04:00
time
sched_clock: stop maximum check on NO HZ
2008-07-11 15:53:26 +02:00
.gitignore
acct.c
audit.c
[PATCH] remove useless argument type in audit_filter_user()
2008-06-24 23:36:35 -04:00
audit.h
[PATCH 1/2] audit: move extern declarations to audit.h
2008-04-28 06:28:04 -04:00
audit_tree.c
[PATCH] list_for_each_rcu must die: audit
2008-05-17 03:30:23 -04:00
auditfilter.c
[PATCH] remove useless argument type in audit_filter_user()
2008-06-24 23:36:35 -04:00
auditsc.c
[PATCH] new predicate - AUDIT_FILETYPE
2008-04-28 06:28:37 -04:00
backtracetest.c
bounds.c
Add kbuild.h that contains common definitions for kbuild users
2008-04-29 08:06:29 -07:00
capability.c
security: filesystem capabilities: fix fragile setuid fixup code
2008-07-04 10:40:08 -07:00
cgroup.c
cgroups: remove node_ prefix_from ns subsystem
2008-05-24 09:56:14 -07:00
cgroup_debug.c
CGroup API files: move "releasable" to cgroup_debug subsystem
2008-04-29 08:06:09 -07:00
compat.c
ntp: support for TAI
2008-05-01 08:03:59 -07:00
configs.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
cpu.c
kernel: replace remaining __FUNCTION__ occurrences
2008-04-30 08:29:54 -07:00
cpuset.c
Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2008-06-20 12:37:13 -07:00
delayacct.c
dma.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
exec_domain.c
exit.c
signals: fix sigqueue_free() vs __exit_signal() race
2008-05-24 09:56:10 -07:00
extable.c
fork.c
[PATCH] dup_fd() fixes, part 1
2008-05-16 17:22:26 -04:00
futex.c
futexes: fix fault handling in futex_lock_pi
2008-06-23 13:31:15 +02:00
futex_compat.c
hrtimer.c
hrtimer: prevent migration for raising softirq
2008-07-03 11:36:48 -07:00
itimer.c
kallsyms.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
Kconfig.hz
Kconfig.preempt
kexec.c
kexec: make extended crashkernel= syntax less confusing
2008-05-01 08:04:00 -07:00
kfifo.c
kgdb.c
kgdb: sparse fix
2008-06-24 10:52:55 -05:00
kmod.c
[PATCH] split linux/file.h
2008-05-01 13:08:16 -04:00
kprobes.c
kernel/kprobes.c: Made kprobe_blacklist static.
2008-07-10 10:13:51 -07:00
ksysfs.c
kthread.c
Deprecate find_task_by_pid()
2008-04-30 08:29:48 -07:00
latencytop.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
lockdep.c
lockdep_internals.h
lockdep_proc.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
Makefile
sched: add optional support for CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
2008-05-05 23:56:18 +02:00
marker.c
make marker_debug static
2008-04-30 08:29:49 -07:00
module.c
modules: proper cleanup of kobject without CONFIG_SYSFS
2008-05-23 13:09:33 +10:00
mutex-debug.c
mutex-debug.h
mutex.c
mutex.h
notifier.c
ipc: re-enable msgmni automatic recomputing msgmni if set to negative
2008-04-29 08:06:13 -07:00
ns_cgroup.c
cgroups: kernel/ns_cgroup.c should #include <linux/nsproxy.h>
2008-04-29 08:06:07 -07:00
nsproxy.c
ipc: sysvsem: refuse clone(CLONE_SYSVSEM|CLONE_NEWIPC)
2008-04-29 08:06:14 -07:00
panic.c
Taint kernel after WARN_ON(condition)
2008-04-29 08:05:59 -07:00
params.c
pid.c
pids: introduce change_pid() helper
2008-04-30 08:29:48 -07:00
pid_namespace.c
pidns: make pid->level and pid_ns->level unsigned
2008-04-30 08:29:49 -07:00
pm_qos_params.c
posix-cpu-timers.c
remove div_long_long_rem
2008-05-01 08:03:58 -07:00
posix-timers.c
signals: join send_sigqueue() with send_group_sigqueue()
2008-04-30 08:29:36 -07:00
printk.c
kernel/printk.c: Made printk_recursion_bug_msg static.
2008-07-08 18:10:34 -07:00
profile.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
ptrace.c
make generic sys_ptrace unconditional
2008-05-01 10:21:54 -07:00
rcuclassic.c
rcu: fix hotplug vs rcu race
2008-07-01 09:27:17 +02:00
rcupdate.c
rcupreempt.c
Fix PREEMPT_RCU without HOTPLUG_CPU
2008-07-10 11:13:44 -07:00
rcupreempt_trace.c
rcutorture.c
kernel: explicitly include required header files under kernel/
2008-04-29 08:06:04 -07:00
relay.c
splice: fix sendfile() issue with relay
2008-05-28 14:49:27 +02:00
res_counter.c
memcgroup: add the max_usage member on the res_counter
2008-04-29 08:06:10 -07:00
resource.c
kernel: use non-racy method for proc entries creation
2008-04-29 08:06:22 -07:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c
sched: fix divide error when trying to configure rt_period to zero
2008-07-01 08:23:24 +02:00
sched_clock.c
sched_clock: stop maximum check on NO HZ
2008-07-11 15:53:26 +02:00
sched_debug.c
revert ("sched: fair-group: SMP-nice for group scheduling")
2008-05-29 11:28:57 +02:00
sched_fair.c
sched: stop wake_affine from causing serious imbalance
2008-05-29 11:29:20 +02:00
sched_features.h
sched: /debug/sched_features
2008-04-19 19:45:00 +02:00
sched_idletask.c
sched: make rt_sched_class, idle_sched_class static
2008-05-05 23:56:17 +02:00
sched_rt.c
sched: rt: dont stop the period timer when there are tasks wanting to run
2008-06-20 11:00:19 +02:00
sched_stats.h
sched, delay accounting: fix incorrect delay time when constantly waiting on runqueue
2008-06-19 14:15:28 +02:00
seccomp.c
semaphore.c
Revert "semaphore: fix"
2008-05-10 20:43:22 -07:00
signal.c
posix timers: discard SI_TIMER signals on exec
2008-05-26 10:37:07 -07:00
softirq.c
Fix cpu hotplug problem in softirq code
2008-05-01 08:03:58 -07:00
softlockup.c
softlockup: print a module list on being stuck
2008-07-05 08:51:24 +02:00
spinlock.c
srcu.c
stacktrace.c
stop_machine.c
stop_machine: make stop_machine_run more virtualization friendly
2008-05-23 13:09:34 +10:00
sys.c
sys_prctl(): fix return of uninitialized value
2008-05-24 09:56:13 -07:00
sys_ni.c
sysctl.c
[PATCH] avoid multiplication overflows and signedness issues for max_fds
2008-05-16 17:22:52 -04:00
sysctl_check.c
taskstats.c
Use find_task_by_vpid in taskstats
2008-04-30 08:29:48 -07:00
test_kprobes.c
time.c
Make constants in kernel/timeconst.h fixed 64 bits
2008-05-02 16:18:42 -07:00
timeconst.pl
Make constants in kernel/timeconst.h fixed 64 bits
2008-05-02 16:18:42 -07:00
timer.c
debugobjects: add timer specific object debugging code
2008-04-30 08:29:53 -07:00
tsacct.c
uid16.c
asmlinkage_protect replaces prevent_tail_call
2008-04-10 17:28:26 -07:00
user.c
alloc_uid: cleanup
2008-04-30 08:29:53 -07:00
user_namespace.c
eCryptfs: make key module subsystem respect namespaces
2008-04-29 08:06:07 -07:00
utsname.c
kernel: explicitly include required header files under kernel/
2008-04-29 08:06:04 -07:00
utsname_sysctl.c
wait.c
workqueue.c
Christoph has moved
2008-07-04 10:40:04 -07:00