Repository navigation
UCP/RMA: Share SGL multi-lane send code in proto_multi.inl - #12226
michal-shalev wants to merge 1 commit into
Conversation
|
🤖 Starting review — findings will be posted here when done. |
| return ucp_ep_rma_handle_fence(req->send.ep, req, mpriv->lane_map); | ||
| } | ||
|
|
||
| typedef ucs_status_t (*ucp_proto_rma_sgl_post_func_t)( |
There was a problem hiding this comment.
minor: pls move this typedef to proto_multi.h next to ucp_proto_send_multi_cb_t and ucp_proto_multi_lane_send_func_t, with a short doc comment for the arrays and count. There are no other typedefs in .inl files under src/ucp, and the 7-parameter list is not self-explanatory.
| return ucp_ep_rma_handle_fence(req->send.ep, req, mpriv->lane_map); | ||
| } | ||
|
|
||
| typedef ucs_status_t (*ucp_proto_rma_sgl_post_func_t)( |
There was a problem hiding this comment.
Placement: can we put these in a dedicated rma sgl .inl under src/ucp/rma instead? They are rma+sgl specific (req->send.rma.sgl, dt_iter->type.sgl) and only put_offload.c / get_offload.c will use them, but proto_multi.inl is also included by tag, am, stream and rndv.
| if (desc_count == 0) { | ||
| return UCS_OK; | ||
| } | ||
| ucs_assertv(count == 1, "count=%zu", count); |
There was a problem hiding this comment.
Assert lost its debug context:
| ucs_assertv(count == 1, "count=%zu", count); | |
| ucs_assertv(count == 1, "req=%p offset=%zu length=%zu count=%zu", req, | |
| req->send.state.dt_iter.offset, | |
| req->send.state.dt_iter.length, count); |
minor: the old assert printed the dt_iter offset/length/frag_offset; count alone doesn't tell why more than one fragment was produced.
|
Residual gap: no gtest exercises a Residual gap: SGL zcopy offload ( |
|
🤖 CI Triage Agent — TL;DR: The gtest binary aborted on a UCS rcache assertion ( Full analysisSummary: Root cause: Registration-cache reference-count underflow. A region inserted into the rcache page table is created with Implicated commit: File: Suggested fix:
Related: PR #12226 (this PR), #12191 (UCP/RMA: Add SGL support to
|
What?
Move the PUT SGL fragment/batch send code into shared helpers in
proto_multi.inl, and reuse them in the PUT sw protocol.Why?
Prepare for GET SGL, which needs the same lane split. No functional change.