All, The hardware design for which I am writing a Linux driver includes
XAUI, DDR3 and is attached via a x8 PCI Express link. All this amounts to
significantly high link bandwidths and I am worried about the ability of my
driver and the OS to keep pace if I use the traditional methods of copying data
from user-space to kernel-space and then setting it up for DMA. I have not ever used the direct I/O APIs. I understand these
enable mapping user buffers to kernel address space ( get_user_pages() ) and
the reverse – mapping kernel buffers to user address space ( mmap() ). However,
I find the explanation in Rubini hard to follow, (especially for mmap()), and
the sample drivers are slightly better. Looking for some advice on what are the robust, standard
zero-copy options in Linux 2.6. Where can I get access to a good explanation of
the steps to follow. I notice that even the Documentation folder does not have
anything. Very appreciative of any suggestions. Regards, - priya This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately. |