io_uring/ 源码目录与模块索引

io_uring/ 源码目录与模块索引

源码路径rk3588/kernel-6.1/io_uring/(约 56 个文件)
内核版本:Linux 6.1(RK3588 / ARM64)
文档目录linuxDoc/io_uring/


一、构建与配置

说明
CONFIG_IO_URING init/Kconfig,默认 yselect 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.hopdef.hio-wq.hsqpoll.hpoll.hrsrc.hkbuf.huring_cmd.htctx.hrefs.hslist.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_ctxio_kiocbio_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

文章互动

阅读 --

留言

0 条留言

正在加载留言…