Skip to content
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

Fix messages larger than INT_MAX #75

Merged
merged 1 commit into from
Nov 8, 2024
Merged

Fix messages larger than INT_MAX #75

merged 1 commit into from
Nov 8, 2024

Conversation

JiakunYan
Copy link
Collaborator

The lower network layer might only support messages up to INT_MAX bytes.

This PR enables LCI to break large messages into multiple chunks and send them with RDMA write.
The size of each chunk is decided by LCI_MAX_SINGLE_MESSAGE_SIZE (2GB by default).

LCI will break the message into multiple chunks and send them with RDMA write.
The size of each chunk is decided by LCI_MAX_SINGLE_MESSAGE_SIZE (2GB by default).
@JiakunYan JiakunYan merged commit 32165e2 into master Nov 8, 2024
9 checks passed
@omor1
Copy link
Member

omor1 commented Nov 8, 2024

I believe the max message size for a single sge in ibverbs is 2^31 - 1 i.e. INT32_MAX: 2 GiB, not 2 GB.

@JiakunYan
Copy link
Collaborator Author

I believe the max message size for a single sge in ibverbs is 2^31 - 1 i.e. INT32_MAX: 2 GiB, not 2 GB.

Yeah, in the libibverbs code I check the variable against 2GiB. If you are talking about the default value of LCI_MAX_SINGLE_MESSAGE_SIZE, 2GB is just a conservative value to avoid potential corner case bug from low-level libraries. I don't think 2GB and 2GiB will make huge difference in application performance either.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants