• A
    sched: Make sure timers have migrated before killing the migration_thread · 54e88fad
    Amit K. Arora 提交于
    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: NAmit Arora <aarora@in.ibm.com>
    Signed-off-by: NGautham R Shenoy <ego@in.ibm.com>
    Acked-by: NTejun Heo <tj@kernel.org>
    Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    LKML-Reference: <20100525132346.GA14986@amitarora.in.ibm.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    54e88fad
stop_machine.c 12.9 KB