• Ingo Molnar's avatar
    sched: fix SMT scheduler bug · d499ac7a
    Ingo Molnar authored
    The SMT scheduler incorrectly skips kernel threads even if they are
    runnable (but they are preempted by a higher-prio user-space task which got
    SMT-delayed by an even higher-priority task running on a sibling CPU).
    
    Fix this for now by only doing the SMT-nice optimization if the
    to-be-delayed task is the only runnable task.  (This should cover most of
    the real-life cases anyway.)
    
    This bug has been in the SMT scheduler since 2.6.17 or so, but has only
    been noticed now by the active check in the dynticks code.
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Cc: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
    Cc: Nick Piggin <nickpiggin@yahoo.com.au>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Chuck Ebbert <cebbert@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    d499ac7a
sched.c 177 KB