On 18/05/07, Peter Williams <[EMAIL PROTECTED]> wrote:
[...] One thing that might work is to jitter the load balancing interval a bit. The reason I say this is that one of the characteristics of top and gkrellm is that they run at a more or less constant interval (and, in this case, X would also be following this pattern as it's doing screen updates for top and gkrellm) and this means that it's possible for the load balancing interval to synchronize with their intervals which in turn causes the observed problem. A jittered load balancing interval should break the synchronization. This would certainly be simpler than trying to change the move_task() logic for selecting which tasks to move.
Just an(quick) another idea. Say, the load balancer would consider not only p->load_weight but also something like Tw(task) = (time_spent_on_runqueue / total_task's_runtime) * some_scale_constant as an additional "load" component (OTOH, when a task starts, it takes some time for this parameter to become meaningful). I guess, it could address the scenarios your have described (but maybe break some others as well :) ... Any hints on why it's stupid?
Peter -- Peter Williams [EMAIL PROTECTED]
-- Best regards, Dmitry Adamushko - 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/