Messages in this thread | | | Date | Mon, 19 Nov 2007 10:21:15 +0100 | From | eg.news@free ... | Subject | Huge DMA feasibility with linux 2.6.17 |
| |
Before to post you this request, I have read J BOTTOMLEY documentation (inside kernel doc and linux journal). May be I have not understood but I currently have the following problem.
DESCRIPTION ------------------ On a PC (x86_64 SMP using linux kernel 2.6.17) there is a device dedicated to data acquisition linked via a PCIe bus (using 4 PCIe x4 slots), this device has 2GB of memory.
We need to perform huge DMA transfer (from the device to the PC) using 16 PCIe lanes, on the PC side the resulting buffer can be 480 MB long (each lane transferring 30 MB). Because of ping-pong (2 buffers available for the same acquisition) and multi-modality (several kind of data acquired), the total aperture accessible by DMA can reach 1.6 GB. The datarate has to be greater than 180MB/s per lane ( 2,8 GB/s for the whole device).
To reach that datarate we plan to make the device initiate the transfer and use local Scatter Gather List.
QUESTIONS --------------- At this point we have the following questions Q1: It is possible to get the private usage of these 1.6GB of memory for the DMA (by getting it out of the memory managed by linux)? Q1.1 : If yes what are the ways ? Q1.2 : Is kernel function "init_memory_mapping" a way to get that (according to arch/x86_64/kernel/setup.c:643) ? Q2: Otherwise do we only have to reserve pages in DMA32 zone during the early bootup stage? Q3 : Other solutions?
Any help is welcome
THX Eric Guiffard
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |