-
Notifications
You must be signed in to change notification settings - Fork 403
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
prov/efa: Improve various iov_count
assertions
#9999
Conversation
prov/efa/src/rdm/efa_rdm_ep_utils.c
Outdated
@@ -211,7 +211,7 @@ int efa_rdm_ep_post_user_recv_buf(struct efa_rdm_ep *ep, struct efa_rdm_ope *rxe | |||
struct efa_mr *mr; | |||
int err; | |||
|
|||
assert(rxe->iov_count == 1); | |||
assert(rxe->iov_count > 0 && rxe->iov_count <= ep->rx_iov_limit); |
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.
I think the current logic in this function relies on iov_count == 1. If we want to touch this, we need to fix the other logic in this function as well
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.
better add a TODO here and fix it in a follow-up PR that fix the whole function
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.
So remove the assert()
altogether?
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.
I suggest adding a TODO and leave this assert()
in this function unchanged for now
Signed-off-by: Darryl Abbate <drl@amazon.com>
de15181
to
75fa242
Compare
@shijin-aws So we need to fix |
Correct, the logic is currently broken if application posts recv with 2 iov. The efa_rdm_pke_recvv assumes there is 1 iov and only fill sge_list[0]. I don't think you can consume iov for rxe similar to what we did for txe in this case. You need to separate the hdr and payload iov and set them as the sge_list[0]. sge_list[1] for ibv_post_recv |
No description provided.