Использование передачи памяти DMA в пространстве пользователя

Существует ли механизм копирования в память DMA linux, доступный для пространства пользователя?

У меня есть приложение linux, которое обычно (50-100 раз в секунду) должно записать несколько мегабайт (10+) данных. Часто это не проблема, но мы начали видеть доказательства того, что он может потреблять слишком много пропускной способности нашего процессора. Текущие измерения показывают, что это примерно 1 Гбайт / с, с которой мы движемся.

Мне известно о возможности dma в ядре, и я вижу небольшую документацию, рассказывающую о создании пользовательских драйверов для больших копий памяти, именно по этой причине ... Но, похоже, кто-то уже создал бы общий API для этого. Я ошибаюсь? Является ли DMA функцией только для ядра?

Я должен уточнить, что это для архитектуры Intel X86, а не встроенный.

Ответы на вопрос(2)

Ваш ответ на вопрос