Open MPI logo

Hardware Locality Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Hardware Locality Development mailing list

Subject: Re: [hwloc-devel] towards PLPA-like API in 1.0
From: Brice Goglin (Brice.Goglin_at_[hidden])
Date: 2009-11-09 09:18:11


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