Doorbell write → device processes SQ entries → CQ entry + interrupt
// io_uring submission sketch
io_uring_sqe* sqe = io_uring_get_sqe(&ring);
io_uring_prep_read(sqe, fd, buf, len, off);
io_uring_submit(&ring);
fio --name=randread --filename=/dev/nvme0n1 --ioengine=io_uring --iodepth=64 --bs=4k --rw=randread --numjobs=4