Request timeout seen with NVMEoF TCP
Sagi Grimberg
sagi at grimberg.me
Fri Dec 18 20:04:12 EST 2020
> Wouldn't the addition of the change to io_work() itself result in step (4) above never occurring? Pending always being set if mutex can not be acquired, and if io_work() then exceeds time period it always re-queues itself. So io_work() should always end up draining any send list eventually. Unless io_work() exits early for some reason via the try_recv (ret < 0) return point without requeuing.
nvme_tcp_try_recv returns what it consumed, so it can return 0 if it did
not have anything to recv in the socket, hence it may not reschedule itself.
More information about the Linux-nvme
mailing list