[PATCH liburing] io_uring-udp: make more obvious what kernel version is required

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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, &reg, 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, &params);
 	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





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux