]> 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>
Wed, 12 Feb 2014 22:55:25 +0000 (14:55 -0800)
committerArlin Davis <arlin.r.davis@intel.com>
Wed, 12 Feb 2014 22:55:25 +0000 (14:55 -0800)
commit6edf653df44ba38f729580ed5732a5751849533b
treedf0ca63645daf0c723a296b9e3cb7c600a12dc20
parent0425dfafebb9c5c2f1a2489b42f9a64b9962776f
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>
24 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/dapl_ib_util.h
dapl/openib_cma/device.c
dapl/openib_common/ib_extensions.c
dapl/openib_common/mem.c
dapl/openib_common/util.c
dapl/openib_mcm/dapl_ib_util.h
dapl/openib_mcm/device.c
dapl/openib_mcm/mix.c
dapl/openib_scm/dapl_ib_util.h
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
test/dtest/dtest.c