On Mon, Aug 21, 2017 at 02:44:58PM +0100, Juri Lelli wrote: > Also, I'm not sure what Peter meant with > > "But still this isn't quite right, because when we consider this for SMT > (as was the intent here) we'll happily occupy a full sibling core over > finding an empty one."
Consider a 4 core, SMT2 system: LLC [0 - 7] SMT [0,1] [2,3] [4,5] [6,7] If we do a wake-up on CPU0, we'll find CPU1, mark that as fallback, continue up the domain tree, exclude 0,1 from 0-7 and find CPU2. A next wakeup on CPU0 does the same and will find CPU3, fully loading that core, instead of considering CPU4 first. Doing this 'right' is difficult and expensive :-/