[Stgt-devel] User-mode iSER

Alexander Nezhinsky nezhinsky
Wed Aug 2 16:59:46 CEST 2006


>* > > Attaches is a new picture with kernel/user boundaries. I think the
*>* > > boundary is somewhat fuzzy at the top and bottom due to the fact
*>* > > the API is different for each target type and for each network
*>* > > type.
*>* > >
*>* > > For example, the sd driver will use open /dev/sdN and submit ioctl
*>* > > read/write the disk, whereas the file target will
*>* > > open("/home/thisandthat", ...) and submit lseek/read/write to
read/write *>* > > the file.
*>* > > *
Regarding your diagram. Boxes marked "SCSI Disk Driver" interfacing /dev/sdX
and "Block Device Driver" interfacing /dev/mdX are probably using the same
API. /dev/sdX are normalized to the same "Block Device" interface as
/dev/mdX. So no ioctl calls, the same open/read/write.
Did you mean that the two need different management mechanisms which should
be present in the corresponding user-space libraries?
I guess "SCSI Disk Driver" should interface /dev/sgX devices exported by sg
driver and allowing direct access to a SCSI disk. sg uses ioctl calls where
explicit scsi commands are passed. No cache will be used in this case, just
as with direct IO through a block device. And the copy issue is to be
addressed here too.
*>* > > On the network side, the TCP provider would use socket, listen,
*>* > > send, recv (at least initially), the RMDA provider would use
*>* > > rdma_resolve_addr, rdma_resolve_route, rdma_listen, rdma_accept,
*>* > > rdma_create_qp, rdma_post_send, etc....
*>* > >
*>* > > My only point is that the kernel/user interface is not a straight
*>* > > since some of these interfaces are higher level than others.
*As all transports interface "Network interface layer" using the same API,
then all transports should have at least a user-space driver. **While some
should also have an in-kernel part (e.g. FCP whose driver may remain intact,
plus perhaps a special adaptation driver to enable zero-copy
operation), others may do without additional kernel modules (e.g. iSER may
use user-space IB verbs).  *
*So the user-kernel line may remain where it is (under the user-space
transport drivers) with a note that some transports may need additional
boxes underneath as well.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://bat.berlios.de/pipermail/stgt-devel/attachments/20060802/30d2ff58/attachment.html

More information about the stgt mailing list