[openib-general] problem with 2.6.19?

Roland Dreier rdreier at cisco.com
Sat Oct 28 13:10:54 PDT 2006


 > You can also use the sync_{single|sg}_for_{device|cpu} calls to manually sync
 > the buffers (this will cause a memcpy for swiotlb).

True, although in this case it's much simpler just to use coherent
memory.  Also, the dma_sync_xxx calls don't _always_ work -- for
example if both the CPU and the device need to touch different parts
of a cacheline at the same time on a non-coherent architecture.

 > Could you elaborate, what are the "requirements" for this to work with
 > an arbitrary IOMMU (e.g., Calgary) than requires a mapping to exist
 > before a DMA operation can go through?

Calgary should be fine, since pseries works Ok.  I guess the
requirement for userspace RDMA to work is that no further action is
required after the dma_map_sg() for both the device and the CPU to
touch the region.  Because userspace has no way for calling
dma_sync_xxx or anything like that.

 - R.




More information about the general mailing list