Welcome! Log In Create A New Profile


Can PCIe device driver support to read a particlualr buffer in the device with mutiple buffers?

Posted by Cheng Wang 
Hello everyone!

My question is about the development of PCIe device driver. I have a special-purpose card that has a fixed number (say,

six) of buffers. There are six application processes on the host that need to process the data in their respective buffer.

A simple approach is to use a dispatching process to call the APIs for the device and dispatch the data from the 6 buffers on the card

to the 6 processes' respective memory space on the host, but this will increase the number of memory-copy operation. For

example, the data is first read from the card buffers into the driver's kernel space, and then the data in the kernel space

is copied to the memory of the dispatching process., then the process copies the data to the respective user memory spaces

of the 6 application processes.

My thought is that if the device driver can read a particular buffer which is indicated by a parameter, for example each of

the 6 application processes perform read(device handler, buffer ID, target address, number of bytes to read, ...) , in this

way, each application process reads data into the memory space of the respective process. This can reduce one memory-copy

operation. This is meaningful especially when the data volume is large, as my application requires very low latency.

My question is whether Linux driver can supports additional parameters, such as the buffer ID, this ID determines which

buffer the driver wants to read.

Any response will be highly appreciated

I am glad to see this brilliant post, all the details are very helpful and useful for us, keep up to good work.
cool math games

Your Email:


Spam prevention:
Please, solve the mathematical question and enter the answer in the input field below. This is for blocking bots that try to post this form automatically.
Question: how much is 12 plus 4?