1
1

libfabric: update to Github upstream 7095f3dc

Этот коммит содержится в:
Jeff Squyres 2015-03-10 09:47:04 -07:00
родитель afec1454f5
Коммит 1a1be2efa0
178 изменённых файлов: 1717 добавлений и 1004 удалений

Просмотреть файл

@ -309,138 +309,139 @@ nodist_rdmainclude_HEADERS = \
endif HAVE_DIRECT
real_man_pages = \
man/fabric.7 \
man/fi_av.3 \
man/fi_cm.3 \
man/fi_cntr.3 \
man/fi_control.3 \
man/fi_cq.3 \
man/fi_direct.7 \
man/fi_domain.3 \
man/fi_endpoint.3 \
man/fi_errno.3 \
man/fi_eq.3 \
man/fi_fabric.3 \
man/fi_getinfo.3 \
man/fi_mr.3 \
man/fi_msg.3 \
man/fi_poll.3 \
man/fi_rma.3 \
man/fi_tagged.3 \
man/fi_trigger.3 \
man/fi_version.3
man/man3/fi_av.3 \
man/man3/fi_cm.3 \
man/man3/fi_cntr.3 \
man/man3/fi_control.3 \
man/man3/fi_cq.3 \
man/man3/fi_domain.3 \
man/man3/fi_endpoint.3 \
man/man3/fi_errno.3 \
man/man3/fi_eq.3 \
man/man3/fi_fabric.3 \
man/man3/fi_getinfo.3 \
man/man3/fi_mr.3 \
man/man3/fi_msg.3 \
man/man3/fi_poll.3 \
man/man3/fi_rma.3 \
man/man3/fi_tagged.3 \
man/man3/fi_trigger.3 \
man/man3/fi_version.3 \
man/man7/fabric.7 \
man/man7/fi_direct.7
dummy_man_pages = \
man/fi_accept.3 \
man/fi_alias.3 \
man/fi_atomic_valid.3 \
man/fi_atomicmsg.3 \
man/fi_atomicv.3 \
man/fi_av_bind.3 \
man/fi_av_insert.3 \
man/fi_av_insertsvc.3 \
man/fi_av_lookup.3 \
man/fi_av_open.3 \
man/fi_av_remove.3 \
man/fi_av_straddr.3 \
man/fi_cancel.3 \
man/fi_close.3 \
man/fi_cntr_add.3 \
man/fi_cntr_open.3 \
man/fi_cntr_read.3 \
man/fi_cntr_set.3 \
man/fi_cntr_wait.3 \
man/fi_compare_atomic.3 \
man/fi_compare_atomic_valid.3 \
man/fi_compare_atomicmsg.3 \
man/fi_compare_atomicv.3 \
man/fi_connect.3 \
man/fi_cq_open.3 \
man/fi_cq_read.3 \
man/fi_cq_readerr.3 \
man/fi_cq_readfrom.3 \
man/fi_cq_sread.3 \
man/fi_cq_sreadfrom.3 \
man/fi_cq_strerror.3 \
man/fi_cq_write.3 \
man/fi_domain_bind.3 \
man/fi_domain_query.3 \
man/fi_dupinfo.3 \
man/fi_enable.3 \
man/fi_ep_bind.3 \
man/fi_eq_open.3 \
man/fi_eq_read.3 \
man/fi_eq_readerr.3 \
man/fi_eq_sread.3 \
man/fi_eq_strerror.3 \
man/fi_eq_write.3 \
man/fi_fetch_atomic.3 \
man/fi_fetch_atomic_valid.3 \
man/fi_fetch_atomicmsg.3 \
man/fi_fetch_atomicv.3 \
man/fi_freeinfo.3 \
man/fi_getname.3 \
man/fi_getopt.3 \
man/fi_getpeer.3 \
man/fi_inject.3 \
man/fi_injectdata.3 \
man/fi_inject_atomic.3 \
man/fi_inject_write.3 \
man/fi_inject_writedata.3 \
man/fi_join.3 \
man/fi_leave.3 \
man/fi_listen.3 \
man/fi_mr_bind.3 \
man/fi_mr_desc.3 \
man/fi_mr_key.3 \
man/fi_mr_reg.3 \
man/fi_mr_regattr.3 \
man/fi_mr_regv.3 \
man/fi_open.3 \
man/fi_passive_ep.3 \
man/fi_poll_add.3 \
man/fi_poll_del.3 \
man/fi_poll_open.3 \
man/fi_read.3 \
man/fi_readmsg.3 \
man/fi_readv.3 \
man/fi_recv.3 \
man/fi_recvmsg.3 \
man/fi_recvv.3 \
man/fi_reject.3 \
man/fi_rx_addr.3 \
man/fi_rx_size_left.3 \
man/fi_send.3 \
man/fi_senddata.3 \
man/fi_sendmsg.3 \
man/fi_sendv.3 \
man/fi_setopt.3 \
man/fi_shutdown.3 \
man/fi_strerror.3 \
man/fi_tinject.3 \
man/fi_tinjectdata.3 \
man/fi_tostr.3 \
man/fi_trecv.3 \
man/fi_trecvmsg.3 \
man/fi_trecvv.3 \
man/fi_tsearch.3 \
man/fi_tsend.3 \
man/fi_tsenddata.3 \
man/fi_tsendmsg.3 \
man/fi_tsendv.3 \
man/fi_tx_size_left.3 \
man/fi_wait.3 \
man/fi_wait_open.3 \
man/fi_write.3 \
man/fi_writedata.3 \
man/fi_writemsg.3 \
man/fi_writev.3
man/man3/fi_accept.3 \
man/man3/fi_alias.3 \
man/man3/fi_atomic_valid.3 \
man/man3/fi_atomicmsg.3 \
man/man3/fi_atomicv.3 \
man/man3/fi_av_bind.3 \
man/man3/fi_av_insert.3 \
man/man3/fi_av_insertsvc.3 \
man/man3/fi_av_lookup.3 \
man/man3/fi_av_open.3 \
man/man3/fi_av_remove.3 \
man/man3/fi_av_straddr.3 \
man/man3/fi_cancel.3 \
man/man3/fi_close.3 \
man/man3/fi_cntr_add.3 \
man/man3/fi_cntr_open.3 \
man/man3/fi_cntr_read.3 \
man/man3/fi_cntr_set.3 \
man/man3/fi_cntr_wait.3 \
man/man3/fi_compare_atomic.3 \
man/man3/fi_compare_atomic_valid.3 \
man/man3/fi_compare_atomicmsg.3 \
man/man3/fi_compare_atomicv.3 \
man/man3/fi_connect.3 \
man/man3/fi_cq_open.3 \
man/man3/fi_cq_read.3 \
man/man3/fi_cq_readerr.3 \
man/man3/fi_cq_readfrom.3 \
man/man3/fi_cq_sread.3 \
man/man3/fi_cq_sreadfrom.3 \
man/man3/fi_cq_strerror.3 \
man/man3/fi_cq_write.3 \
man/man3/fi_domain_bind.3 \
man/man3/fi_domain_query.3 \
man/man3/fi_dupinfo.3 \
man/man3/fi_enable.3 \
man/man3/fi_ep_bind.3 \
man/man3/fi_eq_open.3 \
man/man3/fi_eq_read.3 \
man/man3/fi_eq_readerr.3 \
man/man3/fi_eq_sread.3 \
man/man3/fi_eq_strerror.3 \
man/man3/fi_eq_write.3 \
man/man3/fi_fetch_atomic.3 \
man/man3/fi_fetch_atomic_valid.3 \
man/man3/fi_fetch_atomicmsg.3 \
man/man3/fi_fetch_atomicv.3 \
man/man3/fi_freeinfo.3 \
man/man3/fi_getname.3 \
man/man3/fi_getopt.3 \
man/man3/fi_getpeer.3 \
man/man3/fi_inject.3 \
man/man3/fi_injectdata.3 \
man/man3/fi_inject_atomic.3 \
man/man3/fi_inject_write.3 \
man/man3/fi_inject_writedata.3 \
man/man3/fi_join.3 \
man/man3/fi_leave.3 \
man/man3/fi_listen.3 \
man/man3/fi_mr_bind.3 \
man/man3/fi_mr_desc.3 \
man/man3/fi_mr_key.3 \
man/man3/fi_mr_reg.3 \
man/man3/fi_mr_regattr.3 \
man/man3/fi_mr_regv.3 \
man/man3/fi_open.3 \
man/man3/fi_passive_ep.3 \
man/man3/fi_poll_add.3 \
man/man3/fi_poll_del.3 \
man/man3/fi_poll_open.3 \
man/man3/fi_read.3 \
man/man3/fi_readmsg.3 \
man/man3/fi_readv.3 \
man/man3/fi_recv.3 \
man/man3/fi_recvmsg.3 \
man/man3/fi_recvv.3 \
man/man3/fi_reject.3 \
man/man3/fi_rx_addr.3 \
man/man3/fi_rx_size_left.3 \
man/man3/fi_send.3 \
man/man3/fi_senddata.3 \
man/man3/fi_sendmsg.3 \
man/man3/fi_sendv.3 \
man/man3/fi_setopt.3 \
man/man3/fi_shutdown.3 \
man/man3/fi_strerror.3 \
man/man3/fi_tinject.3 \
man/man3/fi_tinjectdata.3 \
man/man3/fi_tostr.3 \
man/man3/fi_trecv.3 \
man/man3/fi_trecvmsg.3 \
man/man3/fi_trecvv.3 \
man/man3/fi_tsearch.3 \
man/man3/fi_tsend.3 \
man/man3/fi_tsenddata.3 \
man/man3/fi_tsendmsg.3 \
man/man3/fi_tsendv.3 \
man/man3/fi_tx_size_left.3 \
man/man3/fi_wait.3 \
man/man3/fi_wait_open.3 \
man/man3/fi_write.3 \
man/man3/fi_writedata.3 \
man/man3/fi_writemsg.3 \
man/man3/fi_writev.3
man_MANS = $(real_man_pages) $(dummy_man_pages)
nroff:
@for file in $(real_man_pages); do \
config/md2nroff.pl --source=$$file.md; \
source=`echo $$file | sed -e 's@/man[0-9]@@'`; \
config/md2nroff.pl --source=$$source.md; \
done
EXTRA_DIST = libfabric.map libfabric.spec.in config/distscript.pl $(man_MANS)

Просмотреть файл

@ -1,7 +1,7 @@
This README is for userspace RDMA fabric library.
Version Libfabric v1.0.0rc3
Released on 2015-02-20
Released on 2015-03-10
Building
========

Просмотреть файл

@ -197,8 +197,6 @@ int fi_read_file(const char *dir, const char *file, char *buf, size_t size);
int fi_poll_fd(int fd, int timeout);
int fi_wait_cond(pthread_cond_t *cond, pthread_mutex_t *mut, int timeout);
struct fi_info *fi_allocinfo_internal(void);
int fi_sockaddr_len(struct sockaddr *addr);
size_t fi_datatype_size(enum fi_datatype datatype);
uint64_t fi_tag_bits(uint64_t mem_tag_format);
@ -209,6 +207,8 @@ int fi_recv_allowed(uint64_t caps);
int fi_rma_initiate_allowed(uint64_t caps);
int fi_rma_target_allowed(uint64_t caps);
uint64_t fi_gettime_ms();
#define RDMA_CONF_DIR SYSCONFDIR "/" RDMADIR
#define FI_CONF_DIR RDMA_CONF_DIR "/fabric"

Просмотреть файл

@ -216,14 +216,14 @@ static struct fi_ops_mr X = {
.regattr = fi_no_mr_regattr,
};
*/
int fi_no_mr_reg(struct fid_domain *domain, const void *buf, size_t len,
int fi_no_mr_reg(struct fid *fid, const void *buf, size_t len,
uint64_t access, uint64_t offset, uint64_t requested_key,
uint64_t flags, struct fid_mr **mr, void *context);
int fi_no_mr_regv(struct fid_domain *domain, const struct iovec *iov,
int fi_no_mr_regv(struct fid *fid, const struct iovec *iov,
size_t count, uint64_t access,
uint64_t offset, uint64_t requested_key,
uint64_t flags, struct fid_mr **mr, void *context);
int fi_no_mr_regattr(struct fid_domain *domain, const struct fi_mr_attr *attr,
int fi_no_mr_regattr(struct fid *fid, const struct fi_mr_attr *attr,
uint64_t flags, struct fid_mr **mr);
/*

Просмотреть файл

@ -35,7 +35,6 @@
#include <stdint.h>
#include <stddef.h>
#include <assert.h>
#include <sys/socket.h>
#ifdef __cplusplus
@ -48,6 +47,9 @@ extern "C" {
((type *) ((char *)ptr - offsetof(type, field)))
#endif
#define FI_DEFINE_HANDLE(name) struct name##_s { int dummy; }; \
typedef struct name##_s *name
enum {
FI_MAJOR_VERSION = 1,
FI_MINOR_VERSION = 0,
@ -99,7 +101,6 @@ typedef struct fid *fid_t;
#define FI_ATOMICS FI_ATOMIC
#define FI_DYNAMIC_MR (1ULL << 7)
#define FI_NAMED_RX_CTX (1ULL << 8)
#define FI_BUFFERED_RECV (1ULL << 9)
#define FI_DIRECTED_RECV (1ULL << 10)
/*
@ -158,7 +159,13 @@ enum {
#define FI_ADDR_NOTAVAIL UINT64_MAX
#define FI_SHARED_CONTEXT UINT64_MAX
typedef uint64_t fi_addr_t;
typedef void * fi_connreq_t;
FI_DEFINE_HANDLE(fi_connreq_t);
enum fi_av_type {
FI_AV_UNSPEC,
FI_AV_MAP,
FI_AV_TABLE
};
enum fi_progress {
FI_PROGRESS_UNSPEC,
@ -248,11 +255,10 @@ struct fi_rx_attr {
};
struct fi_ep_attr {
enum fi_ep_type type;
uint32_t protocol;
uint32_t protocol_version;
size_t max_msg_size;
size_t inject_size;
size_t total_buffered_recv;
size_t msg_prefix_size;
size_t max_order_raw_size;
size_t max_order_war_size;
@ -271,6 +277,7 @@ struct fi_domain_attr {
enum fi_progress control_progress;
enum fi_progress data_progress;
enum fi_resource_mgmt resource_mgmt;
enum fi_av_type av_type;
size_t mr_key_size;
size_t cq_data_size;
size_t cq_cnt;
@ -292,7 +299,6 @@ struct fi_info {
struct fi_info *next;
uint64_t caps;
uint64_t mode;
enum fi_ep_type ep_type;
uint32_t addr_format;
size_t src_addrlen;
size_t dest_addrlen;
@ -353,6 +359,11 @@ int fi_getinfo(uint32_t version, const char *node, const char *service,
void fi_freeinfo(struct fi_info *info);
struct fi_info *fi_dupinfo(const struct fi_info *info);
static inline struct fi_info *fi_allocinfo(void)
{
return fi_dupinfo(NULL);
}
struct fi_ops_fabric {
size_t size;
int (*domain)(struct fid_fabric *fabric, struct fi_info *info,
@ -441,6 +452,8 @@ enum fi_type {
FI_TYPE_ATOMIC_TYPE,
FI_TYPE_ATOMIC_OP,
FI_TYPE_VERSION,
FI_TYPE_EQ_EVENT,
FI_TYPE_CQ_EVENT_FLAGS,
};
char *fi_tostr(const void *data, enum fi_type datatype);

Просмотреть файл

@ -33,7 +33,6 @@
#ifndef _FI_ATOMIC_H_
#define _FI_ATOMIC_H_
#include <assert.h>
#include <rdma/fabric.h>
#include <rdma/fi_endpoint.h>
#include <rdma/fi_rma.h>

Просмотреть файл

@ -47,11 +47,6 @@ extern "C" {
* Maps and stores transport/network addresses.
*/
enum fi_av_type {
FI_AV_MAP,
FI_AV_TABLE
};
struct fi_av_attr {
enum fi_av_type type;
int rx_ctx_bits;
@ -140,14 +135,14 @@ struct fi_ops_domain {
struct fi_ops_mr {
size_t size;
int (*reg)(struct fid_domain *domain, const void *buf, size_t len,
int (*reg)(struct fid *fid, const void *buf, size_t len,
uint64_t access, uint64_t offset, uint64_t requested_key,
uint64_t flags, struct fid_mr **mr, void *context);
int (*regv)(struct fid_domain *domain, const struct iovec *iov,
int (*regv)(struct fid *fid, const struct iovec *iov,
size_t count, uint64_t access,
uint64_t offset, uint64_t requested_key,
uint64_t flags, struct fid_mr **mr, void *context);
int (*regattr)(struct fid_domain *domain, const struct fi_mr_attr *attr,
int (*regattr)(struct fid *fid, const struct fi_mr_attr *attr,
uint64_t flags, struct fid_mr **mr);
};
@ -209,7 +204,7 @@ fi_mr_reg(struct fid_domain *domain, const void *buf, size_t len,
uint64_t access, uint64_t offset, uint64_t requested_key,
uint64_t flags, struct fid_mr **mr, void *context)
{
return domain->mr->reg(domain, buf, len, access, offset,
return domain->mr->reg(&domain->fid, buf, len, access, offset,
requested_key, flags, mr, context);
}
@ -276,6 +271,12 @@ fi_av_lookup(struct fid_av *av, fi_addr_t fi_addr, void *addr, size_t *addrlen)
return av->ops->lookup(av, fi_addr, addr, addrlen);
}
static inline const char *
fi_av_straddr(struct fid_av *av, const void *addr, char *buf, size_t *len)
{
return av->ops->straddr(av, addr, buf, len);
}
static inline fi_addr_t
fi_rx_addr(fi_addr_t fi_addr, int rx_index, int rx_ctx_bits)
{

Просмотреть файл

@ -61,6 +61,7 @@ enum {
/* FI_OPT_ENDPOINT option names */
enum {
FI_OPT_MIN_MULTI_RECV, /* size_t */
FI_OPT_CM_DATA_SIZE, /* size_t */
};
struct fi_ops_ep {

Просмотреть файл

@ -137,6 +137,7 @@ struct fi_eq_err_entry {
int prov_errno;
/* err_data is available until the next time the CQ is read */
void *err_data;
size_t err_data_size;
};
struct fi_eq_cm_entry {

Просмотреть файл

@ -33,7 +33,6 @@
#ifndef _FI_RMA_H_
#define _FI_RMA_H_
#include <assert.h>
#include <rdma/fabric.h>
#include <rdma/fi_endpoint.h>

Просмотреть файл

@ -33,7 +33,6 @@
#ifndef _FI_TAGGED_H_
#define _FI_TAGGED_H_
#include <assert.h>
#include <rdma/fabric.h>
#include <rdma/fi_endpoint.h>

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_av 3 "2015\-02\-12" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_av 3 "2015\-03\-09" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_av - Address vector operations
@ -47,7 +47,7 @@ fi_addr_t\ fi_rx_addr(fi_addr_t\ fi_addr,\ int\ rx_index,
\ \ \ \ \ \ int\ rx_ctx_bits);
const\ char\ *\ fi_av_straddr(struct\ fid_av\ *av,\ const\ void\ *addr,
\ \ \ \ \ \ void\ *buf,\ size_t\ len);
\ \ \ \ \ \ void\ *buf,\ size_t\ *len);
\f[]
.fi
.SH ARGUMENTS
@ -365,8 +365,8 @@ The specified address must be of the same format as those stored by the
AV, though the address itself is not required to have been inserted.
On input, the len parameter should specify the size of the buffer
referenced by buf.
On output, the actual size needed to write the entire string will be
returned.
On output, addrlen is set to the size of the buffer needed to store the
address.
This size may be larger than the input len.
If the provided buffer is too small, the results will be truncated.
fi_av_straddr returns a pointer to buf.

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_cm 3 "2015\-01\-01" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_cm 3 "2015\-02\-26" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_cm - Connection management operations
@ -102,29 +102,36 @@ fi_accept as opposed to the listening passive endpoint.
Outbound data transfers cannot be initiated on a connection-oriented
endpoint until an FI_CONNECTED event has been generated.
However, receive buffers may be associated with an endpoint anytime.
.PP
For connection-oriented endpoints, the param buffer will be sent as part
of the connection request or response, subject to the constraints of the
underlying connection protocol.
Applications may use fi_control to determine the size of application
data that may be exchanged as part of a connection request or response.
The fi_connect, fi_accept, and fi_reject calls will silently truncate
any application data which cannot fit into underlying protocol messages.
.SS fi_shutdown
.PP
The fi_shutdown call is used to gracefully disconnect an endpoint from
its peer.
If shutdown flags are 0, the endpoint is fully disconnected, and no
additional data transfers will be possible.
Flags may also be used to indicate that only outbound (FI_WRITE) or
inbound (FI_READ) data transfers should be disconnected.
Regardless of the shutdown option selected, any queued completions
associated with asynchronous operations may still be retrieved from the
corresponding event queues.
The flags parameter is reserved and must be 0.
.PP
Outstanding operations posted to the endpoint when fi_shutdown is called
will be canceled or discarded.
Notification of canceled operations will be reported by the provider to
the corresponding completion queue(s).
Discarded operations will silently be dropped, with no completions
generated.
The choice of canceling, versus discarding operations, is provider
dependent.
However, all canceled completions will be written before fi_shutdown
returns.
.PP
When called, fi_shutdown does not affect completions already written to
a completion queue.
Any queued completions associated with asynchronous operations posted to
the endpoint may still be retrieved from the corresponding completion
queue(s) after an endpoint has been shutdown.
.PP
An FI_SHUTDOWN event will be generated for an endpoint when the remote
peer issues a disconnect using fi_shutdown or abruptly closes the
endpoint.
Note that in the abrupt close case, an FI_SHUTDOWN event will only be
generated if the peer system is reachable and a service or kernel agent
on the peer system is able to notify the local endpoint that the
connection has been aborted.
.SS fi_getname / fi_getpeer
.PP
The fi_getname and fi_getpeer calls may be used to retrieve the local or
@ -145,6 +152,19 @@ On error, a negative value corresponding to fabric errno is returned.
Fabric errno values are defined in \f[C]rdma/fi_errno.h\f[].
.SH ERRORS
.SH NOTES
.PP
For connection-oriented endpoints, the buffer referenced by param will
be sent as part of the connection request or response, subject to the
constraints of the underlying connection protocol.
Applications may use fi_getopt with the FI_OPT_CM_DATA_SIZE endpoint
option to determine the size of application data that may be exchanged
as part of a connection request or response.
The fi_connect, fi_accept, and fi_reject calls will silently truncate
any application data which cannot fit into underlying protocol messages.
User data exchanged as part of the connection process is available as
part of the fi_eq_cm_entry structure, for FI_CONNREQ and FI_CONNECTED
events, or as additional err_data to fi_eq_err_entry, in the case of a
rejected connection.
.SH SEE ALSO
.PP
\f[C]fi_getinfo\f[](3), \f[C]fi_endpoint\f[](3), \f[C]fi_domain\f[](3),

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_cntr 3 "2015\-01\-29" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_cntr 3 "2015\-01\-29" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_cntr - Completion and event counter operations

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_control 3 "2015\-02\-16" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_control 3 "2015\-02\-16" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_control - Perform an operation on a fabric resource.

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_cq 3 "2015\-02\-01" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_cq 3 "2015\-02\-23" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_cq - Completion queue operations
@ -411,6 +411,42 @@ Completion flags provide additional details regarding the completed
operation.
The following completion flags are defined.
.PP
*FI_SEND : Indicates that the completion was for a send operation.
This flag may be combined with an FI_MSG or FI_TAGGED flag.
.PP
*FI_RECV : Indicates that the completion was for a receive operation.
This flag may be combined with an FI_MSG or FI_TAGGED flag.
.PP
*FI_RMA : Indicates that an RMA operation completed.
This flag may be combined with an FI_READ, FI_WRITE, FI_REMOTE_READ, or
FI_REMOTE_WRITE flag.
.PP
*FI_ATOMIC : Indicates that an atomic operation completed.
This flag may be combined with an FI_READ, FI_WRITE, FI_REMOTE_READ, or
FI_REMOTE_WRITE flag.
.PP
*FI_MSG : Indicates that a message-based operation completed.
This flag may be combined with an FI_SEND or FI_RECV flag.
.PP
*FI_TAGGED : Indicates that a tagged message operation completed.
This flag may be combined with an FI_SEND or FI_RECV flag.
.PP
*FI_READ : Indicates that a locally initiated RMA or atomic read
operation has completed.
This flag may be combined with an FI_RMA or FI_ATOMIC flag.
.PP
*FI_WRITE : Indicates that a locally initiated RMA or atomic write
operation has completed.
This flag may be combined with an FI_RMA or FI_ATOMIC flag.
.PP
*FI_REMOTE_READ : Indicates that a remotely initiated RMA or atomic read
operation has completed.
This flag may be combined with an FI_RMA or FI_ATOMIC flag.
.PP
*FI_REMOTE_WRITE : Indicates that a remotely initiated RMA or atomic
read operation has completed.
This flag may be combined with an FI_RMA or FI_ATOMIC flag.
.PP
*FI_REMOTE_CQ_DATA : This indicates that remote CQ data is available as
part of the completion.
.PP

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_domain 3 "2015\-02\-01" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_domain 3 "2015\-02\-28" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_domain - Open a fabric access domain
@ -97,6 +97,7 @@ struct\ fi_domain_attr\ {
\ \ \ \ enum\ fi_progress\ \ \ \ \ \ control_progress;
\ \ \ \ enum\ fi_progress\ \ \ \ \ \ data_progress;
\ \ \ \ enum\ fi_resource_mgmt\ resource_mgmt;
\ \ \ \ enum\ fi_av_type\ \ \ \ \ \ \ av_type;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ mr_key_size;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cq_data_size;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ cq_cnt;
@ -360,16 +361,46 @@ For unconnected endpoints, the endpoint must be re-enabled before it
will accept new data transfer operations.
For connected endpoints, the connection is torn down and must be
re-established.
.SS MR Key Size
.SS AV Type (av_type)
.PP
Specifies the type of address vectors that are usable with this domain.
For additional details on AV type, see \f[C]fi_av\f[](3).
The following values may be specified.
.PP
\f[I]FI_AV_UNSPEC\f[] : Any address vector format is requested and
supported.
.PP
\f[I]FI_AV_MAP\f[] : Only address vectors of type AV map are requested
or supported.
.PP
\f[I]FI_AV_TABLE\f[] : Only address vectors of type AV index are
requested or supported.
.PP
Address vectors are only used by connectionless endpoints.
Applications that require the use of a specific type of address vector
should set the domain attribute av_type to the necessary value when
calling fi_getinfo.
The value FI_AV_UNSPEC may be used to indicate that the provider can
support either address vector format.
In this case, a provider may return FI_AV_UNSPEC to indicate that either
format is supportable, or may return another AV type to indicate the
optimal AV type supported by this domain.
.SS MR Key Size (mr_key_size)
.PP
Size of the memory region remote access key, in bytes.
Applications that request their own MR key must select a value within
the range specified by this value.
.SS CQ Data Size
.SS CQ Data Size (cq_data_size)
.PP
The number of bytes that the provider supports for remote CQ data.
See the FI_REMOTE_CQ_DATA flag (fi_getinfo) for the use of remote CQ
data.
Applications may include a small message with a data transfer that is
placed directly into a remote completion queue as part of a completion
event.
This is referred to as remote CQ data (sometimes referred to as
immediate data).
This field indicates the number of bytes that the provider supports for
remote CQ data.
If supported (non-zero value is returned), the minimum size of remote CQ
data must be at least 4-bytes.
.SS Completion Queue Count (cq_cnt)
.PP
The total number of completion queues supported by the domain, relative

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_endpoint 3 "2015\-02\-12" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_endpoint 3 "2015\-02\-27" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_endpoint - Fabric endpoint operations
@ -222,6 +222,14 @@ When closing a scalable endpoint, there must be no opened transmit
contexts, or receive contexts associated with the scalable endpoint.
If resources are still associated with the scalable endpoint when
attempting to close, the call will return -FI_EBUSY.
.PP
Outstanding operations posted to the endpoint when fi_close is called
will be discarded.
Discarded operations will silently be dropped, with no completions
reported.
Additionally, a provider may discard previously completed operations
from the associated completion queue(s).
The behavior to discard completed operations is provider specific.
.SS fi_ep_bind
.PP
fi_ep_bind is used to associate an endpoint with hardware resources.
@ -415,6 +423,13 @@ needed on receives posted after the value has been changed.
It is recommended that applications that want to override the default
MIN_MULTI_RECV value set this option before enabling the corresponding
endpoint.
.IP \[bu] 2
\f[I]FI_OPT_CM_DATA_SIZE - size_t\f[] : Defines the size of available
space in CM messages for user-defined data.
This value limits the amount of data that applications can exchange
between peer endpoints using the fi_connect, fi_accept, and fi_reject
operations.
This option is read only.
.SS fi_rx_size_left
.PP
The fi_rx_size_left call returns a lower bound on the number of receive
@ -443,23 +458,44 @@ an endpoint.
.nf
\f[C]
struct\ fi_ep_attr\ {
\ \ \ \ uint32_t\ \ protocol;
\ \ \ \ uint32_t\ \ protocol_version;
\ \ \ \ size_t\ \ \ \ max_msg_size;
\ \ \ \ size_t\ \ \ \ inject_size;
\ \ \ \ size_t\ \ \ \ total_buffered_recv;
\ \ \ \ size_t\ \ \ \ msg_prefix_size;
\ \ \ \ size_t\ \ \ \ max_order_raw_size;
\ \ \ \ size_t\ \ \ \ max_order_war_size;
\ \ \ \ size_t\ \ \ \ max_order_waw_size;
\ \ \ \ uint64_t\ \ mem_tag_format;
\ \ \ \ uint64_t\ \ msg_order;
\ \ \ \ uint64_t\ \ comp_order;
\ \ \ \ size_t\ \ \ \ tx_ctx_cnt;
\ \ \ \ size_t\ \ \ \ rx_ctx_cnt;
\ \ \ \ enum\ fi_ep_type\ ep_type;
\ \ \ \ uint32_t\ \ \ \ \ \ \ \ protocol;
\ \ \ \ uint32_t\ \ \ \ \ \ \ \ protocol_version;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ max_msg_size;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ msg_prefix_size;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ max_order_raw_size;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ max_order_war_size;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ max_order_waw_size;
\ \ \ \ uint64_t\ \ \ \ \ \ \ \ mem_tag_format;
\ \ \ \ uint64_t\ \ \ \ \ \ \ \ msg_order;
\ \ \ \ uint64_t\ \ \ \ \ \ \ \ comp_order;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ tx_ctx_cnt;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ rx_ctx_cnt;
};
\f[]
.fi
.SS type - Endpoint Type
.PP
If specified, indicates the type of fabric interface communication
desired.
Supported types are:
.PP
\f[I]FI_EP_UNSPEC\f[] : The type of endpoint is not specified.
This is usually provided as input, with other attributes of the endpoint
or the provider selecting the type.
.PP
\f[I]FI_EP_MSG\f[] : Provides a reliable, connection-oriented data
transfer service with flow control that maintains message boundaries.
.PP
\f[I]FI_EP_DGRAM\f[] : Supports a connectionless, unreliable datagram
communication.
Message boundaries are maintained, but the maximum message size may be
limited to the fabric MTU.
Flow control is not guaranteed.
.PP
\f[I]FI_EP_RDM\f[] : Reliable datagram message.
Provides a reliable, unconnected data transfer service with flow control
that maintains message boundaries.
.SS Protocol
.PP
Specifies the low-level end to end protocol employed by the provider.
@ -508,15 +544,6 @@ lesser version.
.PP
Defines the maximum size for an application data transfer as a single
operation.
.SS inject_size - Inject Size
.PP
Defines the default inject operation size (see the FI_INJECT flag) that
an endpoint will support.
This value applies per send operation.
.SS total_buffered_recv - Total Buffered Receive
.PP
Defines the total available space allocated by the provider to buffer
received messages (see the FI_BUFFERED_RECV flag).
.SS msg_prefix_size - Message Prefix Size
.PP
Specifies the size of any required message prefix buffer space.
@ -848,8 +875,6 @@ See the fi_endpoint Completion Ordering section.
.PP
\f[I]inject_size\f[] : The requested inject operation size (see the
FI_INJECT flag) that the context will support.
This value must be equal to or less than the inject_size of the
associated endpoint.
See the fi_endpoint Inject Size section.
.PP
\f[I]size\f[] : The size of the context, in bytes.
@ -946,10 +971,10 @@ specified of the associated endpoint.
See the fi_endpoint Completion Ordering section.
.PP
\f[I]total_buffered_recv\f[] : Defines the total available space
allocated by the provider to buffer received messages on the context.
This value must be less than or equal to that specified for the
associated endpoint.
See the fi_endpoint Total Buffered Receive section.
allocated by the provider to buffer messages that are received for which
there is no matching receive operation.
If set to 0, any messages that arrive before a receive buffer has been
posted are lost.
.PP
\f[I]size\f[] : The size of the context, in bytes.
The size is usually used as an output value by applications wishing to
@ -1024,15 +1049,13 @@ data transfer operations, where a flags parameter is not available.
Data transfer operations that take flags as input override the op_flags
value of an endpoint.
.PP
\f[I]FI_INJECT\f[] : Indicates that all outbound data buffer should be
\f[I]FI_INJECT\f[] : Indicates that all outbound data buffers should be
returned to the user\[aq]s control immediately after a data transfer
call returns, even if the operation is handled asynchronously.
This may require that the provider copy the data into a local buffer and
transfer out of that buffer.
A provider may limit the total amount of send data that may be buffered
and/or the size of a single send.
Applications may discover and modify these limits using the
endpoint\[aq]s getopt and setopt interfaces.
.PP
\f[I]FI_MULTI_RECV\f[] : Applies to posted receive operations.
This flag allows the user to post a single buffer that will receive

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_eq 3 "2015\-02\-01" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_eq 3 "2015\-02\-23" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_eq - Event queue operations
@ -215,8 +215,8 @@ information regarding the format associated with each event.
\f[I]Asynchronous Control Operations\f[] : Asynchronous control
operations are basic requests that simply need to generate an event to
indicate that they have completed.
These include the following types of events: memory registration,
address vector resolution, and connection established.
These include the following types of events: memory registration and
address vector resolution.
.PP
Control requests report their completion by inserting a
\f[C]struct\ \ \ fi_eq_entry\f[] into the EQ.
@ -236,16 +236,18 @@ For the completion of basic asynchronous control operations, the
returned event will indicate the operation that has completed, and the
fid will reference the fabric descriptor associated with the event.
For memory registration, this will be an FI_MR_COMPLETE event and the
fid_mr, address resolution will reference an FI_AV_COMPLETE event and
fid_av, and CM events will refer to a FI_CONNECTED event and fid_ep.
fid_mr; address resolution will reference an FI_AV_COMPLETE event and
fid_av.
The context field will be set to the context specified as part of the
operation, if available, otherwise the context will be associated with
the fabric descriptor.
.PP
\f[I]Connection Request Notification\f[] : Connection requests are
unsolicited notifications that a remote endpoint wishes to establish a
new connection to a listening passive endpoint.
Connection requests are reported using
\f[I]Connection Notification\f[] : Connection notifications are
connection management notifications used to setup or teardown
connections between endpoints.
There are three connection notification events: FI_CONNREQ,
FI_CONNECTED, and FI_SHUTDOWN.
Connection notifications are reported using
\f[C]struct\ \ \ fi_eq_cm_entry\f[]:
.IP
.nf
@ -258,10 +260,12 @@ struct\ fi_eq_cm_entry\ {
\f[]
.fi
.PP
Connection request events are of type FI_CONNREQ.
A connection request (FI_CONNREQ) event indicates that a remote endpoint
wishes to establish a new connection to a listening, or passive,
endpoint.
The fid is the passive endpoint.
Information regarding the requested endpoint\[aq]s capabilities and
attributes are available from the info field.
Information regarding the requested, active endpoint\[aq]s capabilities
and attributes are available from the info field.
The application is responsible for freeing this structure by calling
fi_freeinfo when it is no longer needed.
The fi_info connreq field will reference the connection request
@ -287,13 +291,20 @@ protocol padding.
As a result, the returned length may be larger than that specified by
the connecting peer.
.PP
\f[I]Connection Shutdown Notification\f[] : Notification that a remote
peer has disconnected from an active endpoint is done through the
FI_SHUTDOWN event.
Shutdown notification uses struct fi_eq_entry as declared above.
If a connection request has been accepted, an FI_CONNECTED event will be
generated on both sides of the connection.
The active side -- one that called fi_connect() -- may receive user data
as part of the FI_CONNECTED event.
The user data is passed to the connection manager on the passive side
through the fi_accept call.
User data is not provided with an FI_CONNECTED event on the listening
side of the connection.
.PP
Notification that a remote peer has disconnected from an active endpoint
is done through the FI_SHUTDOWN event.
Shutdown notification uses struct fi_eq_cm_entry as declared above.
The fid field for a shutdown notification refers to the active
endpoint\[aq]s fid_ep.
The context field is set to NULL.
.SS fi_eq_sread
.PP
The fi_eq_sread call is the blocking (or synchronous) equivalent to
@ -333,6 +344,7 @@ struct\ fi_eq_err_entry\ {
\ \ \ \ int\ \ \ \ \ \ \ \ \ \ \ \ \ \ err;\ \ \ \ \ \ \ \ /*\ positive\ error\ code\ */
\ \ \ \ int\ \ \ \ \ \ \ \ \ \ \ \ \ \ prov_errno;\ /*\ provider\ error\ code\ */
\ \ \ \ void\ \ \ \ \ \ \ \ \ \ \ \ *err_data;\ \ \ /*\ additional\ error\ data\ */
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ \ err_data_size;\ /*\ size\ of\ err_data\ */
};
\f[]
.fi
@ -344,10 +356,15 @@ The context field will be set to the context specified as part of the
operation.
.PP
The general reason for the error is provided through the err field.
Provider specific error information may also be available through the
prov_errno and err_data fields.
Provider or operational specific error information may also be available
through the prov_errno and err_data fields.
Users may call fi_eq_strerror to convert provider specific error
information into a printable string for debugging purposes.
.PP
If err_data_size is > 0, then the buffer referenced by err_data is
directly user-accessible.
Applications which read the err_data buffer must ensure that they do not
read past the end of the referenced buffer.
.SH RETURN VALUES
.PP
fi_eq_open : Returns 0 on success.

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_errno 3 "2015\-01\-08" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_errno 3 "2015\-01\-08" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_errno - fabric errors

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_fabric 3 "2015\-01\-24" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_fabric 3 "2015\-01\-24" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_fabric - Fabric domain operations

Просмотреть файл

@ -1,7 +1,9 @@
.TH fi_getinfo 3 "2015\-02\-11" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_getinfo 3 "2015\-02\-28" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_getinfo / fi_freeinfo - Obtain / free fabric interface information
.PP
fi_allocinfo / fi_dupinfo - Allocate / duplicate an fi_info structure
.SH SYNOPSIS
.IP
.nf
@ -13,6 +15,8 @@ int\ fi_getinfo(int\ version,\ const\ char\ *node,\ const\ char\ *service,
void\ fi_freeinfo(struct\ fi_info\ *info);
struct\ fi_info\ *fi_allocinfo(void);
struct\ fi_info\ *fi_dupinfo(const\ struct\ fi_info\ *info);
\f[]
.fi
@ -33,12 +37,11 @@ criteria for selecting the returned fabric information.
containing response information.
.SH DESCRIPTION
.PP
Returns information about available fabric services for reaching the
specified node or service, subject to any provided hints.
Callers must provide at least one of the node, service, or hints
parameters.
If node and service are NULL, then the hints src_addr and/or dest_addr
fields of the fi_info structure must be specified.
fi_getinfo returns information about available fabric services for
reaching specified node or service, subject to any provided hints.
Callers may specify NULL for node, service, and hints in order to
retrieve information about what providers are available and their
optimal usage models.
If no matching fabric information is available, info will be set to
NULL.
.PP
@ -52,10 +55,10 @@ additional criteria in their search hints.
Relaxing or eliminating input hints will increase the number and type of
endpoints that are available.
Providers that return multiple endpoints to a single fi_getinfo call
should return the endpoints that are highest performing.
should return the endpoints that are highest performing first.
Providers may indicate that an endpoint and domain can support
additional capabilities than those requested by the user only if such
support will not adversely affect performance.
support will not adversely affect application performance or security.
.PP
The version parameter is used by the application to request the desired
version of the interfaces.
@ -73,8 +76,8 @@ This protects against the application being built from source against a
newer version of the library that introduces new fields to data
structures, which would not be initialized by the application.
.PP
Either node, service, or hints must be provided, with any combination
being supported.
Node, service, or hints may be provided, with any combination being
supported.
If node is provided, fi_getinfo will attempt to resolve the fabric
address to the given node.
The hints parameter, if provided, may be used to control the resulting
@ -84,6 +87,11 @@ addressing information based on the provided hints.
.PP
The caller must call fi_freeinfo to release fi_info structures returned
by this call.
.PP
The fi_allocinfo call will allocate and zero an fi_info structure and
all related substructures.
The fi_dupinfo will duplicate a single fi_info structure and all the
substructures within it.
.SH FI_INFO
.IP
.nf
@ -92,7 +100,6 @@ struct\ fi_info\ {
\ \ \ \ struct\ fi_info\ \ \ \ \ \ \ \ *next;
\ \ \ \ uint64_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ caps;
\ \ \ \ uint64_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ mode;
\ \ \ \ enum\ fi_ep_type\ \ \ \ \ \ \ ep_type;
\ \ \ \ uint32_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ addr_format;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ src_addrlen;
\ \ \ \ size_t\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ dest_addrlen;
@ -119,10 +126,6 @@ below.
\f[I]mode\f[] : Operational modes supported by the application.
See the \f[I]Mode\f[] section below.
.PP
\f[I]ep_type - endpoint type\f[] : If specified, indicates the type of
fabric interface communication desired.
Supported types are listed in the \f[I]Endpoint types\f[] section below.
.PP
\f[I]addr_format - address format\f[] : If specified, indicates the
format of addresses referenced by the fabric interfaces and data
structures.
@ -130,15 +133,17 @@ Supported formats are listed in the \f[I]Addressing formats\f[] section
below.
.PP
\f[I]src_addrlen - source address length\f[] : Indicates the length of
the source address (must be specified if \f[I]src_addr\f[] is
specified).
This field will be ignored in hints if FI_SOURCE is specified.
the source address.
This value must be > 0 if \f[I]src_addr\f[] is non-NULL.
This field will be ignored in hints if FI_SOURCE is specified, or
\f[I]src_addr\f[] is NULL.
.PP
\f[I]dest_addrlen - destination address length\f[] : Indicates the
length of the destination address (must be specified if
\f[I]dest_addr\f[] is specified).
length of the destination address.
This value must be > 0 if \f[I]dest_addr\f[] is non-NULL.
This field will be ignored in hints unless the node and service
parameters are NULL or FI_SOURCE is specified.
parameters are NULL or FI_SOURCE is specified, or if \f[I]dst_addr\f[]
is NULL.
.PP
\f[I]src_addr - source address\f[] : If specified, indicates the source
address.
@ -210,7 +215,7 @@ Interface capabilities are obtained by OR-ing the following flags
together.
If capabilities in the hint parameter are set to 0, the underlying
provider will return the set of capabilities which are supported.
Otherwise, providers will only return data matching the specified set of
Otherwise, providers will return data matching the specified set of
capabilities.
Providers may indicate support for additional capabilities beyond those
requested when the use of expanded capabilities will not adversely
@ -275,28 +280,12 @@ regions be backed by allocated memory pages.
multiple receive contexts allow an initiator to target (or name) a
specific receive context as part of a data transfer operation.
.PP
\f[I]FI_BUFFERED_RECV\f[] : Requests that the communication endpoint
should attempt to queue inbound data that arrives before a receive
buffer has been posted.
In the absence of this flag, any messages that arrive before a receive
is posted are lost.
Applications may access endpoint options (getopt/setopt) to determine
the size of available buffered receive space.
.PP
\f[I]FI_DIRECTED_RECV\f[] : Requests that the communication endpoint use
the source address of an incoming message when matching it with a
receive buffer.
If this capability is not set, then the src_addr parameter for msg and
tagged receive operations is ignored.
.PP
\f[I]FI_INJECT\f[] : Indicates that the endpoint be able to support the
FI_INJECT flag on data transfer operations and the \[aq]inject\[aq] data
transfer calls.
The minimum supported size of an inject operation that an endpoint with
this capability must support is 8-bytes.
Applications may access endpoint options (getopt/setopt) to determine
injected transfer limits.
.PP
\f[I]FI_MULTI_RECV\f[] : Specifies that the endpoint must support the
FI_MULTI_RECV flag when posting receive buffers.
.PP
@ -334,18 +323,6 @@ This flag requires that FI_RMA and/or FI_ATOMIC be set.
capable of receiving write memory operations from remote endpoints.
This flag requires that FI_RMA and/or FI_ATOMIC be set.
.PP
\f[I]FI_REMOTE_CQ_DATA\f[] : Applications may include a small message
with a data transfer that is placed directly into a remote event queue
as part of a completion event.
This is referred to as remote CQ data (sometimes referred to as
immediate data).
The FI_REMOTE_CQ_DATA indicates that an endpoint must support the
FI_REMOTE_CQ_DATA flag on data transfer operations.
The minimum supported size of remote CQ data that an endpoint with this
capability must support is 4-bytes.
Applications may check the domain attributes to determine remote CQ data
limits.
.PP
\f[I]FI_REMOTE_SIGNAL\f[] : Indicates that the endpoint support the
FI_REMOTE_SIGNAL flag on data transfer operations.
Support requires marking outbound data transfers as signaled and
@ -374,6 +351,24 @@ operation.
Fenced operations are often used to enforce ordering between operations
that are not otherwise guaranteed by the underlying provider or
protocol.
.PP
Capabilities may be grouped into two general categories: primary and
secondary.
Primary capabilities must explicitly be requested by an application, and
a provider must enable support for only those primary capabilities which
were selected.
Secondary capabilities may optionally be requested by an application.
If requested, a provider must support the capability or fail the
fi_getinfo request (FI_ENOSYS).
A provider may optionally report non-selected secondary capabilities if
doing so would not compromise performance or security.
.PP
Primary capabilities: FI_MSG, FI_RMA, FI_TAGGED, FI_ATOMIC,
FI_NAMED_RX_CTX, FI_DIRECTD_RECV, FI_READ, FI_WRITE, FI_RECV, FI_SEND,
FI_REMOTE_READ, and FI_REMOTE_WRITE.
.PP
Secondary capabilities: FI_DYNAMIC_MR, FI_MULTI_RECV, FI_SOURCE,
FI_CANCEL, FI_FENCE, FI_REMOTE_COMPLETE
.SH MODE
.PP
The operational mode bits are used to convey requirements that an
@ -473,24 +468,6 @@ The FI_ASYNC_IOV mode indicates that the application must provide the
buffering needed for the IO vectors.
When set, an application must not modify an IO vector until the
associated operation has completed.
.SH ENDPOINT TYPES
.PP
\f[I]FI_EP_UNSPEC\f[] : The type of endpoint is not specified.
This is usually provided as input, with other attributes of the endpoint
or the provider selecting the type.
.PP
\f[I]FI_EP_MSG\f[] : Provides a reliable, connection-oriented data
transfer service with flow control that maintains message boundaries.
.PP
\f[I]FI_EP_DGRAM\f[] : Supports a connectionless, unreliable datagram
communication.
Message boundaries are maintained, but the maximum message size may be
limited to the fabric MTU.
Flow control is not guaranteed.
.PP
\f[I]FI_EP_RDM\f[] : Reliable datagram message.
Provides a reliable, unconnected data transfer service with flow control
that maintains message boundaries.
.SH ADDRESSING FORMATS
.PP
Multiple fabric interfaces take as input either a source or destination
@ -552,11 +529,13 @@ On error, fi_getinfo() returns a negative value corresponding to fabric
errno.
Fabric errno values are defined in \f[C]rdma/fi_errno.h\f[].
.PP
fi_allocinfo() returns a pointer to a new fi_info structure on success,
or NULL on error.
fi_dupinfo() duplicates a single fi_info structure and all the
substructures within it and returns a pointer to the new fi_info
structure.
This new fi_info structure must be freed via fi_freeinfo().
fi_dupinfo() returns NULL on error.
substructures within it, returning a pointer to the new fi_info
structure on success, or NULL on error.
Both calls require that the returned fi_info structure be freed via
fi_freeinfo().
.SH ERRORS
.PP
\f[I]FI_EBADFLAGS\f[] : The specified endpoint or domain capability or

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_mr 3 "2015\-01\-29" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_mr 3 "2015\-01\-29" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_mr - Memory region operations

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_msg 3 "2015\-02\-06" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_msg 3 "2015\-03\-04" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_msg - Message data transfer operations
@ -101,7 +101,7 @@ Completed message operations are reported to the user through one or
more event collectors associated with the endpoint.
Users provide context which are associated with each operation, and is
returned to the user as part of the event completion.
See fi_eq for completion event details.
See fi_cq for completion event details.
.SS fi_send
.PP
The call fi_send transfers the data contained in the user-specified data
@ -248,6 +248,6 @@ operations.
.SH SEE ALSO
.PP
\f[C]fi_getinfo\f[](3), \f[C]fi_endpoint\f[](3), \f[C]fi_domain\f[](3),
\f[C]fi_eq\f[](3)
\f[C]fi_cq\f[](3)
.SH AUTHORS
OpenFabrics.

Просмотреть файл

@ -1,4 +1,4 @@
.TH fi_poll 3 "2015\-01\-29" "Libfabric Programmer\[aq]s Manual" "Libfabric v1.0.0rc3"
.TH fi_poll 3 "2015\-01\-29" "Libfabric Programmer\[aq]s Manual" "\@VERSION\@"
.SH NAME
.PP
fi_poll - Polling and wait set operations

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше