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