Hello On Linux, the PCI linkspeed requires root privileges unfortunately (except for the uplink above NVIDIA GPUs where we have another way to find it). The only way to workaround this is to dump the topology as XML as root and then reload it at runtime (e.g. with HWLOC_XMLFILE) :/
Brice Le 13/10/2017 10:53, TEJASWI k a écrit : > I am trying to traverse the topology using hwloc APIs starting from a > PCI device till Host Bridge > > My code snippet: > > unsigned long flags = HWLOC_TOPOLOGY_FLAG_IO_DEVICES | > HWLOC_TOPOLOGY_FLAG_IO_BRIDGES; > > retval = hwloc_topology_init(&topology); > retval = hwloc_topology_set_flags(topology, flags); > retval = hwloc_topology_load(topology); > > pciObj = hwloc_get_pcidev_by_busidstring(topology, "<Bus ID>"); > while(pciObj) { > pciObj = pciObj->parent; > > if (pciObj->attr->bridge.upstream_type != > HWLOC_OBJ_BRIDGE_HOST) > { > //Get all the required information about > intermediate bridges like > > // pciObj->attr->bridge.downstream.pci.secondary_bus, > pciObj->attr->bridge.upstream.pci.domain > // pciObj->attr->bridge.upstream.pci.bus, > *_pciObj->attr->bridge.upstream.pci.linkspeed_* > } > } > > All the other details I am able to query but linkspeed > (*_pciObj->attr->bridge.upstream.pci.linkspeed_*) is always 0. > Do I need to enable any other flag to get linkspeed or am I going > wrong somewhere? > > I want to get the PCI Bridges' generation or linkspeed for my usecase. > Is there any other way to get this information? > > > Thanks & Regards, > Tejaswi K > > > _______________________________________________ > hwloc-users mailing list > hwloc-users@lists.open-mpi.org > https://lists.open-mpi.org/mailman/listinfo/hwloc-users
_______________________________________________ hwloc-users mailing list hwloc-users@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/hwloc-users