numam-spdk/lib
Shuhei Matsumoto ae7019417e iscsi: Merge immediate data into the following R2T data
The recent changes merged multiple Data-OUT PDUs within the same
sequence into a single subtask up to 64KB.

However, they were not enough.

For a large write operation, the hardware iSCSI HBA host sent an immediate
data whose size was not block size multiples and then more solicit
data through R2T exchanges.

One example for a 64KB write operation was as follows:
  host sent SCSI Write with 5792 bytes and F = 1
  target replied a R2T
  host sent Data-OUT with 15880 bytes
  host sent Data-OUT with 11536 bytes
  host sent Data-OUT with 2848 bytes
  host sent Data-OUT with 11536 bytes
  host sent Data-OUT with 5744 bytes
  host sent Data-OUT with 12200 bytes and F = 1

The hardware iSCSI HBA host can decide the size of the unsolicited data
but the SPDK iSCSI target can require the host to send the solicited data
whose size is block size multiples.

Hence we merge immediate data to the following R2T data if the immediate
data is not more than 64KB and more R2T data come.

Add another test case to check if the fix works for the above example.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I4906b4e1a8b61e08862f4ccc27a6caf165126530
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9708
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2021-11-16 09:08:27 +00:00
..
accel accel: create SW Engine Channel if HW Engine not supports 2021-10-20 23:04:38 +00:00
bdev bdev/zone: add support for get zone id 2021-11-11 23:23:35 +00:00
blob blob: use uint64_t for unmap and write_zeroes lba count 2021-10-14 08:17:16 +00:00
blobfs trace: move all trace definitions to a separate file 2021-10-20 07:22:00 +00:00
conf so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
dma dma: Add infrstructure for push operation 2021-10-20 22:55:52 +00:00
env_dpdk env/dpdk: retry SO_RCVBUF if SO_RCVBUFFORCE fails 2021-11-08 16:05:51 +00:00
env_ocf Update ocf to 21.6 2021-10-20 07:22:22 +00:00
event thread: add spdk_poller_get_id 2021-11-16 09:06:10 +00:00
ftl ftl: fix set-but-not-used error 2021-11-03 18:30:55 +00:00
idxd lib/idxd: only select idxd device that are on the same socket 2021-10-07 09:26:50 +00:00
init init: use strerror when conf file can't be loaded 2021-11-03 18:30:55 +00:00
ioat ioat: fix potential double free problem in ioat_channel_start() 2021-06-16 09:00:37 +00:00
iscsi iscsi: Merge immediate data into the following R2T data 2021-11-16 09:08:27 +00:00
json json: add the spdk_json_write_uint8|16 function 2021-10-14 09:52:25 +00:00
jsonrpc jsonrpc: use SOCK_NONBLOCK in socket() calls 2021-05-05 13:31:10 +00:00
log log: add an API to return syslog level based on SPDK's log level 2021-08-12 12:57:39 +00:00
lvol blob: use uint64_t for unmap and write_zeroes lba count 2021-10-14 08:17:16 +00:00
nbd lib/nbd: hot remove will be correctly handled 2021-07-26 08:56:23 +00:00
notify so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
nvme nvme: Do not construct the namespace object on ns_create 2021-11-15 11:59:59 +00:00
nvmf nvmf: fix check for buffs num in nvmf_request_get_buffers 2021-11-10 20:25:35 +00:00
rdma include: remove util.h include from queue_extras.h 2021-04-14 07:25:21 +00:00
reduce util: Add macro SPDK_SIZEOF_MEMBER to get size of a member of a struct 2021-07-15 07:16:22 +00:00
rocksdb rocksdb: fix thread name typo 2021-09-03 08:08:20 +00:00
rpc so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
scsi scsi: Decide LUN format for each LUN ID 2021-10-12 09:10:18 +00:00
sock socket: Remove deprecated enable_zerocopy_send 2021-07-23 10:30:25 +00:00
thread thread: add spdk_poller_get_id 2021-11-16 09:06:10 +00:00
trace trace: enable adding relations between traces 2021-10-21 17:57:33 +00:00
trace_parser trace: enable adding relations between traces 2021-10-21 17:57:33 +00:00
ut_mock so_ver: increase all major versions 2021-02-05 14:43:47 +00:00
util add name to fd groups 2021-10-07 09:25:48 +00:00
vfio_user nvme/vfio-user: remove internal device list 2021-11-10 23:11:13 +00:00
vhost lib/vhost: Fix compilation with dpdk 21.11 2021-11-16 09:06:54 +00:00
virtio env: only pass failing address to spdk_pci_error_handler 2021-06-15 08:34:28 +00:00
vmd vmd: update for changes in IceLake platform 2021-08-31 08:39:37 +00:00
Makefile lib/trace_parser: add trace_parser library stubs 2021-09-29 08:57:58 +00:00