nvme tcp receive errors

Keith Busch kbusch at kernel.org
Wed Apr 28 19:01:47 BST 2021


On Wed, Apr 28, 2021 at 10:42:13AM -0700, Sagi Grimberg wrote:
> In tcp.c:
> --
> static void nvme_tcp_set_sg_inline(struct nvme_tcp_queue *queue,
>                 struct nvme_command *c, u32 data_len)
> {
>         struct nvme_sgl_desc *sg = &c->common.dptr.sgl;
> 
>         sg->addr = cpu_to_le64(queue->ctrl->ctrl.icdoff);
>         sg->length = cpu_to_le32(data_len);
>         sg->type = (NVME_SGL_FMT_DATA_DESC << 4) | NVME_SGL_FMT_OFFSET;
> }
> 
> static void nvme_tcp_set_sg_host_data(struct nvme_command *c,
>                 u32 data_len)
> {
>         struct nvme_sgl_desc *sg = &c->common.dptr.sgl;
> 
>         sg->addr = 0;
>         sg->length = cpu_to_le32(data_len);
>         sg->type = (NVME_TRANSPORT_SGL_DATA_DESC << 4) |
>                         NVME_SGL_FMT_TRANSPORT_A;
> }
> --
> 
> What is the sgl type you see in the traces? transport specific sgl
> (host-data i.e. non-incapsule) or inline?

The Sub Type is 0xA, Transport Specific.



More information about the Linux-nvme mailing list