Linux Zero Copy

У меня есть устройство PCI, которое нужно читать и писать из пространства пользователя. Я пытаюсь использовать нулевую копию; Есть ли способ распределить, закрепить и получить физический адрес адреса пользовательского пространства полностью внутри пользовательского пространства, или мне нужен модуль ядра, который, скажем, вызывает virt_to_phys или get_user_pages? Память устройства отображается в пользовательской памяти через MMIO, поэтому я могу передать ей любые необходимые данные. Благодарю.

2 ответа

Решение

Это был полный взлом, но я ограничил Linux диапазоном памяти и использовал MMIO для выделения памяти для моего устройства, о котором ядро ​​не подозревало.

По сути, вам нужна память для поддержки DMA, и, насколько я знаю, это может сделать только модуль ядра. См. http://lxr.free-electrons.com/source/Documentation/PCI/PCI-DMA-mapping.txt

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