Domanda

Sto eseguendo il porting di un driver app / PCI da vxWorks a Linux e, se possibile, vorrei mantenere la stessa architettura. Il driver corrente ha 2 attività (thread) che comunicano tra loro utilizzando le code dei messaggi. Esiste un meccanismo per comunicare tra i thread del kernel? Le code dei messaggi vengono utilizzate per trasferire gli indirizzi del buffer e le informazioni sulla dimensione in modo che le attività possano utilizzare DMA per spostare grandi quantità di dati.

È stato utile?

Soluzione

Consiglio vivamente di non mantenere l'architettura VxWorks su Linux. La proliferazione del thread del kernel è disapprovata, il tuo codice non lo trasformerà mai nell'albero del kernel ufficiale. Anche se non ti interessa, sei sicuro al 100% di voler sviluppare un driver in modo non standard? Le cose sarebbero molto più semplici se ti sbarazzassi di questi due compiti. A proposito, perché mai hai bisogno di compiti per il driver PCI per iniziare?

Altri suggerimenti

Sembra che l'interfaccia workqueue potrebbe essere ciò che stai cercando - o per qualcosa di più leggero, un kfifo combinato con un rwsem semaforo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top