• Gregory Haskins's avatar
    sched: fix cpupri hotplug support · 1f11eb6a
    Gregory Haskins authored
    The RT folks over at RedHat found an issue w.r.t. hotplug support which
    was traced to problems with the cpupri infrastructure in the scheduler:
    
    https://bugzilla.redhat.com/show_bug.cgi?id=449676
    
    This bug affects 23-rt12+, 24-rtX, 25-rtX, and sched-devel.  This patch
    applies to 25.4-rt4, though it should trivially apply to most cpupri enabled
    kernels mentioned above.
    
    It turned out that the issue was that offline cpus could get inadvertently
    registered with cpupri so that they were erroneously selected during
    migration decisions.  The end result would be an OOPS as the offline cpu
    had tasks routed to it.
    
    This patch generalizes the old join/leave domain interface into an
    online/offline interface, and adjusts the root-domain/hotplug code to
    utilize it.
    
    I was able to easily reproduce the issue prior to this patch, and am no
    longer able to reproduce it after this patch.  I can offline cpus
    indefinately and everything seems to be in working order.
    
    Thanks to Arnaldo (acme), Thomas, and Peter for doing the legwork to point
    me in the right direction.  Also thank you to Peter for reviewing the
    early iterations of this patch.
    Signed-off-by: default avatarGregory Haskins <ghaskins@novell.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    1f11eb6a
sched.c 214 KB