On Wed, 2011-03-09 at 14:01 +0100, Peter Zijlstra wrote: > On Wed, 2011-03-09 at 11:19 +0100, Peter Zijlstra wrote: > > No, the domain stuff is good, we allocate new domains and have a > > synchronize_sched() between us installing the new ones and freeing the > > old ones. > > Gah, if only..
OK, so for hotplug and cpusets it works because they change the doms_cur set, when the old and the new set don't match it destroys the current sched_domain/sched_group sets for the relevant cpus and then calls synchronize_sched() to wait for any current activity to go away. Only then does it rebuild stuff for the new set, reusing the static allocated sched_domain and sched_group data. Now, supposedly when your new and old domain set is the same it should be a nop, unless arch_update_cpu_topology() returns true in which case it will do a full destroy and rebuild. So I'm not quite sure what power does to make it go bang.. Anyway, I'm now rewriting the sched_domain creation stuff because I've utterly had it with that code.. Also, still waiting to hear from the Power7 folks on how often they think to rebuild the topology and how they think that makes sense, afaict Power7 does have actual NUMA nodes unlike s390, so I'm still not seeing how that's going to work properly at all. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev