Le 10/02/2012 21:16, Jeff Squyres a écrit :
> When PCI devices are put into the tree, do they potentially make other objects be a different depths?
> For example, http://www.open-mpi.org/projects/hwloc/devel09-pci.png has a PCI bridge hanging off a socket. Are the cores on sockets P0 and P1 at the same depth?
All objects of the same type are *always* at the same depth (for caches
and groups, replace "same type" with "same type and same level" so that
L1 is not at the same depth as L3). That works even if your topology is
not symmetric at all, because a children can have a depth that is
different from its parent depth plus one.
PCI objects are not placed in levels are other regular objects do. There
are in specific list. However, to make the API more uniform, we have
some fake depth values that let us identify and walk in the list of
bridges, PCI devices or OS devices.
In the above case, the NUMA node P#0 should be at depth 1, it has two
children. The first one is Socket P#1 at depth 2. The second one is a
hostbridge at depth -3 (fake depth for bridges iirc).