* [SPDK] NVMe/TCP initiator and target have used SGL for different two use cases
@ 2019-05-23 23:50
0 siblings, 0 replies; only message in thread
From: @ 2019-05-23 23:50 UTC (permalink / raw)
To: spdk
[-- Attachment #1: Type: text/plain, Size: 1469 bytes --]
Hi All,
nvme/tcp initiator and target have used SGL for the following two use cases.
1st use case is
when nvme/tcp read data segment from socket to a PDU or write data segment from a
PDU to socket, the read or write may be splitted. Hence nvme/tcp have to repeat
read/write until the whole data of the PDU is transferred.
For this case, for each read/write, nvme/tcp create the same SGL and shift the
starting offset according to the progress. The same SGL means that the SGL points
to the same whole data buffer.
2nd use case is
when nvme/tcp process C2H or H2C, nvme/tcp cut out the part of the data buffer
and transfer the part, and repeat cut and transfer until the whole data buffer
is transferred.
For this case, for each C2H or H2c, nvme/tcp create a SGL that points to the part
from a SGL that points to the whole data buffer, by shifting datao and datal
according to the progress.
Current code will not work correctly for the 2nd use case when SGL have multiple
entries because the 2nd use case use the context created for the 1st use case
but two use cases are different.
Processing the 2nd use case correctly is necessary to support DIF insert/strip and
so I will submit patches soon.
Intention of current my patches is very vague but I hope the upcoming patches will
have clear meaning.
Thanks,
Shuhei
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-05-23 23:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-23 23:50 [SPDK] NVMe/TCP initiator and target have used SGL for different two use cases
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.