对 https://kernel.dk/io_uring.pdf 的翻译:
内核异步IO io_uring 介绍的第7章,第8章 ——library使用与高级特性
目录
7.0 liburing library
初始化:io_uring_queue_init 包含了所有 setup SQ and CQ ring信息的逻辑;
struct io_uring ring;
io_uring_queue_init(ENTRIES, &ring, 0);
一旦执行完 ,要调用:
io_uring_queue_exit(&ring);
基本提交场景
提交一个请求然后等待他完成,使用 liburing 就是下边这个样子
struct io_uring_sqe sqe;
struct io_uring_sqe cqe;
// sqe并填充 READV operation
sqe = io_uring_get_sqe(&ring);
io_uring_prep_readv(sqe, fd, &iovec, 1, offset);
// 告知kernel 我们有一个请求已经准备好被消费
io_uring_submit(&ri