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 majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/