]> git.baikalelectronics.ru Git - kernel.git/commit
nvme-tcp: use in-capsule data for I/O connect
authorCaleb Sander <csander@purestorage.com>
Thu, 7 Jul 2022 21:12:45 +0000 (15:12 -0600)
committerJens Axboe <axboe@kernel.dk>
Tue, 2 Aug 2022 23:22:41 +0000 (17:22 -0600)
commit54ce875f1dbc53dbe99b02f4b99911cfd25e3b61
tree8f56fc79e704e0f79cf04f7c182f0c5421435f63
parent8f6e83100d1391f6d08016e78f23b51b115e8f2a
nvme-tcp: use in-capsule data for I/O connect

Currently, command data is only sent in-capsule on the for admin or I/O
commands on queues that indicate support for it.  Send fabrics command
data in-capsule for I/O queues as well to avoid needing a separate
H2CData PDU for the connect command.

This is optimization. Without this change, we send the connect command
capsule and data in separate PDUs (CapsuleCmd and H2CData), and must wait
for the controller to respond with an R2T PDU before sending the H2CData.

With the change, we send a single CapsuleCmd PDU that includes the data.
This reduces the number of bytes (and likely packets) sent across the network,
and simplifies the send state machine handling in the driver.

Signed-off-by: Caleb Sander <csander@purestorage.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/nvme/host/tcp.c