• Peter Zijlstra's avatar
    sched: Do less agressive buddy clearing · 92f6a5e3
    Peter Zijlstra authored
    Yanmin reported a hackbench regression due to:
    
     > commit de69a80b
     > Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
     > Date:   Thu Sep 17 09:01:20 2009 +0200
     >
     >     sched: Stop buddies from hogging the system
    
    I really liked de69a80b, and it affecting hackbench shows I wasn't
    crazy ;-)
    
    So hackbench is a multi-cast, with one sender spraying multiple
    receivers, who in their turn don't spray back.
    
    This would be exactly the scenario that patch 'cures'. Previously
    we would not clear the last buddy after running the next task,
    allowing the sender to get back to work sooner than it otherwise
    ought to have been, increasing latencies for other tasks.
    
    Now, since those receivers don't poke back, they don't enforce the
    buddy relation, which means there's nothing to re-elect the sender.
    
    Cure this by less agressively clearing the buddy stats. Only clear
    buddies when they were not chosen. It should still avoid a buddy
    sticking around long after its served its time.
    Reported-by: default avatar"Zhang, Yanmin" <yanmin_zhang@linux.intel.com>
    Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
    CC: Mike Galbraith <efault@gmx.de>
    LKML-Reference: <1255084986.8802.46.camel@laptop>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    92f6a5e3
sched_fair.c 47.3 KB