RK3588 平台关联与使用场景详解

RK3588 平台关联与使用场景详解

源码路径rk3588/kernel-6.1/io_uring/(通用实现,无 Rockchip 补丁)
文档目录linuxDoc/io_uring/


目录


一、平台结论

说明
源码差异 grep rockchip io_uring/ 无匹配
架构 ARM64,与 x86 io_uring 同源,性能特征受 内存带宽、存储控制器、网卡驱动 影响
默认配置 CONFIG_IO_URING=yinit/Kconfig

RK3588 上使用 io_uring = 标准 Linux 6.1 行为 + BSP 存储/网络栈质量。


二、硬件与内核配置

组件 与 io_uring 关系
eMMC/UFS READV/WRITEV + 可选 IORING_SETUP_IOPOLL(设备需支持 non-blocking 完成路径)
NVMe URING_CMD、高队列深度受益明显
千兆/2.5G 网卡 net.c 中 SEND/RECV/ZC;驱动需支持 MSG_ZEROCOPY
big.LITTLE IORING_SETUP_SQ_AFFIORING_REGISTER_IOWQ_AFF 建议绑大核
内存 固定 buffer 注册消耗 locked_vm

三、SeagullYpcEncode 相关场景

场景 建议用法
码流写盘 WRITE/WRITE_FIXED + 注册文件表;批量 IOSQE_IO_LINK 写元数据
高帧率网络拉流 RECV/RECVMSG + POLL_ADD multishot 减 syscall
与 VPU/RGA 协同 io_uring 不直接操作媒体 IP;DMA buffer 若经 dmabuf,注意与 registered buffer 的 pin 范围
用户态框架 liburing、tokio-uring 等,均基于本目录 syscall

不宜期望:io_uring 替代 内核驱动 ioctl 配置 VPU;媒体管线仍走 V4L2/MPP,存储/网络可用 io_uring 加速。


四、性能与调优

手段 说明
IORING_SETUP_SQPOLL 省提交 syscall,占用 1 核
IORING_SETUP_SINGLE_ISSUER 无锁提交优化前提
增大 entries 减少背压;注意内存
REGISTER_FILES / REGISTER_BUFFERS2 热路径免 fdget/pin
避免 memlock 过小 ulimit -l / systemd LimitMEMLOCK
IOPOLL 仅低延迟块场景;CPU 占用高

五、观测与工具

1
2
3
4
5
grep CONFIG_IO_URING /boot/config-$(uname -r)
perf trace -e 'syscalls:sys_enter_io_uring_*'
# 应用层
./io_uring-bench # 需自行编译 liburing 测试
strace -e io_uring_setup,io_uring_enter -c <app>
接口 信息
/proc/<pid>/fdinfo/<fd> 环参数(fdinfo.c
IORING_REGISTER_PROBE 当前内核支持的 op

关联文档

文章互动

阅读 --

留言

0 条留言

正在加载留言…