Uso de transferencia de memoria DMA en espacio de usuario

¿Existe un mecanismo de copia mem-to-mem de Linux DMA disponible para el espacio de usuario?

Tengo una aplicación de Linux que rutinariamente (50-100 veces por segundo) tiene que almacenar varios megas (más de 10) de datos. A menudo no es un problema, pero hemos comenzado a ver evidencia de que puede estar consumiendo demasiado ancho de banda de nuestra CPU. Las mediciones actuales lo sitúan en algo así como 1Gbytes / s por los que nos estamos moviendo.

Soy consciente de la capacidad de dma en el kernel, y veo un poco de documentación que habla sobre la construcción de controladores personalizados para copias de memoria grandes, por esta misma razón ... Pero parece que alguien ya habría creado una API genérica para esto. ¿Me equivoco? ¿Es DMA una característica exclusiva del kernel?

Debo aclarar, esto es para la arquitectura Intel X86, no integrada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta