All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.