-
Notifications
You must be signed in to change notification settings - Fork 573
UCP/RMA: Add GET and PUT rendezvous protocols #11482
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 12 commits
af63614
0048063
cc950cb
0e3b87b
316b334
309dcdd
7d8a0fe
2eb3d8e
22a4fc1
44c2a73
7bf40d1
33859eb
9354481
4c0fe95
9a0da0d
9be1795
38d65cc
1961abc
7142147
98e5e80
749beeb
c243fd7
2892bb5
9ce21f1
763e8a6
005bcdb
91c92da
da84568
9931da3
99bd273
c408474
9353ebc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -56,15 +56,19 @@ enum { | |
| UCP_REQUEST_FLAG_USER_HEADER_COPIED = UCS_BIT(19), | ||
| UCP_REQUEST_FLAG_USAGE_TRACKED = UCS_BIT(20), | ||
| UCP_REQUEST_FLAG_FENCE_REQUIRED = UCS_BIT(21), | ||
| UCP_REQUEST_FLAG_RNDV_RECV_INTERNAL = UCS_BIT(22), | ||
| #if UCS_ENABLE_ASSERT | ||
| UCP_REQUEST_FLAG_STREAM_RECV = UCS_BIT(22), | ||
| UCP_REQUEST_DEBUG_FLAG_EXTERNAL = UCS_BIT(23), | ||
| UCP_REQUEST_FLAG_SUPER_VALID = UCS_BIT(24), | ||
| UCP_REQUEST_FLAG_STREAM_RECV = UCS_BIT(23), | ||
| UCP_REQUEST_DEBUG_FLAG_EXTERNAL = UCS_BIT(24), | ||
| UCP_REQUEST_FLAG_SUPER_VALID = UCS_BIT(25), | ||
| #else | ||
| UCP_REQUEST_FLAG_STREAM_RECV = 0, | ||
| UCP_REQUEST_DEBUG_FLAG_EXTERNAL = 0, | ||
| UCP_REQUEST_FLAG_SUPER_VALID = 0 | ||
| UCP_REQUEST_FLAG_SUPER_VALID = 0, | ||
| #endif | ||
| UCP_REQUEST_FLAG_RNDV_SEND_INTERNAL = UCS_BIT(26), | ||
| UCP_REQUEST_FLAG_RNDV_RTR_REQ = UCS_BIT(27), | ||
| UCP_REQUEST_FLAG_RNDV_FLUSH = UCS_BIT(28) | ||
| }; | ||
|
|
||
|
|
||
|
|
@@ -261,6 +265,9 @@ struct ucp_request { | |
| /* Remote buffer address for get/put operation */ | ||
| uint64_t remote_address; | ||
|
|
||
| /* Remote buffer memory info for RTR_REQ */ | ||
| ucp_memory_info_t remote_mem_info; | ||
|
|
||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. do we really need it here or can create a separate struct in the union below?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. removed as we should be able to use rkey for that, even with fragment requests. |
||
| /* Key for remote buffer operation */ | ||
| ucp_rkey_h rkey; | ||
|
|
||
|
|
@@ -477,6 +484,13 @@ struct ucp_request { | |
| size_t length; /* Completion info to fill */ | ||
| } stream; | ||
|
|
||
| struct { | ||
| /* Remote endpoint ID used to send internal completions */ | ||
| uint64_t ep_id; | ||
| /* Completion callback for internal RNDV receives */ | ||
| ucp_request_callback_t complete_cb; | ||
| } rndv; | ||
|
|
||
| struct { | ||
| ucp_am_recv_data_nbx_callback_t cb; /* Completion callback */ | ||
| ucp_recv_desc_t *desc; /* Receive desc */ | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -32,6 +32,9 @@ | |
| * Relevant for UCP_OP_ID_RNDV_SEND and UCP_OP_ID_RNDV_RECV. */ | ||
| #define UCP_PROTO_SELECT_OP_FLAG_PPLN_FRAG (UCP_PROTO_SELECT_OP_FLAGS_BASE << 1) | ||
|
|
||
| /* Select only push-based rendezvous receive protocols. */ | ||
| #define UCP_PROTO_SELECT_OP_FLAG_RNDV_PUSH (UCP_PROTO_SELECT_OP_FLAGS_BASE << 3) | ||
|
|
||
|
|
||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. minor: can avoid this change
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. restored |
||
| /* Select eager/rendezvous protocol for Active Message sends. | ||
| * Relevant for UCP_OP_ID_AM_SEND and UCP_OP_ID_AM_SEND_REPLY. */ | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't you need to cleanup the nested protocol too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed to handle the cleanup using the proto abort.