Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'io_uring-6.11-20240824' of git://git.kernel.dk/linux

Pull io_uring fixes from Jens Axboe:

- Fix a comment in the uapi header using the wrong member name (Caleb)

- Fix KCSAN warning for a debug check in sqpoll (me)

- Two more NAPI tweaks (Olivier)

* tag 'io_uring-6.11-20240824' of git://git.kernel.dk/linux:
io_uring: fix user_data field name in comment
io_uring/sqpoll: annotate debug task == current with data_race()
io_uring/napi: remove duplicate io_napi_entry timeout assignation
io_uring/napi: check napi_enabled in io_napi_add() before proceeding

+4 -5
+1 -1
include/uapi/linux/io_uring.h
··· 421 421 * IO completion data structure (Completion Queue Entry) 422 422 */ 423 423 struct io_uring_cqe { 424 - __u64 user_data; /* sqe->data submission passed back */ 424 + __u64 user_data; /* sqe->user_data value passed back */ 425 425 __s32 res; /* result code for this event */ 426 426 __u32 flags; 427 427
+1 -2
io_uring/napi.c
··· 26 26 hlist_for_each_entry_rcu(e, hash_list, node) { 27 27 if (e->napi_id != napi_id) 28 28 continue; 29 - e->timeout = jiffies + NAPI_TIMEOUT; 30 29 return e; 31 30 } 32 31 ··· 301 302 { 302 303 iowq->napi_prefer_busy_poll = READ_ONCE(ctx->napi_prefer_busy_poll); 303 304 304 - if (!(ctx->flags & IORING_SETUP_SQPOLL) && ctx->napi_enabled) 305 + if (!(ctx->flags & IORING_SETUP_SQPOLL)) 305 306 io_napi_blocking_busy_loop(ctx, iowq); 306 307 } 307 308
+1 -1
io_uring/napi.h
··· 55 55 struct io_ring_ctx *ctx = req->ctx; 56 56 struct socket *sock; 57 57 58 - if (!READ_ONCE(ctx->napi_busy_poll_dt)) 58 + if (!READ_ONCE(ctx->napi_enabled)) 59 59 return; 60 60 61 61 sock = sock_from_file(req->file);
+1 -1
io_uring/sqpoll.c
··· 44 44 void io_sq_thread_park(struct io_sq_data *sqd) 45 45 __acquires(&sqd->lock) 46 46 { 47 - WARN_ON_ONCE(sqd->thread == current); 47 + WARN_ON_ONCE(data_race(sqd->thread) == current); 48 48 49 49 atomic_inc(&sqd->park_pending); 50 50 set_bit(IO_SQ_THREAD_SHOULD_PARK, &sqd->state);