커널 5.14.0-362.18.1.el9_3.x86_64가 있는 Rocky 9.3에서 "fio"를 사용하는 io_uring이 실패합니다.

커널 5.14.0-362.18.1.el9_3.x86_64가 있는 Rocky 9.3에서 "fio"를 사용하는 io_uring이 실패합니다.

나는 이 명령을 다양하게 변형해 보았습니다.

fio --name=test --ioengine=io_uring --iodepth=64 --rw=rw --bs=4k --direct=1 --size=2G --numjobs=24 --filename=/dev/sdc
  • 낮은 대기열 깊이
  • 1/0으로 직접 설정
  • 낮은 고용 수
  • setenforce 0SELinux에 문제가 있는 경우

그러나 모든 출력은 다음과 같습니다.

test: (g=0): rw=rw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=io_uring, iodepth=64
...
fio-3.35
Starting 24 processes
fio: pid=71823, err=1/file:engines/io_uring.c:1047, func=io_queue_init, error=Operation not permitted

내 호스트가 io_uring을 지원하는 것을 확인했습니다.

[root@r7525-raid tmp]# grep io_uring_setup /proc/kallsyms
ffffffffaa7d4300 t __pfx_io_uring_setup
ffffffffaa7d4310 t io_uring_setup
ffffffffaa7d43a0 T __pfx___ia32_sys_io_uring_setup
ffffffffaa7d43b0 T __ia32_sys_io_uring_setup
ffffffffaa7d4430 T __pfx___x64_sys_io_uring_setup
ffffffffaa7d4440 T __x64_sys_io_uring_setup
ffffffffaae1b3ef t io_uring_setup.cold
ffffffffac2b0180 d event_exit__io_uring_setup
ffffffffac2b0220 d event_enter__io_uring_setup
ffffffffac2b02c0 d __syscall_meta__io_uring_setup
ffffffffac2b0300 d args__io_uring_setup
ffffffffac2b0310 d types__io_uring_setup
ffffffffacabbc68 d __event_exit__io_uring_setup
ffffffffacabbc70 d __event_enter__io_uring_setup
ffffffffacabdd38 d __p_syscall_meta__io_uring_setup
ffffffffacac1cd0 d _eil_addr___ia32_sys_io_uring_setup
ffffffffacac1ce0 d _eil_addr___x64_sys_io_uring_setup

libaio동일한 대상에 대해 실행하는 데 문제가 없습니다. 아직 코드를 읽지 않았습니다 io_queue_init. io_uring시작하고 실행 하기 위한 팁이 있나요 fio?

io_queue_init왜 실패했는지 정확히 이해하기 위해 코드를 읽지 않았습니다 .

관련 정보