Re: [PATCH] sched: avoid overpull when pulling RT task

From: Mike Galbraith
Date: Mon May 16 2011 - 10:11:26 EST


On Mon, 2011-05-16 at 21:14 +0800, Hillf Danton wrote:

> In the following patch, pulling is played in two rounds. In the first round,
> the highest priority task is determined with no pull operation. Pulling is
> carried out in the second round, and if the highest priority task is pulled,
> pulling could be stopped when overload detected, to relieve overpull.
>
> Please review again, thanks.

Traversing runqueues twice to avoid some potential task bouncing during
overload situation seems like a really bad trade. Not to mention that
between pass one and pass two, the world turns under your feet.

You could do it in one pass by leaving the victim's runqueue locked
unless you find a better victim I suppose. Dunno, guess it all depends
on how much benefit the is to pulling only highest, which I can't answer
(my gut says "none, only more pain to be had here").

-Mike

--
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/