SCST vs STGT

STGT is alternative, independent from SCST implementation of SCSI target framework for Linux. It has different architecture, where SCSI target state machine is placed in the user space, while in SCST all the processing done in the kernel. Such architecture as STGT has was acknowledged by the Linux SCSI subsystem maintainers as a "right" one, so kernel's part of STGT quickly found its way to the kernel.

But such architecture has several inherent problems. Among them performance and complexity. See description for the set of patches, submitted for the first iteration of in-kernel inclusion review and comments in Linux kernel mailing list.

See also the following important discussions:

Also don't be deceived by the fact that some (small) part of STGT was accepted into the kernel.
It doesn't mean that STGT has the "kernel quality". STGT as a whole similarly to any other out-of-kernel-tree project lives on its own, hence has its own quality level, which isn't necessary better, than the quality level of SCST.