Skip to content

Conversation

@anton-nayshtut
Copy link
Contributor

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.

@copy-pr-bot
Copy link

copy-pr-bot bot commented Nov 13, 2025

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@github-actions
Copy link

👋 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]>
@anton-nayshtut anton-nayshtut force-pushed the antonn/linux_aio_queue_resubmission_fix branch from 17935c4 to 27d816a Compare November 13, 2025 14:30
}

if (num_ios_to_complete) {
NIXL_ERROR << "previous submit is not completed";
Copy link
Contributor

@aranadive aranadive Nov 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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
Copy link
Contributor

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?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants