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