# Re: \[RFC v2 1/2\] PCI-Express Non-Transparent Bridge Support

- From: Jiang, Dave \<dave.jiang@intel.com\>
- Date: 2012-08-01 02:18:48 
- List: netdev
- Page: https://ratatoskr.run/netdev/2012/08/3901552
- Thread: https://ratatoskr.run/netdev/2012/07/3900288/t.md

```text

On Jul 31, 2012, at 7:10 PM, "Jianbin Kang" [ref] wrote:

>> Actually this is what I'm working on now, using async_tx to replace the
>> memcpy.  I believe the changes shouldn't be that significant.
>> 
>> Is the "hardware that can setup dma" you refer to something that does
>> not use this interface?
>> 
> 
> Yes, they use this interface, but split 'memcpy_toio' to two operation:
>     1. setup dma
>     2. wait/poll for the dma to finish.
> So maybe it need to provide a generic function 'tx' for different hardwares.
> 
It's not worth it to do sync DMA. The performance is terrible. 

> If async_tx is available, it's much better than this 'sync dma/memcpy'.
> One problem with async_tx is, it can't detect memcpy error.
> If the remote ntb goes down when async_memcpy is in operation, async_tx
> will trigger an oops.

Yes that is something that needs to be addressed when we get async DMA support working. 
```
