[Stgt-devel] vsd -> vdev is bad
Ming Zhang
mingz at ele.uri.edu
Wed Sep 21 00:06:55 CEST 2005
On Tue, 2005-09-20 at 14:22 -0500, Mike Christie wrote:
> Ming Zhang wrote:
> > On Tue, 2005-09-20 at 13:44 -0500, Mike Christie wrote:
> >
> >>Ming Zhang wrote:
> >>
> >>>On Tue, 2005-09-20 at 13:27 -0500, Mike Christie wrote:
> >>>
> >>>
> >>>>Mike Christie wrote:
> >>>>
> >>>>
> >>>>>Ming Zhang wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>>Hi Mike
> >>>>>>
> >>>>>>I think change vsd->vdev is a bad idea.
> >>>>>
> >>>>>
> >>>>>I would agree it is a bad name, but all that device does today is the
> >>>>>reads and writes. It should probably be called something-something-IO.
> >>>>>From your experience with iet, do you think a read or write will be
> >>>>>different for tape or disk when using the interface we are using?
> >>>>>
> >>>>
> >>>>Oh yeah, I had looked at scst's dev_handlers for an example. I think
> >>>>mostly only the error hanlding will be a problem.
> >>>
> >>>
> >>>yes, that is quite different.
> >>>
> >>
> >>So I guess we will need something. Originally the vsd and sd names came
> >>about becuase we were only doing SCSI and vsd was a virtual scsi disk
> >>and sd was a scsi disk passthrough type of device. They basically
> >>emulated SCSI's ULDs for tape, cd, disk but they also performed
> >>different types of IO, passthrough vs generic_file_readv/writev.
> >>Eventually we pushed the SCSI stuff to the protocol handlers and the
> >>devices became what they are today. Maybe io_handlers or io_type is a
> >>better name?
> >>
> >>Then to suport scsi tape, cd, etc we can add that code to the scsi
> >>protocol and have something simialr to the SCSI-ml ULDs.
> >
> >
> > iet currently have target type and io type. target_disk is a target type
> > and fileio is a io type. so current vsd looks more like a io_handlers as
> > u said.
> >
> > in fact, i do not think target type is ok since it is quite possible
> > that 1 target has several lu while some of them are disk and others are
> > cdrom or tape. so LU type is better here. base on scsi spec, it is the
> > device server to decide what action it performs.
> >
> > so it would be nice that tgt define a clear line between target mode
> > common and device specific; each lu has its own device server. device
> > server process most of the function in user space, and r/w use certain
> > io handler.
> >
>
> So for tgt we will end up having:
>
> - target_type (this is just the low level target driver like IET or
> qla2xxx, emulex, vscsi etc).
> - device_type (at the moment this just handles low level IO details but
> will end up handling some device specifics like if the device is a tape,
> disk, etc (some of this code is just stuck in tgt_scsi right now since
> we only support disks, but the scsi specifics will be seperated out
> similar to the SCSI-ml ULDs) and we will move the low level IO details
> to a new struct)
> - io_handler (this will handle the lower level destination IO details
> like if it is uses blk_execute_rq_nowait, sendfile or generic_file_*, etc).
>
> And sometihng similar will be needed in userspace.
>
>
fully agree. ;)
Ming
More information about the stgt
mailing list