]> git.openfabrics.org - ~ardavis/dapl.git/commit
new lightweight open_query/close_query IB extension for fast attribute query
authorArlin Davis <arlin.r.davis@intel.com>
Fri, 11 Jul 2014 15:39:01 +0000 (08:39 -0700)
committerArlin Davis <arlin.r.davis@intel.com>
Fri, 11 Jul 2014 15:39:01 +0000 (08:39 -0700)
commit3d5d3cc10a3f1181835a9c0ca227651649e923ff
tree5f208c21b915350ca58d9f146dd7cf5459333efe
parent5e5b104e35106a2b7d0026437bff8d4ced27446f
new lightweight open_query/close_query IB extension for fast attribute query

Consumers that need provider attributes must do a full device open
in order to get any provider/device information. With so many static device
entries in /etc/dat.conf consumers are building classification
mechanisms to identify provider type, locality, name, device
mode, and decide which device is appropriate. The existing DAT interface
doesn't provide a lightweight mechanism for queries.

The following fast query functions have been added to dat_ib_extensions.h:

dat_ib_open_query(name, ia_handle, ia_mask, ia_attr, prov_mask, prov_attr)
dat_ib_close_query(ia_handle)

In addition, DAT extension interface, dat_extension_op, has been
expanded to include new internal calls to handle quick provider load
and function linkage via udat_extension_open, and udat_extension_close
functions. Extended operations needing DAT open/close services need
to be defined from a DAT_OPEN_EXTENSION_BASE or DAT_CLOSE_EXTENSION_BASE
respectively.

NOTE: The ia_handle returned with open query must be closed with subsequent
close_query and not used with any other dat_ia_ operations. Attribute
storage from query_open is not valid after close_query call.

The IB extensions have been rolled to version 2.0.8 with this new API.
The changes are backward compatible.

Signed-off-by: Arlin Davis <arlin.r.davis@intel.com>
17 files changed:
dapl/common/dapl_adapter_util.h
dapl/common/dapl_ia_open.c
dapl/common/dapl_ia_query.c
dapl/common/dapl_ia_util.c
dapl/ibal/dapl_ibal_util.c
dapl/openib_cma/device.c
dapl/openib_common/ib_extensions.c
dapl/openib_common/util.c
dapl/openib_scm/device.c
dapl/openib_ucm/dapl_ib_util.h
dapl/openib_ucm/device.c
dat/common/dat_api.c
dat/common/dat_dr.c
dat/common/dat_dr.h
dat/include/dat2/dat.h
dat/include/dat2/dat_ib_extensions.h
dat/udat/udat.c