Skip to content

Conversation

@kingcrimsontianyu
Copy link
Contributor

@kingcrimsontianyu kingcrimsontianyu commented Nov 13, 2025

WIP

This PR adds experimental io_uring support with the purpose of using a single userland I/O thread to achieve similar performance to existing, psync-based thread pool implementation.

ETA: ~26.04

Closes #828

@copy-pr-bot
Copy link

copy-pr-bot bot commented Nov 13, 2025

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@kingcrimsontianyu kingcrimsontianyu added breaking Introduces a breaking change improvement Improves an existing functionality c++ Affects the C++ API of KvikIO labels Nov 13, 2025
@kingcrimsontianyu
Copy link
Contributor Author

Performance results (WIP)

My PC

KvikIO sequential read (hot page cache)

  • Without Direct I/O
    Thread count Main [MiB/s] This PR [MiB/s]
    file to host 1 8041.4449 16801.4466
    file to device 1 8044.3911 16858.4471
    file to host 4 14384.8888
    file to device 4 14053.6423

@kingcrimsontianyu kingcrimsontianyu changed the title Add io_uring backend to improve I/O performance in general [26.04+ experimental] Add io_uring backend to improve I/O performance in general Nov 21, 2025
@copy-pr-bot
Copy link

copy-pr-bot bot commented Nov 24, 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.

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

Labels

breaking Introduces a breaking change c++ Affects the C++ API of KvikIO improvement Improves an existing functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support versatile io_uring-based asynchronous I/O to handle various patterns

1 participant