[openib-general] problem with 2.6.19?

Steve Wise swise at opengridcomputing.com
Fri Oct 27 11:10:01 PDT 2006


On Fri, 2006-10-27 at 11:02 -0700, Roland Dreier wrote:
>  > So the issue is my maps are getting setup with bounce bufs.  This
>  > shouldn't be the case, I think, because my device supports 64b
>  > addressing.  I'm diggin' into this.  
> 
> Yes, it's a little strange that you're still bouncing with the
> pci_set_dma_mask(DMA_64BIT_MASK).  But the bounce buffering should
> work -- the fact that it doesn't means you have a bug in how you're
> using dma_map_single(), because dma_unmap_single() will copy things
> back from the bounce buffer.
> 
> So you have two issues:
>  - why is the bounce buffering happening?
>  - what's wrong with your dma mapping calls?  (Because there are other
>    situations with an IOMMU where you have to get things right)
> 
>  - R.

I must be misusing dma_map_single().  What I'm doing is allocating a
verb message reply queue for the adapter to DMA verb replies into.  It
never gets unmapped. I kmalloc() it, then map it.  I could use
dma_alloc_coherent() or something, and maybe that's what I need to do?  

You're saying I must unmap it before the data is valid (cuz of the
bounce buffering).  If that's true, then how in sam hill does user mode
RDMA work since the user's memory isn't unmapped before the user looks
like memory that is the target of RDMA????  The uverbs code calls
dma_map_sg() which is roughly the same as dma_map_single, eh?

Slightly confused...

Steve.







More information about the general mailing list