On Thu, 2005-03-31 at 22:05 -0800, Paul Jackson wrote: > > Then us poor slobs with big honkin numa iron could code up a real > pseudo_distance() routine, to avoid the actual pain of doing real work > for cpus^2 iterations for large cpu counts. > > Our big boxes have regular geometries with much symmetry, so would > provide significant opportunity to exploit equal pseudo-distances. >
Couple of observations: This doesn't actually need to be an O(n^2) operation. The result of it is only going to be used in the sched domains code, so what is really wanted is "how far away is one sched_group from another", although we may also scale that based on the *amount* of cache in the path between 2 cpus, that is often just a property of the CPUs themselves in smaller systems, so also not O(n^2). Secondly, we could use Ingo's O(n^2) code for the *SMP* domain on all architectures (so in your case of only 2 CPUs per node, it is obviously much cheaper, even over 256 nodes). Then the NUMA domain could just inherit this SMP value as a default, and allow architectures to override it individually. This may allow us to set up decent baseline numbers, properly scaled by cache size vs memory bandwidth without going overboard in complexity (while still allowing arch code to do more fancy stuff). - 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/