compio-rs / compio

A thread-per-core Rust runtime with IOCP/io_uring/polling.
MIT License
420 stars 37 forks source link

feat(driver,iour): add Entry128 support #192

Closed Berrysoft closed 9 months ago

Berrysoft commented 9 months ago

Closes #191

This PR adds a new 128-bit sqe ring into the driver. It is lazy-initialized, and polled by the main ring. In that way we can support both types of submission entries.

Berrysoft commented 9 months ago

A serious problem: PollAdd is not supported on Linux 5.15:(

Maybe some other reasons that it fails on Ubuntu 20.04?

George-Miao commented 9 months ago

Can you write a benchmark for two parallel uring vs. all 128 uring?

Berrysoft commented 9 months ago

I see, Ubuntu 20.04 uses Linux 5.15 which doesn't support Entry128:(

Berrysoft commented 9 months ago

Can you write a benchmark for two parallel uring vs. all 128 uring?

Sounds a little complicated. I'll try that when I'm free...

Berrysoft commented 9 months ago

I've just tested one 64 ring against one 128 ring with the benches fs & net in this repo. Didn't see significant evidence of performance regression. Maybe just a feature gate controlling whether 128 ring is enabled is OK.