Skip to contentSkip to conversation

allow drivers to flush in-flight DMA v2

PATCH In review [email protected] 3 participants 4 messages Sep 28, 2007 – Oct 3, 2007

lore
Share & tools
lore
#0 lore raw

cover allow drivers to flush in-flight DMA v2

On Altix, DMA may be reordered between a device and host memory. This reordering can happen in the NUMA interconnect, and it usually results in correct operation and improved performance. In some situations it may be necessary to explicitly synchronize DMA from the device.

This patchset allows a memory region to be mapped with a "dmabarrier". Writes to the memory region will cause in-flight DMA to be flushed, providing a mechanism to order DMA from a device.

There are 4 patches in this patchset:

[1/4] dma: add dma_flags_set_dmabarrier() to dma interface [2/4] dma: redefine dma_flags_set_dmabarrier() for sn-ia64 [3/4] dma: document dma_flags_set_dmabarrier()
[4/4] mthca: allow setting "dmabarrier" on user-allocated memory

Signature · 1 line
Arthur
#1 lore raw

From: [email protected]
Date: Thu, 27 Sep 2007 18:09:26 -0700

Quoted 10 lines

On Altix, DMA may be reordered between a device and host memory. This reordering can happen in the NUMA interconnect, and it usually results in correct operation and improved performance. In some situations it may be necessary to explicitly synchronize DMA from the device.

This patchset allows a memory region to be mapped with a "dmabarrier". Writes to the memory region will cause in-flight DMA to be flushed, providing a mechanism to order DMA from a device.

My only beef with this patch set is that it seems a bit much to create a totally new function name every time we want to set some kind of new attribute on some DMA object. Why not add a "dma_set_flags()" or similar that can be used later on to set other kinds of aspects we'd like to change?

You can make the arguments "u32 flags" and "int dir". Actually you should probably use the dma direction enumaration instead of 'int'.

#2 lore raw
Quoted 11 lines · David Miller

....
My only beef with this patch set is that it seems a bit much to create a totally new function name every time we want to set some kind of new attribute on some DMA object. Why not add a "dma_set_flags()" or similar that can be used later on to set other kinds of aspects we'd like to change?

You can make the arguments "u32 flags" and "int dir". Actually you should probably use the dma direction enumaration instead of 'int'.

OK, this will be in the next version along with the coding style changes you mentioned.

Signature · 1 line
Arthur
#3 lore raw
Quoted 9 lines · On Tuesday, October 2, 2007 6:04 pm [email protected] wrote:
Quoted 8 lines · David Miller

....
My only beef with this patch set is that it seems a bit much to create a totally new function name every time we want to set some kind of new attribute on some DMA object. Why not add a "dma_set_flags()" or similar that can be used later on to set other kinds of aspects we'd like to change?

Quoted 6 lines
Quoted 3 lines

You can make the arguments "u32 flags" and "int dir". Actually you should probably use the dma direction enumaration instead of 'int'.

OK, this will be in the next version along with the coding style changes you mentioned.

I can't find it now, but IIRC Dave, you vehemently opposed adding a flags argument awhile back (~2000), so SGI has been reluctant to push it again. :)

Glad you're finally coming around, I think a flags argument makes sense, as long as we're careful about adding new ones.

Jesse