io_uring/ 源码目录与模块索引
源码路径:
rk3588/kernel-6.1/io_uring/(约 56 个文件)
内核版本:Linux 6.1(RK3588 / ARM64)
文档目录:linuxDoc/io_uring/
一、构建与配置
| 项 | 说明 |
|---|---|
CONFIG_IO_URING |
init/Kconfig,默认 y,select IO_WQ |
CONFIG_IO_WQ |
独立对象 io-wq.o,io_uring 异步工作池 |
| 块层 | 部分配置 select IO_URING(如 drivers/block/Kconfig) |
平台:io_uring/ 内 无 rockchip / RK3588 专用代码。
二、Makefile 对象映射
| 对象 | 源文件 | 职责 |
|---|---|---|
io_uring.o |
io_uring.c |
核心:syscall、环、提交/完成、iopoll |
opdef.o |
opdef.c |
操作码表 io_op_defs[] |
io-wq.o |
io-wq.c |
异步 worker 池(CONFIG_IO_WQ) |
sqpoll.o |
sqpoll.c |
内核 SQ 轮询线程 |
tctx.o |
tctx.c |
每任务 io_uring 上下文 |
rw.o |
rw.c |
READ/WRITE/READV/WRITEV/FIXED 等 |
poll.o |
poll.c |
POLL_ADD/REMOVE/MULTISHOT |
timeout.o |
timeout.c |
链式/链接超时 |
cancel.o |
cancel.c |
异步取消 |
rsrc.o |
rsrc.c |
文件/缓冲区注册(含 v2) |
kbuf.o |
kbuf.c |
提供缓冲区、PBUF_RING |
filetable.o |
filetable.c |
固定文件表 |
uring_cmd.o |
uring_cmd.c |
IORING_OP_URING_CMD |
net.o |
net.c |
send/recv/accept/connect… |
fs.o / openclose.o / statx.o / xattr.c |
文件系统类 op | |
sync.o / splice.o / advise.o |
fsync、mmap 建议、splice | |
epoll.o |
epoll.c |
epoll _ctl/wait |
msg_ring.o |
msg_ring.c |
环间消息 |
notif.o |
notif.c |
通知类辅助 |
fdinfo.o |
fdinfo.c |
/proc fdinfo 导出 |
nop.o |
nop.c |
NOP |
头文件(模块内):io_uring.h、opdef.h、io-wq.h、sqpoll.h、poll.h、rsrc.h、kbuf.h、uring_cmd.h、tctx.h、refs.h、slist.h 等。
三、核心源文件体量
| 文件 | 约行数 | 说明 |
|---|---|---|
io_uring.c |
~4200 | 最大单文件,syscall + 环生命周期 |
io-wq.c |
~1400 | worker 池 |
poll.c |
~1000 | poll 与 multishot |
rw.c |
~1000 | 读写路径 |
rsrc.c |
~1200 | 注册资源 |
opdef.c |
~550 | 操作码分发表 |
四、UAPI 与内核类型
| 头文件 | 作用 |
|---|---|
uapi/linux/io_uring.h |
SQE/CQE、IORING_OP_*、IORING_REGISTER_* |
include/linux/io_uring_types.h |
io_ring_ctx、io_kiocb、io_rings |
include/linux/io_uring.h |
驱动 io_uring_cmd API |
五、专题文档对照
| 主题 | 文档 |
|---|---|
| syscall / 环 | 01 |
| 提交完成 | 02 |
| 操作码 | 03 |
| io-wq / SQPOLL | 04 |
| poll / timeout | 05 |
| rsrc / URING_CMD | 06 |
| RK3588 | 07 |
正在加载留言…