linux/io_uring
Jens Axboe a0d45c3f59 io_uring/fdinfo: remove need for sqpoll lock for thread/pid retrieval
A previous commit added a trylock for getting the SQPOLL thread info via
fdinfo, but this introduced a regression where we often fail to get it if
the thread is busy. For that case, we end up not printing the current CPU
and PID info.

Rather than rely on this lock, just print the pid we already stored in
the io_sq_data struct, and ensure we update the current CPU every time
we've slept or potentially rescheduled. The latter won't potentially be
100% accurate, but that wasn't the case before either as the task can
get migrated at any time unless it has been pinned at creation time.

We retain keeping the io_sq_data dereference inside the ctx->uring_lock,
as it has always been, as destruction of the thread and data happen below
that. We could make this RCU safe, but there's little point in doing that.

With this, we always print the last valid information we had, rather than
have spurious outputs with missing information.

Fixes: 7644b1a1c9 ("io_uring/fdinfo: lock SQ thread while retrieving thread cpu/pid")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2023-11-15 06:35:46 -07:00
..
Makefile io_uring: add support for futex wake and wait 2023-09-29 02:36:57 -06:00
advise.c
advise.h
alloc_cache.h
cancel.c io_uring: add support for futex wake and wait 2023-09-29 02:36:57 -06:00
cancel.h io_uring: add support for futex wake and wait 2023-09-29 02:36:57 -06:00
epoll.c
epoll.h
fdinfo.c io_uring/fdinfo: remove need for sqpoll lock for thread/pid retrieval 2023-11-15 06:35:46 -07:00
fdinfo.h
filetable.c
filetable.h
fs.c io_uring/fs: remove sqe->rw_flags checking from LINKAT 2023-09-29 03:07:09 -06:00
fs.h
futex.c io_uring: add support for vectored futex waits 2023-09-29 02:37:08 -06:00
futex.h io_uring: add support for vectored futex waits 2023-09-29 02:37:08 -06:00
io-wq.c io-wq: fully initialize wqe before calling cpuhp_state_add_instance_nocalls() 2023-10-05 14:11:18 -06:00
io-wq.h
io_uring.c io_uring-futex-2023-10-30 2023-11-01 11:25:08 -10:00
io_uring.h for-6.7/io_uring-2023-10-30 2023-11-01 11:09:19 -10:00
kbuf.c io_uring: indicate if io_kbuf_recycle did recycle anything 2023-11-06 13:41:58 -07:00
kbuf.h io_uring: indicate if io_kbuf_recycle did recycle anything 2023-11-06 13:41:58 -07:00
msg_ring.c
msg_ring.h
net.c io_uring/net: ensure socket is marked connected on connect retry 2023-11-03 13:25:50 -06:00
net.h
nop.c
nop.h
notif.c
notif.h
opdef.c io_uring/rw: add separate prep handler for fixed read/write 2023-11-06 07:43:16 -07:00
opdef.h io_uring/rw: mark readv/writev as vectored in the opcode definition 2023-09-21 12:00:46 -06:00
openclose.c io_uring: use files_lookup_fd_locked() 2023-10-19 11:02:49 +02:00
openclose.h
poll.c io_uring/poll: use IOU_F_TWQ_LAZY_WAKE for wakeups 2023-10-19 06:42:29 -06:00
poll.h
refs.h
rsrc.c io_uring/rsrc: cleanup io_pin_pages() 2023-10-02 18:25:23 -06:00
rsrc.h
rw.c io_uring: do not clamp read length for multishot read 2023-11-06 13:41:58 -07:00
rw.h io_uring/rw: add separate prep handler for fixed read/write 2023-11-06 07:43:16 -07:00
slist.h
splice.c
splice.h
sqpoll.c io_uring/fdinfo: remove need for sqpoll lock for thread/pid retrieval 2023-11-15 06:35:46 -07:00
sqpoll.h
statx.c
statx.h
sync.c
sync.h
tctx.c
tctx.h
timeout.c
timeout.h
uring_cmd.c io_uring/cmd: Introduce SOCKET_URING_OP_SETSOCKOPT 2023-10-19 16:42:03 -06:00
uring_cmd.h
waitid.c io_uring: add IORING_OP_WAITID support 2023-09-21 12:04:45 -06:00
waitid.h io_uring: add IORING_OP_WAITID support 2023-09-21 12:04:45 -06:00
xattr.c
xattr.h