Skip to content

Commit

Permalink
sched: monitor clock underflows in /proc/sched_debug
Browse files Browse the repository at this point in the history
We monitor clock overflows, let's also monitor clock underflows.

Signed-off-by: Guillaume Chazarain <guichaz@yahoo.fr>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Guillaume Chazarain authored and Ingo Molnar committed Jan 25, 2008
1 parent 782daee commit cc203d2
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
6 changes: 4 additions & 2 deletions kernel/sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,7 @@ struct rq {
u64 clock, prev_clock_raw;
s64 clock_max_delta;

unsigned int clock_warps, clock_overflows;
unsigned int clock_warps, clock_overflows, clock_underflows;
u64 idle_clock;
unsigned int clock_deep_idle_events;
u64 tick_timestamp;
Expand Down Expand Up @@ -3736,8 +3736,10 @@ void scheduler_tick(void)
/*
* Let rq->clock advance by at least TICK_NSEC:
*/
if (unlikely(rq->clock < next_tick))
if (unlikely(rq->clock < next_tick)) {
rq->clock = next_tick;
rq->clock_underflows++;
}
rq->tick_timestamp = rq->clock;
update_cpu_load(rq);
curr->sched_class->task_tick(rq, curr, 0);
Expand Down
1 change: 1 addition & 0 deletions kernel/sched_debug.c
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,7 @@ static void print_cpu(struct seq_file *m, int cpu)
PN(prev_clock_raw);
P(clock_warps);
P(clock_overflows);
P(clock_underflows);
P(clock_deep_idle_events);
PN(clock_max_delta);
P(cpu_load[0]);
Expand Down

0 comments on commit cc203d2

Please sign in to comment.