--- linux-2.6.25-devel/kernel/sched_fair.c.orig 2008-04-03 14:48:51.000000000 +0100 +++ linux-2.6.25-devel/kernel/sched_fair.c 2008-04-03 16:49:34.000000000 +0100 @@ -510,7 +510,7 @@ if (!initial) { /* sleeps upto a single latency don't count. */ - if (sched_feat(NEW_FAIR_SLEEPERS)) { + if (sched_feat(NEW_FAIR_SLEEPERS) && entity_is_task(se)) { vruntime -= calc_delta_fair(sysctl_sched_latency, &cfs_rq->load); } @@ -1145,7 +1145,7 @@ * More easily preempt - nice tasks, while not making * it harder for + nice tasks. */ - if (unlikely(se->load.weight > NICE_0_LOAD)) + if (unlikely(se->load.weight != NICE_0_LOAD)) gran = calc_delta_fair(gran, &se->load); if (pse->vruntime + gran < se->vruntime)