On Wed, May 27, 2015 at 05:22:16PM -0400, Josef Bacik wrote: > > SD_BALANCE_WAKE is supposed to find us an idle cpu to run on, however
sd->flags's SD_BALANCE_WAKE, not sd_flags. And note that SD_BALANCE_WAKE is not set on domains by default. > it is just looking for an idle sibling, preferring affinity over all > else. Not sure what you're saying here, what affinity? > This is not helpful in all cases, and SD_BALANCE_WAKE's job is > to find us an idle cpu, not garuntee affinity. Your argument is going backwards, SD_BALANCE_WAKE is not actually set. > Fix this by first > trying to find an idle sibling, and then if the cpu is not idle fall > through to the logic to find an idle cpu. With this patch we get > slightly better performance than with our forward port of > SD_WAKE_IDLE. This is broken. You most certainly do not want to go do that whole load balance pass on wakeups. It should be controlled by sd->flags. It is far too expensive to consider turning that on by default. In fact, select_idle_sibling() is already too expensive on current server hardware (far too damn many cpus in a LLC domain). -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

