1fi_efa(7)                      Libfabric v1.14.0                     fi_efa(7)
2
3
4

NAME

6       fi_efa - The Amazon Elastic Fabric Adapter (EFA) Provider
7

OVERVIEW

9       The  EFA  provider  supports the Elastic Fabric Adapter (EFA) device on
10       Amazon EC2.  EFA provides reliable and unreliable datagram send/receive
11       with direct hardware access from userspace (OS bypass).
12

SUPPORTED FEATURES

14       The following features are supported:
15
16       Endpoint types
17              The  provider  supports endpoint type FI_EP_DGRAM, and FI_EP_RDM
18              on a new Scalable (unordered) Reliable Datagram protocol  (SRD).
19              SRD  provides  support  for reliable datagrams and more complete
20              error handling than typically seen with other Reliable  Datagram
21              (RD)  implementations.   The EFA provider provides segmentation,
22              reassembly of out-of-order packets  to  provide  send-after-send
23              ordering guarantees to applications via its FI_EP_RDM endpoint.
24
25       RDM Endpoint capabilities
26              The  following  data  transfer  interfaces are supported via the
27              FI_EP_RDM endpoint: FI_MSG,  FI_TAGGED,  and  FI_RMA.   FI_SEND,
28              FI_RECV, FI_DIRECTED_RECV, FI_MULTI_RECV, and FI_SOURCE capabil‐
29              ities are  supported.   The  endpoint  provides  send-after-send
30              guarantees for data operations.  The FI_EP_RDM endpoint does not
31              have a maximum message size.
32
33       DGRAM Endpoint capabilities
34              The DGRAM endpoint only supports FI_MSG capability with a  maxi‐
35              mum message size of the MTU of the underlying hardware (approxi‐
36              mately 8 KiB).
37
38       Address vectors
39              The provider supports FI_AV_TABLE and FI_AV_MAP  address  vector
40              types.  FI_EVENT is unsupported.
41
42       Completion events
43              The  provider  supports  FI_CQ_FORMAT_CONTEXT, FI_CQ_FORMAT_MSG,
44              and FI_CQ_FORMAT_DATA.  FI_CQ_FORMAT_TAGGED is supported on  the
45              RDM endpoint.  Wait objects are not currently supported.
46
47       Modes  The provider requires the use of FI_MSG_PREFIX when running over
48              the DGRAM endpoint, and requires FI_MR_LOCAL for all memory reg‐
49              istrations on the DGRAM endpoint.
50
51       Memory registration modes
52              The  RDM  endpoint does not require memory registration for send
53              and receive operations, i.e. it does  not  require  FI_MR_LOCAL.
54              Applications may specify FI_MR_LOCAL in the MR mode flags in or‐
55              der  to  use  descriptors  provided  by  the  application.   The
56              FI_EP_DGRAM endpoint only supports FI_MR_LOCAL.
57
58       Progress
59              The    RDM   endpoint   supports   both   FI_PROGRESS_AUTO   and
60              FI_PROGRESS_MANUAL, with the default set to auto.  However,  re‐
61              ceive  side  data buffers are not modified outside of completion
62              processing  routines.   The   DGRAM   endpoint   only   supports
63              FI_PROGRESS_MANUAL.
64
65       Threading
66              The  RDM  endpoint  supports  FI_THREAD_SAFE, the DGRAM endpoint
67              supports FI_THREAD_DOMAIN, i.e. the provider is not thread  safe
68              when using the DGRAM endpoint.
69

LIMITATIONS

71       The  DGRAM endpoint does not support FI_ATOMIC interfaces.  For RMA op‐
72       erations, completion events for RMA targets (FI_RMA_EVENT) is not  sup‐
73       ported.   The  DGRAM  endpoint  does not fully protect against resource
74       overruns,  so  resource  management  is  disabled  for  this   endpoint
75       (FI_RM_DISABLED).
76
77       No support for selective completions.
78
79       No support for counters for the DGRAM endpoint.
80
81       No support for inject.
82

PROVIDER SPECIFIC ENDPOINT LEVEL OPTION

84       FI_OPT_EFA_RNR_RETRY
85              Defines  the number of RNR retry.  The application can use it to
86              reset RNR retry counter via the call to  fi_setopt.   Note  that
87              this  option must be set before the endpoint is enabled.  Other‐
88              wise, the call will fail.  Also note that this option  only  ap‐
89              plies to RDM endpoint.
90

RUNTIME PARAMETERS

92       FI_EFA_TX_SIZE
93              Maximum  number  of  transmit operations before the provider re‐
94              turns -FI_EAGAIN.  For only the  RDM  endpoint,  this  parameter
95              will  cause  transmit operations to be queued when this value is
96              set higher than the default and the transmit queue is full.
97
98       FI_EFA_RX_SIZE
99              Maximum number of receive operations before the provider returns
100              -FI_EAGAIN.
101
102       FI_EFA_TX_IOV_LIMIT
103              Maximum number of IOVs for a transmit operation.
104
105       FI_EFA_RX_IOV_LIMIT
106              Maximum number of IOVs for a receive operation.
107

RUNTIME PARAMETERS SPECIFIC TO RDM ENDPOINT

109       These OFI runtime parameters apply only to the RDM endpoint.
110
111       FI_EFA_RX_WINDOW_SIZE
112              Maximum  number of MTU-sized messages that can be in flight from
113              any single endpoint as part of long message data transfer.
114
115       FI_EFA_TX_QUEUE_SIZE
116              Depth of transmit queue opened with the NIC.  This  may  not  be
117              set to a value greater than what the NIC supports.
118
119       FI_EFA_RECVWIN_SIZE
120              Size of out of order reorder buffer (in messages).  Messages re‐
121              ceived out of this window will result in an error.
122
123       FI_EFA_CQ_SIZE
124              Size of any cq created, in number of entries.
125
126       FI_EFA_MR_CACHE_ENABLE
127              Enables using the mr cache and in-line registration instead of a
128              bounce  buffer  for iov’s larger than max_memcpy_size.  Defaults
129              to true.  When disabled, only uses a bounce buffer
130
131       FI_EFA_MR_MAX_CACHED_COUNT
132              Sets the maximum number of  memory  registrations  that  can  be
133              cached at any time.
134
135       FI_EFA_MR_MAX_CACHED_SIZE
136              Sets  the  maximum amount of memory that cached memory registra‐
137              tions can hold onto at any time.
138
139       FI_EFA_MAX_MEMCPY_SIZE
140              Threshold size switch between using memory copy into a  pre-reg‐
141              istered  bounce  buffer and memory registration on the user buf‐
142              fer.
143
144       FI_EFA_MTU_SIZE
145              Overrides the default MTU size of the device.
146
147       FI_EFA_RX_COPY_UNEXP
148              Enables the use of a separate pool of bounce-buffers to copy un‐
149              expected messages out of the pre-posted receive buffers.
150
151       FI_EFA_RX_COPY_OOO
152              Enables  the  use  of  a separate pool of bounce-buffers to copy
153              out-of-order RTS packets out of the pre-posted receive buffers.
154
155       FI_EFA_MAX_TIMEOUT
156              Maximum timeout (us) for backoff to a peer after a receiver  not
157              ready error.
158
159       FI_EFA_TIMEOUT_INTERVAL
160              Time  interval  (us) for the base timeout to use for exponential
161              backoff to a peer after a receiver not ready error.
162
163       FI_EFA_ENABLE_SHM_TRANSFER
164              Enable SHM provider to provide the communication across all  in‐
165              tra-node  processes.   SHM transfer will be disabled in the case
166              where ptrace protection is turned on.  You can turn  it  off  to
167              enable shm transfer.
168
169       FI_EFA_SHM_AV_SIZE
170              Defines  the maximum number of entries in SHM provider’s address
171              vector.
172
173       FI_EFA_SHM_MAX_MEDIUM_SIZE
174              Defines the switch point between small/medium message and  large
175              message.   The  message  larger  than  this switch point will be
176              transferred with large message protocol.  NOTE:  This  parameter
177              is now deprecated.
178
179       FI_EFA_INTER_MAX_MEDIUM_MESSAGE_SIZE
180              The  maximum  size  for  inter  EFA messages to be sent by using
181              medium message protocol.  Messages which can fit in  one  packet
182              will be sent as eager message.  Messages whose sizes are smaller
183              than this value will be  sent  using  medium  message  protocol.
184              Other  messages will be sent using CTS based long message proto‐
185              col.
186
187       FI_EFA_FORK_SAFE
188              Enable fork() support.  This may have a small performance impact
189              and should only be set when required.  Applications that require
190              to register regions backed by huge pages and also  require  fork
191              support are not supported.
192

SEE ALSO

194       fabric(7), fi_provider(7), fi_getinfo(3)
195

AUTHORS

197       OpenFabrics.
198
199
200
201Libfabric Programmer’s Manual     2021-09-17                         fi_efa(7)
Impressum