Sled: io_uring support

Created on 6 Mar 2019  路  4Comments  路  Source: spacejam/sled

io_uring is an incredibly exciting new linux interface that in some situations is able to outperform SPDK.

  • supports mapping kernel memory for IO buffers into userspace
  • supports both buffered and direct IO, so we can make progress on some parts of this independently of #545 possibly
  • kernel-side submissions for IO with 0 syscalls

c example usage with O_DIRECT:
http://git.kernel.dk/cgit/fio/plain/t/io_uring.c

performance

Most helpful comment

I just implemented a pure Rust io-uring library, I believe it will help.

All 4 comments

We can provide bindings to liburing which enables us to use it correctly.
I wonder how well it can play with tokio and the upcoming stabilized async/await mechanism.

There is a Rust wrapper to the io_uring mechanism that integrates with tokio here.
It is obviously very much alpha.

I hope I helped.

kernel-side submissions for IO with 0 syscalls

It's a great option but having rare submission events would put kernel thread to sleep. I don't know what is his timeout, probably have to check kernel sources, but then it requires a syscall with AWAKE flag set on.

liburing

there is https://github.com/polachok/liburing-sys so we can just derive

I just implemented a pure Rust io-uring library, I believe it will help.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

winstonewert picture winstonewert  路  6Comments

thedrow picture thedrow  路  7Comments

thedrow picture thedrow  路  5Comments

spacejam picture spacejam  路  6Comments

brechtcs picture brechtcs  路  4Comments