X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=kernel%2Fsched_fair.c;h=6c091d6e159d01fb23c0dd786495c533cb005c5b;hb=9f10d9ee0ac6d79d7bc8b9a158bf4a29322d84d3;hp=72e25c7a3a186dc9830c206662dca4ad7d5892cb;hpb=bd45ac0c5daae35e7c71138172e63df5cf644cf6;p=mv-sheeva.git diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 72e25c7a3a1..6c091d6e159 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c @@ -520,7 +520,7 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) if (!initial) { /* sleeps upto a single latency don't count. */ - if (sched_feat(NEW_FAIR_SLEEPERS) && entity_is_task(se)) + if (sched_feat(NEW_FAIR_SLEEPERS)) vruntime -= sysctl_sched_latency; /* ensure we never gain time by being placed backwards. */ @@ -1106,7 +1106,11 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p) } gran = sysctl_sched_wakeup_granularity; - if (unlikely(se->load.weight != NICE_0_LOAD)) + /* + * More easily preempt - nice tasks, while not making + * it harder for + nice tasks. + */ + if (unlikely(se->load.weight > NICE_0_LOAD)) gran = calc_delta_fair(gran, &se->load); if (pse->vruntime + gran < se->vruntime)