Vladislav Bolkhovitin wrote:
So, if you need in-kernel pass-through I would suggest you to look at
SCST project (http://scst.sf.net), which is currently stable and mature,
although also not fully finished yet. It was historically from the very
beginning designed for full feature in-kernel pass-through for not only
stateless SCSI devices, like disks, but also for stateful SCSI devices
(like SSC ones a.k.a. tapes), where the correct handling of all above is
essential. In additional to considerably better performance, the
complete in-kernel approach makes the code simpler, smaller and cleaner
as well as allows such things as zero-copy buffered file IO, i.e. when
data are sent to remote initiators or received from them directly
from/to the page cache (currently under development). For those who need
implementing SCSI devices in the user space scst_user module is about to
be added. Since the SCSI state machine is in kernel the interface
provided by scst_user is very simple, it essentially consists from only
a single IOCTL and allows to have overhead as low as a single syscall
per SCSI command without any additional context switches. It is already
implemented and works. For some legal reasons I can't at the moment
publish it, but you can see its full description in the project's SVN
docs (you can get them using command "svn co
https://svn.sourceforge.net/svnroot/scst/trunk/doc").
Now I released scst_user module and it is available from the SCST SVN,
so you can check how simply it allows to write SCSI devices, like a VTL,
in the user space.
Vlad
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html