Messages in this thread | | | Date | Fri, 01 Jun 2007 15:16:55 +0800 | From | Li Yu <> | Subject | Re: [patch] CFS scheduler, -v14 |
| |
Ingo Molnar wrote: > * Li Yu <raise.sail@gmail.com> wrote: > > >> static void distribute_fair_add(struct rq *rq, s64 delta) >> { >> struct task_struct *curr = rq->curr; >> s64 delta_fair = 0; >> >> if (!(sysctl_sched_load_smoothing & 32)) >> return; >> >> if (rq->nr_running) { >> delta_fair = div64_s(delta, rq->nr_running); >> /* >> * The currently running task's next wait_runtime value does >> * not depend on the fair_clock, so fix it up explicitly: >> */ >> add_wait_runtime(rq, curr, -delta_fair); >> rq->fair_clock -= delta_fair; >> } >> } >> >> See this line: >> >> delta_fair = div64_s(delta, rq->nr_running); >> >> Ingo, should we be replace "rq->nr_running" with "rq->raw_load_weight" >> here? >> > > that would break the code. The handling of sleep periods is basically > heuristics and using nr_running here appears to be 'good enough' in > practice. > > Thanks, I am wrong at seeing the delta variable is represented by virtual time unit. if the code does as I said, the delta_fair may be too small to meanless.
Also, I have want to know what's real meaning of
add_wait_runtime(rq, curr, delta_mine - delta_exec);
in update_curr(), IMHO, it should be
add_wait_runtime(rq, curr, delta_mine - delta_fair);
Is this just another heuristics? or my opinion is wrong again? :-)
Good luck.
- Li Yu
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |