Re: [patch v8 4/9] sched: fix slept time double counting in enqueue entity

From: Lei Wen
Date: Fri Jun 21 2013 - 05:18:27 EST


Alex,

On Fri, Jun 21, 2013 at 4:56 PM, Alex Shi <seakeel@xxxxxxxxx> wrote:
> On 06/21/2013 10:50 AM, Lei Wen wrote:
>> I see your point... I made the mistake that update the wrong patch...
>> Please help check this one.
>>
>> commit 5fc3d5c74f8359ef382d9a20ffe657ffc237c109
>> Author: Lei Wen <leiwen@xxxxxxxxxxx>
>> Date: Thu Jun 20 10:43:59 2013 +0800
>>
>> sched: fix potential twice decay issue
>>
>> Signed-off-by: Lei Wen <leiwen@xxxxxxxxxxx>
>>
>> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
>> index c61a614..9640c66 100644
>> --- a/kernel/sched/fair.c
>> +++ b/kernel/sched/fair.c
>> @@ -5856,7 +5856,8 @@ static void switched_from_fair(struct rq *rq,
>> struct task_struct *p)
>> */
>> if (p->se.avg.decay_count) {
>> struct cfs_rq *cfs_rq = cfs_rq_of(&p->se);
>> - __synchronize_entity_decay(&p->se);
>> + p->se.avg.last_runnable_update +=
>> + __synchronize_entity_decay(&p->se);
>
> it is not needed, since the last_runnable_update will be reset if it
> will be switched to fair.

When it is backed to fair class, the only thing scheduler would do
is to check whether it could preempt current running task, so
where to reset the last_runnable_update?

Thanks,
Lei

>
> --
> Thanks
> Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/