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

From: Peter Zijlstra
Date: Mon Apr 08 2013 - 06:01:04 EST


On Mon, 2013-03-25 at 13:24 +0800, Michael Wang wrote:
> if (affine_sd) {
> - if (cpu != prev_cpu && wake_affine(affine_sd, p,
> sync))
> + if (cpu != prev_cpu && wake_affine(affine_sd, p,
> sync)) {
> + /*
> + * wake_affine() stuff try to pull wakee to
> the cpu
> + * around waker, this will benefit us if the
> data
> + * cached on waker cpu is hot for wakee, or
> the extreme
> + * ping-pong case.
> + *
> + * However, do such blindly work too
> frequently will
> + * cause regression to some workload, thus,
> each time
> + * when wake_affine() succeed, throttle it for
> a while.
> + */
> + wake_affine_throttle(p);
> prev_cpu = cpu;
> + }

How about only throttling when wake_affine() starts returning false? At
that point its lost its benefit.

Also, why not place this inside wake_affine() like you did the throttled
test.

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