[SPDK] The low water mark in NVMe/TCP target

Bin Yang <bin.yang at jaguarmicro.com> Thu, 07 Jul 2022 12:35:02 +0000
Newsgroups dev.linux.lists.spdk
Message-ID < <HK0PR06MB31556BEE1EA0CD026BA6F3259F839@HK0PR06MB3155.apcprd06.prod.outlook.com>>
--===============7833319285555876640==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

Hello, Everyone!

I find spdk set low water mark in NVMe/TCP target to 8 bytes (sizeof(struct=
 spdk_nvme_tcp_common_pdu_hdr))
In my test case, sometimes, there might be very small data packet (as small=
 as 4 bytes) be sent to wire=EF=BC=8CAfter
this, if there is no more data sent to the same socket, this small data pac=
ket won=E2=80=99t be received by NVMe/TCP controller qpair poll=EF=BC=8C
because the size hasn=E2=80=99t reached the low watermark.

So I want to know:

1)    Why spdk need to set low watermark in NVMe/TCP target to 8 bytes=EF=
=BC=8CI don't think there's much advantage in doing that?

2)    Can we set low watermark in NVMe/TCP target to 1 bytes just like iscs=
i target_does?

Thanks,

Bin

--===============7833319285555876640==--