Verwenden der DMA-Speicherübertragung im User-Space

Gibt es einen Linux-DMA-Mem-to-Mem-Kopiermechanismus für Benutzer?

Ich habe eine Linux-Anwendung, die routinemäßig (50-100 Mal pro Sekunde) mehrere Megabyte (10+) Daten speichern muss. Oft ist dies kein Problem, aber es gibt Hinweise darauf, dass möglicherweise zu viel CPU-Bandbreite verbraucht wird. Aktuelle Messungen haben eine Geschwindigkeit von etwa 1 GByte / s, in der wir uns bewegen.

Ich bin mir der DMA-Fähigkeit im Kernel bewusst, und ich sehe ein bisschen Dokumentation, in der es darum geht, benutzerdefinierte Treiber für große Speicherkopien zu erstellen. Aber es scheint, dass jemand inzwischen eine generische API dafür erstellt hat. Liege ich falsch? Ist DMA eine reine Kernelfunktion?

Ich sollte klarstellen, dass dies für die Intel X86-Architektur nicht eingebettet ist.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage