Spdk/test/unit/lib
Shuhei Matsumoto 6561aadca5 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>
2022-06-30 13:32:27 -04:00
..
accel accel: create SW Engine Channel if HW Engine not supports 2022-06-30 13:32:26 -04:00
bdev bdev/nvme: display all ctrlrs for this bdev when dump bdev nvme controller 2022-06-30 13:32:27 -04:00
blob blob: use uint64_t for unmap and write_zeroes lba count 2022-06-30 13:32:26 -04:00
blobfs test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
dma dma: Update memory domain context structure 2022-06-30 13:32:26 -04:00
env_dpdk test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
event scheduler/dynamic: don't adjust tsc too much for very busy cores 2022-06-30 13:32:25 -04:00
ftl test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
idxd test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
init nvmf: Fix double controller destruction when subsys is deleted 2021-09-08 08:04:04 +00:00
ioat test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
iscsi iscsi: Merge immediate data into the following R2T data 2022-06-30 13:32:27 -04:00
json test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
jsonrpc test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
log test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
lvol test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
notify test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
nvme nvme: Rename max_active_ns_idx to active_ns_count 2022-06-30 13:32:27 -04:00
nvmf nvmf: Add discovery filtering rules 2022-06-30 13:32:27 -04:00
reduce test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
rpc ut/rpc: wrap syscalls using spdk.mock.unittest.mk 2022-06-30 13:32:25 -04:00
scsi test/scsi: Fix uninitialized variable 2022-06-30 13:32:26 -04:00
sock test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
thread test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
util test: optimize unit test .gitignore files 2021-08-20 07:29:57 +00:00
vhost lib/vhost: Fix compilation with dpdk 21.11 2022-06-30 13:32:27 -04:00
json_mock.c ut/json_mock: Add spdk_json_write_string_fmt() 2021-02-09 11:29:53 +00:00
Makefile unittest/rpc: add rpc unittest 2021-09-06 09:55:33 +00:00