When using io_uring_queue_init it calls io_uring_setup. There’s an ENOMEM returned when there is insufficient amount of locked memory available for the process. A strace will look something like: What is the formula for how much locked memory is required per entry (first argument)? and if possible, based on the sq_entries/cq_entries in the params structure? Kernel code for the particularly keen.