Re: Network slowdown due to CFS

From: Dmitry Adamushko
Date: Wed Oct 03 2007 - 06:58:39 EST


On 03/10/2007, Dmitry Adamushko <dmitry.adamushko@xxxxxxxxx> wrote:
> On 03/10/2007, Jarek Poplawski <jarkao2@xxxxx> wrote:
> > I can't see anything about clearing. I think, this was about charging,
> > which should change the key enough, to move a task to, maybe, a better
> > place in a que (tree) than with current ways.
>
> just a quick patch, not tested and I've not evaluated all possible
> implications yet.
> But someone might give it a try with his/(her -- are even more
> welcomed :-) favourite sched_yield() load.
>
> (and white space damaged)
>
> --- sched_fair-old.c 2007-10-03 12:45:17.010306000 +0200
> +++ sched_fair.c 2007-10-03 12:44:46.899851000 +0200
> @@ -803,7 +803,35 @@ static void yield_task_fair(struct rq *r
> update_curr(cfs_rq);
>
> return;
> + } else if (sysctl_sched_compat_yield == 2) {
> + unsigned long ideal_runtime, delta_exec,
> + delta_exec_weighted;
> +
> + __update_rq_clock(rq);
> + /*
> + * Update run-time statistics of the 'current'.
> + */
> + update_curr(cfs_rq);
> +
> + /*
> + * Emulate (speed up) the effect of us being preempted
> + * by scheduler_tick().
> + */
> + ideal_runtime = sched_slice(cfs_rq, curr);
> + delta_exec = curr->sum_exec_runtime -
> curr->prev_sum_exec_runtime;
> +
> + if (ideal_runtime > delta_exec) {
> + delta_exec_weighted = ideal_runtime - delta_exec;
> +
> + if (unlikely(curr->load.weight != NICE_0_LOAD)) {
> + delta_exec_weighted =
> calc_delta_fair(delta_exec_weighted,
> +
> &se->load);
> + }


s/curr/se


--
Best regards,
Dmitry Adamushko
-
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/