mbox series

[v3,0/5] scsi: target: XCOPY performance

Message ID 20200327141954.955-1-ddiss@suse.de (mailing list archive)
Headers show
Series scsi: target: XCOPY performance | expand

Message

David Disseldorp March 27, 2020, 2:19 p.m. UTC
These changes remove unnecessary heap allocations in the XCOPY
READ/WRITE dispatch loop.

Synthetic benchmarks on my laptop using the libiscsi iscsi-dd utility
(--xcopy --max 1 --blocks 65535 src=dst) against a target backed by an
8G zram (DEBUG_KMEMLEAK=y) iblock backstore (avg across four runs) show:
before: 5.30845G/s
after:  5.99056G/s (approx. +12.8%)

Changes since v2:
- 5/5: incorporate Christoph's clean up suggestions

Changes since v1:
- drop RFC
- rework 3/5 and 5/5 following Christoph's feedback

Feedback appreciated.

Cheers, David

----------------------------------------------------------------
David Disseldorp (5):
      scsi: target: use #def for xcopy descriptor len
      scsi: target: drop xcopy DISK BLOCK LENGTH debug
      scsi: target: avoid per-loop XCOPY buffer allocations
      scsi: target: increase XCOPY I/O size
      scsi: target: use the stack for XCOPY passthrough cmds

 drivers/target/target_core_xcopy.c | 187 ++++++++++-------------------
 drivers/target/target_core_xcopy.h |   9 +-
 2 files changed, 64 insertions(+), 132 deletions(-)

Comments

Martin K. Petersen March 27, 2020, 5:49 p.m. UTC | #1
David,

> These changes remove unnecessary heap allocations in the XCOPY
> READ/WRITE dispatch loop.
>
> Synthetic benchmarks on my laptop using the libiscsi iscsi-dd utility
> (--xcopy --max 1 --blocks 65535 src=dst) against a target backed by an
> 8G zram (DEBUG_KMEMLEAK=y) iblock backstore (avg across four runs) show:
> before: 5.30845G/s
> after:  5.99056G/s (approx. +12.8%)

Applied to 5.7/scsi-queue, thanks!