Re: [PATCH v2] sched: wake-affine throttle

From: Michael Wang
Date: Tue May 28 2013 - 03:22:46 EST


On 05/28/2013 02:29 PM, Mike Galbraith wrote:
> On Tue, 2013-05-28 at 13:02 +0800, Michael Wang wrote:
>> On 05/22/2013 10:55 PM, Mike Galbraith wrote:
>>> On Wed, 2013-05-22 at 17:25 +0800, Michael Wang wrote:
>>>
>>>> I've not test the hackbench with wakeup-buddy before, will do it this
>>>> time, I suppose the 15% illegal income will suffered, anyway, it's
>>>> illegal :)
>>>
>>> On a 4 socket 40 core (+SMT) box, hackbench wasn't too happy.
>>
>> I've done more test and now I got the reason of regression...
>>
>> The writer and reader in hackbench is N:N, prev writer will write all
>> the fd then switch to next writer and repeat the same work, so it's
>> impossible to setup the buddy relationship by just record the last one,
>> and we have to record all the waker/wakee in history, but that means
>> unacceptable memory overhead...
>
> Yeah, that's why I was thinking we'd need a dinky/fast as hell FIFO of
> tokens or such to bind waker/wakee more or less reliably. Making such a
> scheme cheap enough could be hard.
>
>> So this buddy idea seems to be bad...
>>
>> I think a better way may should be allowing pull in most time, but
>> filter the very bad cases carefully.
>
> Any way that is cheap, and fairly accurately recognizes when we're being
> stupid will help. First and foremost, it has to be dirt cheap :)
>
>> For workload like pgbench, we actually just need to avoid pull if that
>> will damage the 'mother' thread, which is busy and be relied by many
>> 'child'.
>
> Yeah, 'mom' is the key player. If we can cheaply recognize mom, that
> should get us a generic improvement. Not as good as being able to
> recognize the size of her+brood as size changes, but better anyway.

That's right, I'm trying to rely on the frequency of a task switching
it's wakee in the new idea, it's really cheap and somewhat reliable, I
appreciate if you could pay an eye on the new patch and let me know you
opinion :)

Regards,
Michael Wang

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