• Srivatsa Vaddagiri's avatar
    sched: fix high wake up latencies with FAIR_USER_SCHED · 296825cb
    Srivatsa Vaddagiri authored
    The reason why we are getting better wakeup latencies for
    !FAIR_USER_SCHED is because of this snippet of code in place_entity():
    
    	if (!initial) {
    		/* sleeps upto a single latency don't count. */
    		if (sched_feat(NEW_FAIR_SLEEPERS) && entity_is_task(se))
    						     ^^^^^^^^^^^^^^^^^^
    			vruntime -= sysctl_sched_latency;
    
    		/* ensure we never gain time by being placed backwards. */
    		vruntime = max_vruntime(se->vruntime, vruntime);
    	}
    
    NEW_FAIR_SLEEPERS feature gives credit for sleeping only to tasks and
    not group-level entities. With the patch attached, I could see that
    wakeup latencies with FAIR_USER_SCHED are restored to the same level as
    !FAIR_USER_SCHED.
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    296825cb
sched_fair.c 34.7 KB