summaryrefslogtreecommitdiff
path: root/scripts/clang-tools/gen_compile_commands.py
diff options
context:
space:
mode:
authorKeith Busch <kbusch@kernel.org>2021-09-09 08:54:52 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-09-22 12:27:57 +0200
commit8f8ad122ffe01efb7c14b34f9c33b8b16e02fec5 (patch)
treedde11a7e229e2ab4c70c2f8e96e009459ac477c2 /scripts/clang-tools/gen_compile_commands.py
parentc586bc31d5b9ae7ed202fc0dcaffbaaed77bde06 (diff)
nvme-tcp: fix io_work priority inversion
commit 70f437fb4395ad4d1d16fab9a1ad9fbc9fc0579b upstream. 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 <sjones@kalrayinc.com> Signed-off-by: Keith Busch <kbusch@kernel.org> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'scripts/clang-tools/gen_compile_commands.py')
0 files changed, 0 insertions, 0 deletions