History

sched clock: revert various sched_clock() changes

Found an interactivity problem on a quad core test-system - simple CPU loops would occasionally delay the system un an unacceptable way. After much debugging with Peter Zijlstra it turned out that the problem is caused by the string of sched_clock() changes - they caused the CPU clock to jump backwards a bit - which confuses the scheduler arithmetics. (which is unsigned for performance reasons) So revert: # c300ba2: sched_clock: and multiplier for TSC to gtod drift # c0c8773: sched_clock: only update deltas with local reads. # af52a90: sched_clock: stop maximum check on NO HZ # f7cce27: sched_clock: widen the max and min time This solves the interactivity problems.

Ingo Molnar committed 18 years ago

Commit e4e4e531 parent 39675e83 files · +14 −114Browse files

Showing the changes to kernel/time (1 of 3 files). Show all

Unified · Split

kernel/time/tick-sched.c+0−2
@@ -289,7 +289,6 @@ void tick_nohz_stop_sched_tick(int inidle) · 288 unmodified lines
289 ts->tick_stopped = 1;289 ts->tick_stopped = 1;
290 ts->idle_jiffies = last_jiffies;290 ts->idle_jiffies = last_jiffies;
291 rcu_enter_nohz();291 rcu_enter_nohz();
292 sched_clock_tick_stop(cpu);
293 }292 }
294 293
295 /*294 /*
@@ -392,7 +391,6 @@ void tick_nohz_restart_sched_tick(void) · 96 unmodified lines
392 select_nohz_load_balancer(0);391 select_nohz_load_balancer(0);
393 now = ktime_get();392 now = ktime_get();
394 tick_do_update_jiffies64(now);393 tick_do_update_jiffies64(now);
395 sched_clock_tick_start(cpu);
396 cpu_clear(cpu, nohz_cpu_mask);394 cpu_clear(cpu, nohz_cpu_mask);
397 395
398 /*396 /*