[openib-general] ISER cleanup
Grant Grundler
iod00d at hp.com
Tue Aug 23 11:17:54 PDT 2005
On Tue, Aug 23, 2005 at 07:11:18PM +0300, Dan Bar Dov wrote:
> Some of the comments were taken care of in today's commits
> iovecs removed
> procfs removed
> Function entry/exit traces removed
> Unnecessary files removed:
> kernel_dep.h
> iser_bhs.h
> iser_trace.c
ok - thanks
> All DAT 1.2 comments removed.
> Actually the current code is not DAT 1.2 compatible,
> but the openIB flavor compatible.
Certianly. It would be good if the code contained a reference
to it's origin. It's obvious to those who read this email thread
or folks looking at svn.openib.org. But it won't be once the
code gets into
> Since work started on a CM abstraction, I expect ISER to get
> off of kdapl and onto ib-verbs + CM abstraction.
Understood. I lobbied heavily yesterday at the conference to remove
elements from kapld with similar functionality to openib verbs
and create a "rdma_cm" module with the leftovers.
> > 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 structure and in the iser_ext_api struct.
ok
> 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.
ok - I'm not following that developement and trust some of the
other folks who are.
...
> 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.
What Christoph said. ULPs are responsible for mapping the buffer virtual
address to a "DMA address". The right kernel interface depends on
the kernel version:
2.2 virt_to_phys, phys_to_virt
no IOMMU support.
2.4 pci_map_single, pci_map_sg, pci_unmap_*, et al.
See Documentation/DMA-mapping.txt.
Only defined to support "PCI-like" busses/devices.
2.6 dma_map_single, dma_map_sg, et al.
See Documentation/DMA-API.txt
Supports IOMMU, multiple bus types, and
non-coherent IO (ie CPU caches not coherent w/DMA).
amd64, IA64, PPC, parisc, alpha, and sparc all have HW with IOMMU.
You need to use 2.6 DMA support in iSER driver.
See the following for examples of correct usage:
.../openib_gen2/src/linux-kernel/infiniband/ulp$ fgrep -l -e dma_map -e dma_unmap */*c
ipoib/ipoib_ib.c
sdp/sdp_buff.c
sdp/sdp_rcvd.c
sdp/sdp_recv.c
sdp/sdp_send.c
sdp/sdp_sent.c
srp/ib_srp.c
> BTW the code is now down to 7K LOC + 2K LOC of heavily commented header files.
getting there...good work!
hth,
grant
More information about the general
mailing list