Nicholas A. Bellinger, on 08/20/2010 02:29 AM wrote:
"We will be extending the scsi_tgt_[lib,if].c mapped ring interface to allow TCM to access userspace backstores transparently with existing kernel level TCM fabric modules, and using the generic configfs fabric module infrastructure in target_core_fabric_configfs.c for the port and I_T nexus control plane just as you would with any TCM backstore subsystem today. Again, in open source you have to build upon what already exists and move forward. The original STGT kernel<-> userspace ring abstraction and logic in drivers/scsi/scsi_tgt_lib.c:scsi_tgt_queue_command() -> scsi_tgt_uspace_send_cmd() is already going to do the vast majority of what is required for handling fabric I/O processing and I_T Nexus and Port management in kernel space with a userspace backstore. It is really just a matter of allowing the STGT ring request to optionally be sent out to userspace as a standalone LUN instead of as a target port."
You forgot to mention one small thing. You are going to (re)use current STGT interface for user space backend, which in 5 years of being mainline has not gained any noticeable interest, because it is fundamentally slow. It needs a complete redesign to become fast. In contrast, interface provided by scst_user has just 3% overhead comparing with fully in-kernel backend and allows to build storage capable of handling 1,500,000 IOPSes (Kaminario).
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