Aboo Valappil wrote: > I am sending this again as the initial mail did not make it to the list. > > Hi All, > > I thought a lot about whether I should write to mailing list about this > or not. I have requested help from the list before to complete this. May > be I am too crazy to develop something like this. When I think more and > more about this, it will be really useful, mainly for educational > purposes and it could be useful in other environments. > > I like to know everyone's opinion on this. Please let me know your > thoughts and suggestions and its inclusion in the main line Linux kernel. > > I have developed a Virtual HBA (Around ~600 lines of code). It is a > kernel module and works very well with 2.6.9 kernel. Basically it > registers a HBA (LLD) to the SCSI Mid layer. It implements a linked list > with all the SCSI commands queued from Mid layer. I registered a > character device driver. I ship out the SCSI commands off to user space > via this character device. There is a user space application monitoring > this character device looking for SCSI commands, process it and sends it > back to the mid layer through this character interface. At the moment, > the interface to the Virtual HBA inside the kernel is through read/write > and ioctls to the character device. I am trying to get rid of reading > and writing of SCSI request_buffer through character device and use > memmap/splice to avoid copying kernel buffer to user space(I am facing > some challenges as the request_buffer is not a linear buffer, but a > scatter gather buffer). Is there any reason you went with the virtual scsi hba? There is a dm-userspace module which would allow you to put any block layer driver in userspace. You should ask Dan Smith <danms@xxxxxxxxxx> and Tomo <fujita.tomonori@xxxxxxxxxxxxx> to learn more. I guess the downside would be that a lot of scsi-ml would be duplicated in userspace. I am not sure how big a deal that is. If it is a problem, you could at least look into what it takes to throw requests and buffers between the kernel and userspace and what code can be shared between your driver, dm-userspace, SG_IO, and the scsi target code. - 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