Messages in this thread | | | Subject | Re: [patch] sched: fix migration thread runtime bogosity | From | Peter Zijlstra <> | Date | Fri, 03 Aug 2012 22:39:15 +0200 |
| |
On Fri, 2012-08-03 at 15:42 +0200, Mike Galbraith wrote: > Greetings, > > I have two bug reports of absurd migration thread CPU usage, one of them > with a link to a bisection.. > > https://bugs.gentoo.org/show_bug.cgi?id=394487 > > ..fingering d670ec13 - posix-cpu-timers: Cure SMP wobbles > > I reproduced with my -rt kernel and 3.4, but didn't manage to reproduce > with the 3.0 NOPREEMPT kernel it was reported against.
Ah, I've seen similar reports, never managed to reproduce though.
> Signed-off-by: Mike Galbraith <efault@gmx.de> > diff --git a/kernel/sched/core.c b/kernel/sched/core.c > index 82ad284..82a78a6 100644 > --- a/kernel/sched/core.c > +++ b/kernel/sched/core.c > @@ -974,6 +974,13 @@ void sched_set_stop_task(int cpu, struct task_struct *stop) > sched_setscheduler_nocheck(stop, SCHED_FIFO, ¶m); > > stop->sched_class = &stop_sched_class; > + > + /* Zero stale values for our non-accountable thread. */ > + stop->se.exec_start = 0; > + stop->se.sum_exec_runtime = 0; > + stop->se.prev_sum_exec_runtime = 0; > + stop->stime = stop->stimescaled = 0; > + stop->nvcsw = stop->nivcsw = 0; > } > > cpu_rq(cpu)->stop = stop;
Now the question is, how did that stop thing get any time to begin with? Are we hotplugging or somesuch sillyness?
Anyway, I think I like B best, could you re-submit as a proper patch so I can press the magic button that queues stuff?
| |