]> git.karo-electronics.de Git - karo-tx-linux.git/commit
sched: kill migration thread in CPU_POST_DEAD instead of CPU_DEAD
authorAmit Arora <amitarora@in.ibm.com>
Wed, 19 May 2010 09:05:57 +0000 (14:35 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 20 Sep 2010 20:17:45 +0000 (13:17 -0700)
commit6f6198a78a34e3d8623f717d05087267e8dedef2
tree55f1fba919d902bf84c540f6281182dc35a68339
parentbd614669ff84a58b5605e7a3c27372ecbf9ff3d1
sched: kill migration thread in CPU_POST_DEAD instead of CPU_DEAD

[Fixed in a different manner upstream, due to rewrites in this area]

Problem : In a stress test where some heavy tests were running along with
regular CPU offlining and onlining, a hang was observed. The system seems to
be hung at a point where migration_call() tries to kill the migration_thread
of the dying CPU, which just got moved to the current CPU. This migration
thread does not get a chance to run (and die) since rt_throttled is set to 1
on current, and it doesn't get cleared as the hrtimer which is supposed to
reset the rt bandwidth (sched_rt_period_timer) is tied to the CPU which we just
marked dead!

Solution : This patch pushes the killing of migration thread to "CPU_POST_DEAD"
event. By then all the timers (including sched_rt_period_timer) should have got
migrated (along with other callbacks).

Signed-off-by: Amit Arora <amitarora@in.ibm.com>
Signed-off-by: Gautham R Shenoy <ego@in.ibm.com>
Signed-off-by: Mike Galbraith <efault@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
kernel/sched.c