[LTP] [RFC] [PATCH 0/2] io_uring READ(V), WRITE(v) operation tests

Sachin Sant sachinp@linux.ibm.com
Wed Mar 18 12:03:26 CET 2026


This patch series adds a set of test case to validate
IOURING READ & WRITE (io_uring03), READV & WRITEV (io_uring04)
operations. The patch also adds a common header file to
avoid code duplication.

These patches have been tested successfully on ppc64le
arch (fedora and SLES flavours)

Code is available
at https://github.com/sacsant/ltp/tree/uring_fio

Test run:

$  ./io_uring03
tst_tmpdir.c:308: TINFO: Using /tmp/LTP_io_XN0m3T as tmpdir (tmpfs filesystem)
tst_test.c:2059: TINFO: LTP version: 20210524-3958-g3203be536
......
tst_test.c:1887: TINFO: Overall timeout per run is 0h 00m 30s
io_uring03.c:195: TINFO: Testing IORING_OP_WRITE
io_uring03.c:199: TPASS: IORING_OP_WRITE completed successfully
io_uring03.c:205: TINFO: Testing IORING_OP_READ
io_uring03.c:210: TPASS: IORING_OP_READ completed successfully
io_uring03.c:214: TPASS: Data integrity verified
io_uring03.c:236: TINFO: Testing partial I/O operations
io_uring03.c:247: TPASS: Partial write (first half) succeeded
io_uring03.c:252: TPASS: Partial write (second half) succeeded
io_uring03.c:260: TPASS: Full read after partial writes succeeded
io_uring03.c:264: TPASS: Partial I/O data integrity verified

Summary:
passed   7
failed   0
broken   0
skipped  0
warnings 0
$ ./io_uring04
tst_tmpdir.c:308: TINFO: Using /tmp/LTP_io_ekmpZP as tmpdir (tmpfs filesystem)
tst_test.c:2059: TINFO: LTP version: 20210524-3958-g3203be536
.......
tst_test.c:1887: TINFO: Overall timeout per run is 0h 00m 30s
io_uring04.c:218: TINFO: Testing IORING_OP_WRITEV and IORING_OP_READV
io_uring04.c:226: TINFO: Writing 4096 bytes using 4 vectors
io_uring04.c:230: TPASS: IORING_OP_WRITEV completed successfully
io_uring04.c:235: TINFO: Reading 4096 bytes using 4 vectors
io_uring04.c:239: TPASS: IORING_OP_READV completed successfully
io_uring04.c:258: TPASS: Data integrity verified across all 4 vectors
io_uring04.c:270: TINFO: Testing partial vector operations
io_uring04.c:284: TPASS: Partial IORING_OP_WRITEV (2 vectors) succeeded
io_uring04.c:294: TPASS: Partial IORING_OP_READV (2 vectors) succeeded
io_uring04.c:305: TPASS: Partial vector data integrity verified
io_uring04.c:319: TINFO: Testing vectors with varying sizes
io_uring04.c:352: TPASS: IORING_OP_WRITEV with varying sizes succeeded
io_uring04.c:359: TPASS: IORING_OP_READV with varying sizes succeeded
io_uring04.c:365: TPASS: Varying size vector data integrity verified

Summary:
passed   9
failed   0
broken   0
skipped  0
warnings 0
$


Sachin Sant (2):
  io_uring: Test IORING READ and WRITE operations
  io_uring: Test READV and WRITEV operations

 runtest/syscalls                              |   2 +
 testcases/kernel/syscalls/io_uring/.gitignore |   2 +
 .../kernel/syscalls/io_uring/io_uring03.c     | 145 ++++++++++
 .../kernel/syscalls/io_uring/io_uring04.c     | 248 ++++++++++++++++++
 .../syscalls/io_uring/io_uring_common.h       | 227 ++++++++++++++++
 5 files changed, 624 insertions(+)
 create mode 100644 testcases/kernel/syscalls/io_uring/io_uring03.c
 create mode 100644 testcases/kernel/syscalls/io_uring/io_uring04.c
 create mode 100644 testcases/kernel/syscalls/io_uring/io_uring_common.h

-- 
2.39.1



More information about the ltp mailing list