Die Kommunikation zwischen Kernel-Threads in Linux
-
22-07-2019 - |
Frage
Ich bin Portierung eine App / PCI-Treiber von VxWorks auf Linux, und ich möchte die gleiche Architektur halten, wenn möglich. Der Stromtreiber hat 2-Aufgaben (threads), die miteinander unter Verwendung von Nachrichtenwarteschlangen kommunizieren. Gibt es einen Mechanismus zwischen Kernel-Threads zu kommunizieren? Die Nachrichtenwarteschlangen verwendet werden Pufferadressen und Größeninfo übergeben, damit die Aufgaben DMA verwenden können große Datenmengen zu bewegen.
Lösung
Ich würde dringend davon abraten, die VxWorks-Architektur unter Linux zu halten. Kernel-Thread-Proliferation ist verpönt, Ihr Code wird es nie offiziellen Kernel Baum macht in. Auch wenn Sie, dass sie sich nicht, sind Sie 100% sicher, dass Sie einen Treiber in einem Nicht-Standard-Weise entwickeln wollen? Dinge wäre viel einfacher, wenn Sie nur loswerden dieser beiden Aufgaben bekommen würde. BTW, warum auf der Erde benötigen Sie Aufgaben für PCI-Treiber zu beginnen?
Andere Tipps
Es klingt wie die workqueue
Schnittstelle sein könnte, was Sie nach -. Oder für etwas leichtere, ein kfifo
mit einem rwsem
Semaphore kombiniert