Command timeouts with NVMe TCP kernel driver

Sagi Grimberg sagi at grimberg.me
Wed Sep 1 05:56:54 PDT 2021


>> One thing that looks problematic is if 'bd.last' is true but
>> nvme_tcp_queue_rq() fails early after enqueuing previous commands in the
>> sequence. That could cause the io_work to never kick.
> 
> Eh, your observed problem should not be the above: the block layer will
> call .commit_rqs() anytime an error occurs during .queue_rq(), which
> should kick io_work. So yeah, I'll look for other possibilities.

Also, any temporary failure (EAGAIN) should trigger write_space
that will also schedule io_work.



More information about the Linux-nvme mailing list