-
Notifications
You must be signed in to change notification settings - Fork 183
plugins/posix: AIO resubmission fixed #1020
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
base: main
Are you sure you want to change the base?
plugins/posix: AIO resubmission fixed #1020
Conversation
|
👋 Hi anton-nayshtut! Thank you for contributing to ai-dynamo/nixl. Your PR reviewers will review your contribution then trigger the CI to test your changes. 🚀 |
The Linux AIO plugin wasn’t capable of re-submission; it required IO to be re-prepared prior to re-submission. It also used to return NIXL_IN_PROG for the next submit(), and NIXL_SUCCESS for checkCompleted(), making the upper layer think that the re-submission succeeded. This, in turn, caused incorrect throughput-related calculations. This patch fixes the bug. Signed-off-by: Anton Nayshtut <[email protected]>
17935c4 to
27d816a
Compare
| } | ||
|
|
||
| if (num_ios_to_complete) { | ||
| NIXL_ERROR << "previous submit is not completed"; |
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.
| NIXL_ERROR << "previous submit is not completed"; | |
| NIXL_ERROR << "previously submitted IO is not yet complete"; |
| struct iocb *io = events[i].obj; | ||
| size_t idx = (size_t)io->data; | ||
|
|
||
| ios_to_submit[idx] = nullptr; // Mark as completed |
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.
Do you still need to set this then in prepIO?
The Linux AIO plugin wasn’t capable of re-submission; it required IO to be re-prepared prior to re-submission.
It also used to return
NIXL_IN_PROGfor the nextsubmit(), andNIXL_SUCCESSforcheckCompleted(), making the upper layer think that the re-submission succeeded. This, in turn, caused incorrect throughput-related calculations.This patch fixes the bug.