-
Notifications
You must be signed in to change notification settings - Fork 66
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
using rdma write to specified offset position of the remote buffer #59
Comments
I see a few problems with your code. On the remote side:
The local side looks ok just be aware that the event you get after a successful WRITE only indicates that the WRITE has been successfully sent to the remote side but it doesn't necessarily mean it has completed on the remote side (meaning placed into memory). You should try to understand the difference between one-sided (WRITE) and two-sided operations (SEND), so that you can see which operation makes the most sense in your case. Generally speaking one-sided operations are faster but harder to use. |
Thanks for your correction! I will explain based on your point.
But these all seems are not the main problem causing receiver can't read any data when I change I originally thought that rkey only had access rights to the first address of the remote data buffer, so when I change the address to Then I suspect that the memory space of the data buffer on the remote side is not continuous, and So I don't understand what went wrong. I think this is not a problem with my use of WRITE, because |
Ok, it seems you addressed most of my issues raised. |
Oh, that's exactly what I missed, the main problem! The length. Thanks a lot! :) |
No Problem. As mentioned above, I would always check the completion queue results to see if the command actually succeeded. |
When I use one-sided operations RDMA write, I attempted to perform partial writes on the buffer corresponding to the remote endpoint.
The code on the remote side is as follows:
The code on the local side is as follows:
it's ok, remote side can read "5 0 0" from data buffer, write success.
But when I change
dataWR.getRdma().setRemote_addr(addr)
todataWR.getRdma().setRemote_addr(addr+1)
in local side, I thought remote side can read "0 5 0", it didn't, it read "0 0 0", meaning write failed.I want to know what went wrong, why the local cannot write data to the specified offset position of the remote buffer?
The text was updated successfully, but these errors were encountered: