[openib-general] ISER cleanup
Christoph Hellwig
hch at lst.de
Tue Aug 23 09:24:06 PDT 2005
On Tue, Aug 23, 2005 at 07:11:18PM +0300, Dan Bar Dov wrote:
> > iser_api.h
> > Should iSCSI be providiing the jump table definitions?
> > struct iser_api_t
> > struct iser_api_cb_t
> >
> > iser_ext_api.h
> > typedef void * iser_conn_request_t;
> > Delete stuff like this - it just obscures what is going on.
> OK
>
> >
> > I'm not sure what this file is doing.
> > I was expecting iSCSI framework to define the data structures
> > it needs to talk to a service provider.
> This is an "extended API". The ISER spec defines an ISER API, but it does not consider implementation.
> We chose to implement the extra api out of the iser_api structute and in the iser_ext_api struct.
> iSCSI is still not part of the kernel so we had first modified and added the datamover framework to
> linux-iscsi and now to open-iscsi. Once open-iscsi is in the kernel we'll use it as the framework.
Note that we care very little about specifications for in-kernel APIs.
so the distinction between a standard API and extension make little
sense, in the end we'll probably only have more or less non-standard
APIs.
> > iser_types.h
> > delete typdef void * iser_api_handle_t.
> > replace usage of iser_api_handle_t with "void *".
> > Ditto for all "void *" typedefs in that file.
> OK
>
> >
> > Kernel already defines scatter-gather lists type.
> The iser_data_buf struct can point to a scatterlist array but can also be used to point at a single buffer.
> It does not replicate scatterlist but allows us to deal with two types of registrations - single buffer and scatter lists.
We're planning to get rid of non-S/G list data transfer in the scsi
subsystem for 2.6.14+. See the tree at
http://www.kernel.org/git/gitweb.cgi?p=linux/kernel/git/jejb/scsi-block-2.6.git;a=summary
in there everything but the sg,st and osst drivers doesn't submit
non-S/G requests anymore, and these last drivers is beeing worked on
already.
> > > There are many other things to be done, including both coding style
> > > and substance, we'll proceed addressing all the technical
> > issues that
> > > were commented on.
> >
> > great!
> We are going to simplify the local memory registrations by registering all memory like in the SRP driver.
> We do not understand some of the substance issues - for example, dma related comments - are taken care of by iscsi,
> not the transport. The io_mmu comment, we completely do not understand - there was some platform specific code, but its all gone now.
Basically all use of virt_to_{phys,bus} / {phys,bus}_to_virt is wrong.
You must use proper dma mapping routines. See Documentation/DMA-API.txt
in the kernel tree for details.
More information about the general
mailing list