Skip to content

Commit

Permalink
core: Define capability for tagged message only directed recv
Browse files Browse the repository at this point in the history
FI_DIRECTED_RECV covers both untagged and tagged message. However, the most
often used case is for tagged message. Having a saparate bit for tagged
message allows the provider to optimize non-tagged messsage implementation
while maintain support directed recv over tagged message.

Signed-off-by: Jianxin Xiong <[email protected]>
  • Loading branch information
j-xiong committed Oct 3, 2024
1 parent cb9bf83 commit 5ebeb12
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 8 deletions.
1 change: 1 addition & 0 deletions include/rdma/fabric.h
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ typedef struct fid *fid_t;
#define FI_PEER (1ULL << 43)
/* #define FI_XPU_TRIGGER (1ULL << 44) */

#define FI_TAGGED_DIRECTED_RECV (1ULL << 45)
#define FI_TAGGED_MULTI_RECV (1ULL << 46)
#define FI_HMEM (1ULL << 47)
/* #define FI_VARIABLE_MSG (1ULL << 48) */
Expand Down
5 changes: 3 additions & 2 deletions man/fi_av.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -384,8 +384,9 @@ Upon successful insert with FI_AUTH_KEY flag, the returned fi_addr_t's will map
endpoint address against the specified authorization keys. These fi_addr_t's can be
used as the target for local data transfer operations.

If the endpoint supports `FI_DIRECTED_RECV`, these fi_addr_t's can be used to
restrict receive buffers to a specific endpoint address and authorization key.
If the endpoint supports `FI_DIRECTED_RECV` or `FI_TAGGED_DIRECTED_RECV`, these
fi_addr_t's can be used to restrict receive buffers to a specific endpoint address
and authorization key.

For address vectors configured with FI_AV_USER_ID, all subsequent target events
corresponding to the address being inserted will return FI_ADDR_NOTAVAIL until
Expand Down
3 changes: 2 additions & 1 deletion man/fi_endpoint.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -1339,7 +1339,8 @@ capability bits from the fi_info structure will be used.
The following capabilities apply to the receive attributes: FI_MSG,
FI_RMA, FI_TAGGED, FI_ATOMIC, FI_REMOTE_READ, FI_REMOTE_WRITE, FI_RECV,
FI_HMEM, FI_TRIGGER, FI_RMA_PMEM, FI_DIRECTED_RECV, FI_TAGGED_MULTI_RECV,
FI_HMEM, FI_TRIGGER, FI_RMA_PMEM, FI_DIRECTED_RECV,
FI_TAGGED_DIRECTED_RECV, FI_TAGGED_MULTI_RECV,
FI_MULTI_RECV, FI_SOURCE, FI_RMA_EVENT, FI_SOURCE_ERR, FI_COLLECTIVE,
and FI_XPU.
Expand Down
8 changes: 6 additions & 2 deletions man/fi_getinfo.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,10 @@ additional optimizations.
capability is not set, then the src_addr parameter for msg and tagged
receive operations is ignored.

*FI_TAGGED_DIRECTED_RECV*
: Similar to FI_DIRECTED_RECV, but only applies to tagged receive
operations.

*FI_FENCE*
: Indicates that the endpoint support the FI_FENCE flag on data
transfer operations. Support requires tracking that all previous
Expand Down Expand Up @@ -466,8 +470,8 @@ may optionally report non-selected secondary capabilities if doing so
would not compromise performance or security.

Primary capabilities: FI_MSG, FI_RMA, FI_TAGGED, FI_ATOMIC, FI_MULTICAST,
FI_NAMED_RX_CTX, FI_DIRECTED_RECV, FI_HMEM, FI_COLLECTIVE, FI_XPU,
FI_AV_USER_ID, FI_PEER
FI_NAMED_RX_CTX, FI_DIRECTED_RECV, FI_TAGGED_DIRECTED_RECV, FI_HMEM,
FI_COLLECTIVE, FI_XPU, FI_AV_USER_ID, FI_PEER

Primary modifiers: FI_READ, FI_WRITE, FI_RECV, FI_SEND,
FI_REMOTE_READ, FI_REMOTE_WRITE
Expand Down
6 changes: 3 additions & 3 deletions man/fi_tagged.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -310,9 +310,9 @@ and/or fi_tsendmsg.

*FI_AUTH_KEY*
: Only valid with domains configured with FI_AV_AUTH_KEY and connectionless
endpoints configured with FI_DIRECTED_RECV. When used with fi_trecvmsg, this
flag denotes that the src_addr is an authorization key fi_addr_t instead of
an endpoint fi_addr_t.
endpoints configured with FI_DIRECTED_RECV or FI_TAGGED_DIRECTED_RECV. When
used with fi_trecvmsg, this flag denotes that the src_addr is an authorization
key fi_addr_t instead of an endpoint fi_addr_t.

The following flags may be used with fi_trecvmsg.

Expand Down

0 comments on commit 5ebeb12

Please sign in to comment.