search for: dma_load_acquir

Displaying 4 results from an estimated 4 matches for "dma_load_acquir".

Did you mean: dma_load_acquire
2015 Dec 17
1
[PATCH] virtio_ring: use smp_store_mb
...use for non-coherent DMA buffers) is outer-shareable. Since the barrier macros don't know if the device is coherent or not, we use the stronger semantics of outer-shareable. I've not been following the thread, but I reckon we could add dma_mb() (as dmb(osh) on arm), then use that to build dma_load_acquire and dma_store_release accessors. On arm64, we could probably use the acquire/release instructions directly, since they inherit the shareability domain of the address (which has the nice property of being inner-shareable for coherent devices). The massive pain with adding new accessors is defining...
2015 Dec 17
1
[PATCH] virtio_ring: use smp_store_mb
...use for non-coherent DMA buffers) is outer-shareable. Since the barrier macros don't know if the device is coherent or not, we use the stronger semantics of outer-shareable. I've not been following the thread, but I reckon we could add dma_mb() (as dmb(osh) on arm), then use that to build dma_load_acquire and dma_store_release accessors. On arm64, we could probably use the acquire/release instructions directly, since they inherit the shareability domain of the address (which has the nice property of being inner-shareable for coherent devices). The massive pain with adding new accessors is defining...
2015 Dec 17
2
[PATCH] virtio_ring: use smp_store_mb
On Thu, Dec 17, 2015 at 03:02:12PM +0100, Peter Zijlstra wrote: > On Thu, Dec 17, 2015 at 03:26:29PM +0200, Michael S. Tsirkin wrote: > > > Note that virtio_mb() is weirdly inconsistent with virtio_[rw]mb() in > > > that they use dma_* ops for weak_barriers, while virtio_mb() uses > > > smp_mb(). > > > > It's a hack really. I think I'll clean it
2015 Dec 17
2
[PATCH] virtio_ring: use smp_store_mb
On Thu, Dec 17, 2015 at 03:02:12PM +0100, Peter Zijlstra wrote: > On Thu, Dec 17, 2015 at 03:26:29PM +0200, Michael S. Tsirkin wrote: > > > Note that virtio_mb() is weirdly inconsistent with virtio_[rw]mb() in > > > that they use dma_* ops for weak_barriers, while virtio_mb() uses > > > smp_mb(). > > > > It's a hack really. I think I'll clean it