PCIe DMA с использованием mem=XXX замедление выделения, проблема с кредитом управления потоком

Я пытаюсь DMA из FPGA на хост-ПК (CentOS 6.9, ядро ​​2.6.32) памяти DDR4 с использованием интерфейса обхода дескриптора (без Scatter/Gather) и PCIe 3.0 x8.

Я выделил 240 ГБ ОЗУ, используя параметр загрузки mem=16384 МБ (256 ГБ общего ОЗУ). Я установил адрес DMA на 0x400000000 и увеличил его на размер полезной нагрузки (256 байт) для каждого дескриптора.

То, что я вижу после ~50-60 КБ, значительно замедляет / замедляет передачу из-за отсутствия получения кредита управления потоком. Таким образом, в начале передачи я могу отправлять данные со скоростью 6+ ГБ / с, но через некоторое время они замедляются до 100 МБ / с.

В чем может быть проблема? Это из-за того, что память не была правильно распределена для передачи DMA? Это просто то, что я должен принять во внимание для моего дизайна, добавив троттлинг в моей логике ПЛИС? Это не кажется правильным. Я только пытаюсь передавать 2 ГБ / с непрерывных данных, поэтому я думаю, что достаточно пропускной способности.

0 ответов

Другие вопросы по тегам