aboutsummaryrefslogtreecommitdiff
path: root/include/linux/fpga
diff options
context:
space:
mode:
authorKeith Busch <[email protected]>2021-09-09 08:54:52 -0700
committerChristoph Hellwig <[email protected]>2021-09-14 10:32:05 +0200
commit70f437fb4395ad4d1d16fab9a1ad9fbc9fc0579b (patch)
tree08033cf92886114b9b9cbffc632c2cc0a2d6fddd /include/linux/fpga
parent9817d763dbe15327b9b3ff4404fa6f27f927e744 (diff)
nvme-tcp: fix io_work priority inversion
Dispatching requests inline with the .queue_rq() call may block while holding the send_mutex. If the tcp io_work also happens to schedule, it may see the req_list is non-empty, leaving "pending" true and remaining in TASK_RUNNING. Since io_work is of higher scheduling priority, the .queue_rq task may not get a chance to run, blocking forward progress and leading to io timeouts. Instead of checking for pending requests within io_work, let the queueing restart io_work outside the send_mutex lock if there is more work to be done. Fixes: a0fdd1418007f ("nvme-tcp: rerun io_work if req_list is not empty") Reported-by: Samuel Jones <[email protected]> Signed-off-by: Keith Busch <[email protected]> Reviewed-by: Sagi Grimberg <[email protected]> Signed-off-by: Christoph Hellwig <[email protected]>
Diffstat (limited to 'include/linux/fpga')
0 files changed, 0 insertions, 0 deletions