Le 07/08/2012 00:36, Wheeler, Kyle Bruce a écrit :
> Ahhhh, that's key! The documentation currently says "Look at ancestor
> objects from the bottom to the top until one of them contains a
> distance matrix that matches the objects exactly", which suggests to
> me that it will traverse the object hierarchy looking for the
> NUMANodes *for* me.
Ahh, this one is exactly what's really confusing. There are two things here:
1) the object that contains the distance matrix
2) the object that are covered by the matrix
When the matrix covers the entire machine (usual case), (1) is the root
object and (2) are NUMA nodes.
If you ever have a distance matrix between all cores of the first socket
(and not any other core in the machine), the first socket object would
contain a matrix with distance->relative_depth = depth(socket)-depth(core)
So when you're looking for Core latencies, you check whether the
ancestor immediately above Core contain a matrix for Core distances,
then its parent, ... up to the root object. So it's about (1) moving up
but (2) remains the same type (but (2) gets wider when (1) goes up).