Brice Goglin wrote: > * Probing > > >From what I understand, plpa_have_topology_information() tells whether > PLPA knows what's in the hardware, while plpa_api_probe() tells whether > binding is supported. We could add: > > + hwloc_topology_support(hwloc_topology_t topology, unsigned *support) >
/** \brief Flags describing the actual OS support for this topology. * * Flags are retrieved with hwloc_topology_get_support(). */ enum hwloc_topology_support_flags_e { /* \brief Topology discovery is supported. */ HWLOC_SUPPORT_DISCOVERY = (1<<0), /* \brief Binding a process is supported. */ HWLOC_SUPPORT_SET_PROC_CPUBIND = (1<<1), /* \brief Binding a thread is supported. */ HWLOC_SUPPORT_SET_THREAD_CPUBIND = (1<<2), /* \brief Getting the binding of a process is supported. */ HWLOC_SUPPORT_GET_PROC_CPUBIND = (1<<3), /* \brief Getting the binding of a thread is supported. */ HWLOC_SUPPORT_GET_THREAD_CPUBIND = (1<<4), }; /** \brief Retrieve the OR'ed flags of topology support. */ extern int hwloc_topology_get_support(hwloc_topology_t __hwloc_restrict topology, unsigned long flags); I don't think we need SET_CPUBIND since (from what I understand) it would be equivalent to SET_PROC_CPUBIND | SET_THREAD_CPUBIND. We'd have to keep in mind that 32bits in this flag bitmask is small (we'll likely need many other flags in the future, for instance IODEVICE_DISCOVERY, SET/GET_MEMBIND, SET/GET_RANGE_MEMBIND). Brice