Re: [PATCH 0/3][RFC] Improve load balancing when tasks have largeweight differential

From: Nikhil Rao
Date: Wed Oct 06 2010 - 04:32:10 EST


On Sun, Oct 3, 2010 at 8:08 PM, Mike Galbraith <efault@xxxxxx> wrote:
> On Wed, 2010-09-29 at 12:32 -0700, Nikhil Rao wrote:
>> The closest I have is a quad-core dual-socket machine (MC, CPU
>> domains). And I'm having trouble reproducing it on that machine as
>> well :-( I ran 5 soaker threads (one of them niced to -15) for a few
>> hours and didn't see the problem. Can you please give me some trace
>> data & schedstats to work with?
>
> Booting with isolcpus or offlining the excess should help.
>

Sorry for the late reply. Booting with isolcpus did the trick, thanks.

... and now to dig into why this is happening.

-Thanks,
Nikhil

>> Looking at the patch/code, I suspect active migration on the CPU
>> scheduling domain pushes the nice 0 task (running on the same socket
>> as the nice -15 task) to the other socket. This leaves you with an
>> idle core on the nice -15 socket, and with soaker threads there is no
>> way to come back to a 100% utilized state. One possible explanation is
>> the group capacity for a sched group in the CPU sched domain is
>> rounded to 1 (instead of 2). I have a patch below that throws a hammer
>> at the problem and uses group weight instead of group capacity (this
>> is experimental, will refine it if it works). Can you please see if
>> that solves the problem?
>
> Nope, didn't help. ÂI'll poke at it, but am squabbling elsewhere atm.
>
> Â Â Â Â-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/