Re: [PATCH] sched: wakeup buddy

From: Michael Wang
Date: Sun Mar 17 2013 - 23:27:26 EST


[snip]
>> It could bring the same benefit but at lower overhead, what's the point
>> of computing the same value over and over again? Also, the rate limit
>> thing naturally works for the soft/hard-irq case.
>
> Just try to confirm my understanding, so we are going to do something
> like:
>
> if (now - wakee->last > time_limit) && wakeup_affine()
> wakee->last = now
> select_idle_sibling(curr_cpu)
> else
> select_idle_sibling(prev_cpu)
>
> And time_limit is some static value respect to the rate of load balance,
> is that correct?
>
> Currently I haven't found regression by reduce the rate, but if we found
> such benchmark, we may still need a way (knob or CONFIG) to disable this
> limitation.

I've done some fast tests on this proposal, on my 12 cpu box, the
pgbench 32 clients test, for a 1000ms time_limit, the benefit is just
like the 8 ref wakeup buddy, when adopt 10ms time_limit, the benefit
dropped half, when time_limit is 1ms, the benefit is less than 10%.

tps

original 43404

wakeup-buddy 63024 +45.20%

1s-limit 62359 +43.67%
100ms-limit 57547 +32.58%
10ms-limit 52258 +20.40%
1ms-limit 46535 +7.21%

Other test items of pgbench are corresponding, and other benchmarks
still inert to the changes.

I'm planning to make a new patch for this approach later, in which
time_limit is a knob with the default value 1ms (usually the initial
value of balance_interval and the value of min_interval), that will
based on the latest tip tree.

Regards,
Michael Wang

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