Thread (5 messages) 5 messages, 3 authors, 2011-05-24

Re: PCI DMA to user mem on mpc83xx

From: Ira W. Snyder <hidden>
Date: 2011-05-23 17:27:31

On Mon, May 23, 2011 at 11:12:41AM +0200, Andre Schwarz wrote:
Ira,

we have a pretty old PCI device driver here that needs some basic rework 
running on 2.6.27 on several MPC83xx.
It's a simple char-device with "give me some data" implemented using 
read() resulting in zero-copy DMA to user mem.

There's get_user_pages() working under the hood along with 
SetPageDirty() and page_cache_release().

Main goal is to prepare a sg-list that gets fed into a DMA controller.

I wonder if there's a more up-to-date/efficient and future proof scheme 
of creating the mapping.


Could you provide some pointers or would you stick to the current scheme ?
This scheme is the best you'll come up with for zero-copy IO. I used
get_user_pages_fast(), but otherwise my implementation was the same.
These interfaces should be fairly future proof.

In the end, I realized that most of my transfers were 4 bytes in length,
and zero copy IO was a waste of effort. I decided to use mmap instead.

Ira
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help