Re: [patch] CFS scheduler, -v14

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ingo Molnar wrote:
* Li Yu <[email protected]> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux