ioccsz and iorcsz check failing

Keith Busch kbusch at kernel.org
Fri Dec 15 10:08:40 PST 2023


On Fri, Dec 15, 2023 at 03:48:04PM +0100, Daniel Wagner wrote:
> Since commit 2fcd3ab39826 ("nvme-fabrics: check ioccsz and iorcsz") my
> testing fails with these checks when trying to connect a remote target
> (Linux nvmet) via nvme-tcp. Looking at the TCP frame I see these values
> are 0 on the wire.
> 
> When running blktests with nvme-tcp via the loop back device all is
> good.
> 
> When running blktest with nvme-fc via the loop back device the first
> check fails because ioccsz is 0. I've added a bunch of debug prints:
> 
>   nvme nvme0: I/O queue command capsule supported size 0 < 4
> 
>   nvmet: nvmet_execute_identify:687 cns 1
>   nvmet: nvmet_execute_identify_ctrl:469 ioccsz 4 iorcsz 1
>   nvmet: nvmet_copy_to_sgl:98 buf ffff8881348a6000 len 4096
> 
> So this part looks good to my eyes. Not sure where the problem could be.
> In case someone spots the problem as I can't really make sense of it at
> the moment.

Weird. I optimistically thought I'd find a problem, but nope, I am
confused. The code looks like it's doing the right thing, and your
target side prints appear to confirm that, but host sees a different
result. Is anything else in the identify wrong, or is it just these
fabrics fields?



More information about the Linux-nvme mailing list