Spdk/lib/iscsi
Cunyin Chang 40b74cd343 iscsi: optimization of large read process.
This patch move the spdk_iscsi_conn_handle_queued_tasks() to the main
loop of connection poller, make the logic more clear, it will also fix
one issue of hotplug:
for large read command, it has the potential risk:
one task will be split into N subtaks, when primary task return error and
try to send data in pdu, it will call spdk_iscsi_conn_handle_queued_tasks(),
the primary task is pending now, and all the subtasks will return error from
lun layer synchronous, this make the primary task return from the function
spdk_iscsi_transfer_in() after all the other subtaks, but when the N - 1 subtask
return from function spdk_iscsi_transfer_in(), it meet the condition:
primary->bytes_completed == primary->scsi.transfer_len
then it will send response pdu, after this, the primary task return from
spdk_iscsi_transfer_in(), it also meet the condition, so it will also try
to send response pdu, this will make the application run into error.

Change-Id: I72206c1ce303f5fb6bd650713742d5819a88a30f
Signed-off-by: Cunyin Chang <cunyin.chang@intel.com>
Reviewed-on: https://review.gerrithub.io/370339
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-07-20 12:03:34 -04:00
..
acceptor.c include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
acceptor.h iscsi: Add an iscsi library. 2016-08-03 14:43:40 -07:00
conn.c iscsi: optimization of large read process. 2017-07-20 12:03:34 -04:00
conn.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
crc32c.c iscsi: refactor and simplify digest calculations 2017-07-17 14:18:07 -04:00
crc32c.h iscsi: refactor and simplify digest calculations 2017-07-17 14:18:07 -04:00
init_grp.c include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
init_grp.h iscsi: Add an iscsi library. 2016-08-03 14:43:40 -07:00
iscsi_rpc.c scsi: removed dev->maxlun field 2017-07-12 13:16:55 -04:00
iscsi_subsystem.c iscsi: fix AHS handling 2017-07-14 11:14:21 -04:00
iscsi.c iscsi: optimization of large read process. 2017-07-20 12:03:34 -04:00
iscsi.h iscsi: fix AHS handling 2017-07-14 11:14:21 -04:00
Makefile env: Make the environment library configurable. 2016-10-05 11:51:37 -07:00
md5.c include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
md5.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
param.c iscsi, param: fix memory leak related issue 2017-06-05 13:34:40 -04:00
param.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
portal_grp.c include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
portal_grp.h iscsi: fixed crash on invalid add_portal_group call 2017-03-27 15:19:38 -07:00
task.c scsi: Remove cb_event. It is no longer necessary. 2017-06-22 10:47:31 -04:00
task.h iscsi: change iscsi_bhs_scsi_req variable names. 2017-07-18 13:14:16 -04:00
tgt_node.c scsi: removed dev->maxlun field 2017-07-12 13:16:55 -04:00
tgt_node.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00