Я работаю над повышением пропускной способности передач DMA в моем собственном драйвере ядра от FPGA. Текущая пропускная способность ~ 250 Мб / с.
Архитектура выглядит следующим образом:
- ПЛИС, подключенная через P CIe
- Я выделяю большой буфер в ОЗУ, используя согласованное отображение с
dma_alloc_coherent
когда probe
вызывается - ПЛИС постоянно передает данные через DMA.
- ПЛИС вызывает int, когда DMA готов, а затем из обработчика прерываний я копирую данные из пространство памяти, отображаемое из регистра
BAR
в мой согласованно выделенный буфер с использованием device_prep_dma_memcpy
.
Есть ли способ избежать этого memcpy
из device_prep_dma_memcpy
и сказать DMA для копирования данных непосредственно в мой согласованный выделенный буфер?