summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/bin/stackcollapse-record
diff options
context:
space:
mode:
authorJunyuan Feng <a@lollipopkit.com>2026-09-23 09:20:44 +0000
committerJens Axboe <axboe@kernel.dk>2026-09-28 08:28:28 -0600
commit98ad5b63f5041dc354a6e694f4a9436f74e0681b (patch)
tree92156c1a999d05a03f38e47edafacda2b99b3f2b /tools/perf/scripts/python/bin/stackcollapse-record
parenta3bdf68feecc57af5c11fb599f860ac9790ffad9 (diff)
downloadlinux-next-98ad5b63f5041dc354a6e694f4a9436f74e0681b.tar.gz
linux-next-98ad5b63f5041dc354a6e694f4a9436f74e0681b.zip
io_uring/zcrx: requeue multishot receives stopped by a local resource
A multishot RECV_ZC can go idle with unread TCP data when a receiver-local resource runs out. An empty copy-fallback niov freelist returns -ENOMEM; a full CQ returns -ENOSPC. After partial progress the stop reason is lost: io_zcrx_copy_chunk() and io_zcrx_recv_skb() report the copied bytes, and tcp_read_sock() drops an error from a later call once earlier data was consumed. The edge-triggered request is then not requeued, so it cannot consume the remaining data until another socket event arrives. Record in io_zcrx_recv_skb() when a walk stops before consuming the length it was offered, and requeue if the pass still returned data. The failed chunk is first on the next pass. The resource is usually still exhausted by then, so that pass fails at once and ends the request with an error CQE, which the application must handle by re-arming. The request does not spin, and the stall becomes a visible error. Keep the existing skb limit and SOCK_DONE handling. Fixes: 11ed914bbf94 ("io_uring/zcrx: add io_recvzc request") Fixes: bc57c7d36c4c ("io_uring/zcrx: add copy fallback") Cc: stable@vger.kernel.org Assisted-by: Codex:gpt-6-sol Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Junyuan Feng <a@lollipopkit.com> Reviewed-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://patch.msgid.link/010001a0cd914529-23df2f94-bbe0-49cd-ae5d-05922356fa12-000000@email.amazonses.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-record')
0 files changed, 0 insertions, 0 deletions