This example uses some of the latest kernel features, which can be confusing. Make this clear in the error messages from these features that a latest kernel version is required. Signed-off-by: Dylan Yudaken <dylany@xxxxxx> --- examples/io_uring-udp.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/examples/io_uring-udp.c b/examples/io_uring-udp.c index b4ef0a301963..a07c3e2a6f20 100644 --- a/examples/io_uring-udp.c +++ b/examples/io_uring-udp.c @@ -73,7 +73,9 @@ static int setup_buffer_pool(struct ctx *ctx) ret = io_uring_register_buf_ring(&ctx->ring, ®, 0); if (ret) { - fprintf(stderr, "buf_ring init: %s\n", strerror(-ret)); + fprintf(stderr, "buf_ring init failed: %s\n" + "NB This requires a kernel version >= 6.0\n", + strerror(-ret)); return ret; } @@ -98,7 +100,9 @@ static int setup_context(struct ctx *ctx) ret = io_uring_queue_init_params(QD, &ctx->ring, ¶ms); if (ret < 0) { - fprintf(stderr, "queue_init: %s\n", strerror(-ret)); + fprintf(stderr, "queue_init failed: %s\n" + "NB: This requires a kernel version >= 6.0\n", + strerror(-ret)); return ret; } @@ -237,7 +241,10 @@ static int process_cqe_recv(struct ctx *ctx, struct io_uring_cqe *cqe, return 0; if (!(cqe->flags & IORING_CQE_F_BUFFER) || cqe->res < 0) { - fprintf(stderr, "bad res %d\n", cqe->res); + fprintf(stderr, "recv cqe bad res %d\n", cqe->res); + if (cqe->res == -EFAULT || cqe->res == -EINVAL) + fprintf(stderr, + "NB: This requires a kernel version >= 6.0\n"); return -1; } idx = cqe->flags >> 16; base-commit: 840d0a5d38f3f63ea7b3741c3e201485c6671015 -- 2.30.2