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

Walker, Benjamin <benjamin.walker at intel.com> Mon, 11 Jul 2022 20:58:29 +0000
Newsgroups dev.linux.lists.spdk
Message-ID <BYAPR11MB282459934E5A61028DB04AD9EF879@BYAPR11MB2824.namprd11.prod.outlook.com>
--===============8182145881344712710==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable

> From: Bin Yang <bin.yang(a)jaguarmicro.com>
> =

> Hello, Everyone!
> =

> I find spdk set low water mark in NVMe/TCP target to 8 bytes (sizeof(stru=
ct
> 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 p=
acket
> 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 is=
csi
> target_does?

I think you're correct here - using 8 is a bug. It's absolutely possible th=
at the last I/O sent was split into two weird data frame sizes that arrived=
 significantly far apart in time, and the second one is something tiny like=
 4 bytes.

Did you want to submit a bug fix for this, or would you like me to?

Thanks,
Ben

> =

> Thanks,
> =

> Bin
> _______________________________________________
> SPDK mailing list -- spdk(a)lists.01.org
> To unsubscribe send an email to spdk-leave(a)lists.01.org
--===============8182145881344712710==--