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.

io_uring/napi: cap busy_poll_to 10 msec

Currently there's no cap on the maximum amount of time that napi is
allowed to poll if no events are found, which can lead to kernel
complaints on a task being stuck as there's no conditional rescheduling
done within that loop.

Just cap it to 10 msec in total, that's already way above any kind of
sane value that will reap any benefits, yet low enough that it's
nowhere near being able to trigger preemption complaints.

Fixes: 8d0c12a80cde ("io-uring: add napi busy poll support")
Signed-off-by: Jens Axboe <axboe@kernel.dk>

+2
+2
io_uring/napi.c
··· 276 276 /* clean the napi list for new settings */ 277 277 io_napi_free(ctx); 278 278 WRITE_ONCE(ctx->napi_track_mode, napi->op_param); 279 + /* cap NAPI at 10 msec of spin time */ 280 + napi->busy_poll_to = min(10000, napi->busy_poll_to); 279 281 WRITE_ONCE(ctx->napi_busy_poll_dt, napi->busy_poll_to * NSEC_PER_USEC); 280 282 WRITE_ONCE(ctx->napi_prefer_busy_poll, !!napi->prefer_busy_poll); 281 283 return 0;