• Caleb Sander's avatar
    nvme-tcp: use in-capsule data for I/O connect · 53ee9e29
    Caleb Sander authored
    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: default avatarCaleb Sander <csander@purestorage.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    53ee9e29
tcp.c 68.6 KB