Messages in this thread | | | Subject | Re: [RFC PATCH] sched: wake-affine throttle | From | Peter Zijlstra <> | Date | Mon, 08 Apr 2013 12:00:49 +0200 |
| |
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.
| |