Re: [PATCH v3 09/22] sched: compute runnable load avg in cpu_load and cpu_avg_load_per_task

From: Linus Torvalds
Date: Sun Jan 06 2013 - 13:31:26 EST


On Sat, Jan 5, 2013 at 11:54 PM, Alex Shi <alex.shi@xxxxxxxxx> wrote:
>
> I just looked into the aim9 benchmark, in this case it forks 2000 tasks,
> after all tasks ready, aim9 give a signal than all tasks burst waking up
> and run until all finished.
> Since each of tasks are finished very quickly, a imbalanced empty cpu
> may goes to sleep till a regular balancing give it some new tasks. That
> causes the performance dropping. cause more idle entering.

Sounds like for AIM (and possibly for other really bursty loads), we
might want to do some load-balancing at wakeup time by *just* looking
at the number of running tasks, rather than at the load average. Hmm?

The load average is fundamentally always going to run behind a bit,
and while you want to use it for long-term balancing, a short-term you
might want to do just a "if we have a huge amount of runnable
processes, do a load balancing *now*". Where "huge amount" should
probably be relative to the long-term load balancing (ie comparing the
number of runnable processes on this CPU right *now* with the load
average over the last second or so would show a clear spike, and a
reason for quick action).

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