[PATCH] nvme-tcp: add additional info for nvme_tcp_timeout log

Sagi Grimberg sagi at grimberg.me
Mon Dec 5 01:59:13 PST 2022


> Hi Sagi, thank you for your inputs
> 
> It seems to me that logging nvme command id is sufficient and there is no need to log also tag and genctr separately
> This is due to the fact that command id is constructed as such:
> 
> | xxxx | xxxxxxxxxxxx |
>    gen    request tag
> 
> What do you think?

Yes, that is fine I guess.

> Regarding the io timeout value, I got your point..
> logging the io timeout threshold (which is the delta from allocation to submission) is sufficient
> 
> regarding nvme-tcp trace points -  I don’t believe that would help.
> This timeout log is on the host side, and we can't ensure that a customer that is running nvme host will enable/use trace points
> In addition, the whole point of this specific log is for debug, I guess - right?

To some extent.

> 
> How does this log look?
> kernel: nvme nvme0: queue 4: cntlid 1 type 4 cid 4163 opcode 0x2 io timeout threshold 30000ms
> (Including the cntlid, cid (which includes genctr+tag), opc, and timeout threshold value in ms)

Both the cntlid and the io timeout are obtainable via sysfs, why add
these to the log? The cntlid is often just an ephemeral value assigned
by the controller.

opcode is fine to add.



More information about the Linux-nvme mailing list