48a547fd82
Previously, the R2T was sent and if an H2C arrived prior to seeing the R2T ack, it was processed anyway. Serialize this process. In practice, if the H2C arrives with a correctly functioning initiator, that means the R2T already made it to the initiator. But because the PDU hasn't been released yet, immediately processing the PDU requires an extra PDU associated with the request. Basically, making this change halves the worst-case number of PDUs required per connection. In the current sock layer implementations, it's not actually possible for the R2T send ack to occur after that H2C arrives. But with the upcoming addition of MSG_ZEROCOPY and other sock implementations, it's best to fix this now. Change-Id: Ifefaf48fcf2ff1dcc75e1686bbb9229b7ae3c219 Signed-off-by: Ben Walker <benjamin.walker@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/479906 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> |
||
---|---|---|
.. | ||
ctrlr_bdev.c | ||
ctrlr_discovery.c | ||
ctrlr.c | ||
custom_cmd_hdlr.c | ||
fc_ls.c | ||
fc.c | ||
Makefile | ||
nvmf_fc.h | ||
nvmf_internal.h | ||
nvmf_rpc.c | ||
nvmf.c | ||
rdma.c | ||
subsystem.c | ||
tcp.c | ||
transport.c | ||
transport.h |