Pregunta

Estoy transfiriendo una aplicación / controlador PCI de vxWorks a Linux y me gustaría mantener la misma arquitectura si es posible. El controlador actual tiene 2 tareas (hilos) que se comunican entre sí mediante colas de mensajes. ¿Existe un mecanismo para comunicarse entre hilos del núcleo? Las colas de mensajes se utilizan para pasar direcciones de búfer e información de tamaño para que las tareas puedan usar DMA para mover grandes cantidades de datos.

¿Fue útil?

Solución

Recomiendo encarecidamente no mantener la arquitectura VxWorks en Linux. La proliferación de hilos del núcleo está mal vista, su código nunca llegará al árbol oficial del núcleo. Incluso si no le importa eso, ¿está 100% seguro de que desea desarrollar un controlador de una manera no estándar? Las cosas serían mucho más simples si simplemente te deshaces de estas dos tareas. Por cierto, ¿por qué necesita tareas para el controlador PCI para empezar?

Otros consejos

Parece que la interfaz workqueue podría ser lo que buscas, o para algo más liviano, un kfifo combinado con un rwsem semáforo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top