Messages in this thread | | | Date | Mon, 30 Jun 2008 11:17:11 +0200 | From | Ingo Molnar <> | Subject | Re: [BUG] CFS vs cpu hotplug |
| |
* Heiko Carstens <heiko.carstens@de.ibm.com> wrote:
> On Sun, Jun 29, 2008 at 12:16:56AM +0200, Dmitry Adamushko wrote: > > Hello, > > > > > > it seems to be related to migrate_dead_tasks(). > > > > Firstly I added traces to see all tasks being migrated with > > migrate_live_tasks() and migrate_dead_tasks(). On my setup the problem > > pops up (the one with "se == NULL" in the loop of > > pick_next_task_fair()) shortly after the traces indicate that some has > > been migrated with migrate_dead_tasks()). btw., I can reproduce it > > much faster now with just a plain cpu down/up loop. > > > > [disclaimer] Well, unless I'm really missing something important in > > this late hour [/desclaimer] pick_next_task() is not something > > appropriate for migrate_dead_tasks() :-) > > > > the following change seems to eliminate the problem on my setup > > (although, I kept it running only for a few minutes to get a few > > messages indicating migrate_dead_tasks() does move tasks and the > > system is still ok) > > > > [ quick hack ] > > > > @@ -5887,6 +5907,7 @@ static void migrate_dead_tasks(unsigned int dead_cpu) > > next = pick_next_task(rq, rq->curr); > > if (!next) > > break; > > + next->sched_class->put_prev_task(rq, next); > > migrate_dead(dead_cpu, next); > > > > } > > Thanks Dmitry! With your patch I cannot reproduce the bug anymore.
thanks - it passed my testing too. It's lined up for v2.6.26 merge, in tip/sched/urgent.
Avi, does this patch fix your CPU hotplug problems too?
Ingo
| |