]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r275058: Coalesce last data move and command status for read commands.
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 18 Dec 2014 08:25:00 +0000 (08:25 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 18 Dec 2014 08:25:00 +0000 (08:25 +0000)
commit44c28100db34093e51ea7ed0963fc347b7256d33
tree05a6e1cc30c020802650700281d3bb43266e5777
parent3cf61054a954a79c2401df8d92138804ab535771
MFC r275058: Coalesce last data move and command status for read commands.

Make CTL core and block backend set success status before initiating last
data move for read commands.  Make CAM target and iSCSI frontends detect
such condition and send command status together with data.  New I/O flag
allows to skip duplicate status sending on later fe_done() call.

For Fibre Channel this change saves one of three interrupts per read command,
increasing performance from 126K to 160K IOPS.  For iSCSI this change saves
one of three PDUs per read command, increasing performance from 1M to 1.2M
IOPS.

Sponsored by:   iXsystems, Inc.

git-svn-id: svn://svn.freebsd.org/base/stable/10@275881 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/cam/ctl/ctl.c
sys/cam/ctl/ctl_backend_block.c
sys/cam/ctl/ctl_backend_ramdisk.c
sys/cam/ctl/ctl_frontend_iscsi.c
sys/cam/ctl/ctl_io.h
sys/cam/ctl/ctl_tpc.c
sys/cam/ctl/scsi_ctl.c