-
Notifications
You must be signed in to change notification settings - Fork 936
OSC/UCX: fixed zero-size window processing #5879
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
Conversation
ompi/mca/osc/ucx/osc_ucx_comm.c
Outdated
| } | ||
| } | ||
|
|
||
| if (!((module->win_info_array[target]).rkey_init) && (target_count > 0)) { |
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.
maybe add this as macro/common function?
also looks like two pairs of redundant () around !((module->win_info_array[target]).rkey_init)
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.
added macro
ompi/mca/osc/ucx/osc_ucx_comm.c
Outdated
| } | ||
|
|
||
| if (!((module->win_info_array[target]).rkey_init) && (target_count > 0)) { | ||
| OSC_UCX_VERBOSE(1, "target window has no rkey or has zero size"); |
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.
"window with non-zero length does not have an rkey"
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
| memcpy((void *)((char *)my_info + 2 * sizeof(uint64_t)), rkey_buffer, rkey_buffer_size); | ||
| memcpy((void *)((char *)my_info + 2 * sizeof(uint64_t) + rkey_buffer_size), | ||
| state_rkey_buffer, state_rkey_buffer_size); | ||
| memcpy_off(my_info, &state_base, sizeof(uint64_t), info_offset); |
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.
maybe add the window size as another uint64_t in the beginning (in addition to state_base and rkey_buffer_size)?
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.
didn't get your comment, size is added on next line (line 544 of updated file)
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 mean, in terms of packing, do '3 * sizeof(uint64_t)' instead of 2 * sizeof(uint64_t)'
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.
hmmmm, size is size_t type, not uint64_t, merge into 3 * sizeof(uint64_t) ?
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.
updated
|
Ok, this needs to v3.1.x and v4.0.x today. Please squish all commits into a single commit. Not supporting 0-sized windows is a critical bug. |
|
@yosefe ok to approve or more comments? |
|
@yosefe I will squash commits after tests are completed, will ping you when it ready to commit |
434a201 to
b91164f
Compare
- added processing of zero-size MPI window Signed-off-by: Sergey Oblomov <[email protected]>
b91164f to
ae6f819
Compare
|
bot:retest |
|
@yosefe ok to merge? |
|
@hoopoepg need for v4.0.x |
fixes #5873
Signed-off-by: Sergey Oblomov [email protected]