[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