Comunicación entre hilos del kernel en Linux
-
22-07-2019 - |
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.
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.