Please review this second iteration of the patch set of the new
(although, perhaps, the oldest) SCSI target framework for Linux SCST
with a set of dev handlers and 2 target drivers: for iSCSI (iscsi-scst)
and for Infiniband SRP (srpt).
The first iteration you can found here: http://lkml.org/lkml/2008/12/10/245.
Please review this patchset as a proposed replacement of the current
mainline SCSI target subsystem STGT.
I've already described advantages of SCST over STGT in
http://lkml.org/lkml/2008/12/10/245. In short, they are:
1. Performance, including various performance improvements not available
from user space, for instance, because of the user space allocated memory.
2. Overall simplicity with the resulting simpler and more clear code,
because STGT has a microkernel-like architecture, but SCST has the same
monolithic architecture as the Linux kernel has chosen from the very
beginning.
3. Complete pass-through support, which isn't practically possible if
the SCSI target core stays in user space.
I can add to what I already wrote only:
1. There are recent performance comparison data between SCST SRP and
STGT iSER measured by Bart Van Assche with the following target setup:
* 2.6.30.7 kernel with SCST patches and with kernel debugging disabled.
* OFED 1.5 IB drivers.
* SCST revision 1504 with FILEIO vdisk, built in release mode (make
debug2release) and with SCST_MAX_TGT_DEV_COMMANDS changed from 48 into
256.
* ib_srpt kernel module parameters thread=0.
* STGT revision 1.0.1 with rdwr backend.
* 1 GB file residing on a tmpfs filesystem was exported towards the
initiator system.
* Frequency scaling was disabled.
* Runlevel: 3.
* IRQ affinity for mlx4-comp-0: not bound to a core (smp_affinity=3).
* IB HCA: QDR (40Gbps) Mellanox ConnectX MT26428
* CPU: Intel Core2 Duo E8400 @ 3.00 GHz.
* NOOP I/O scheduler
and initiator setup:
* Vanilla 2.6.33-rc7 kernel
* SRP initiator was loaded with parameter srp_sg_tablesize=128
* Frequency ...