Linux의 커널 스레드 간의 통신
-
22-07-2019 - |
문제
VXWorks에서 Linux로 앱/PCI 드라이버를 포팅하고 있으며 가능하면 동일한 아키텍처를 유지하고 싶습니다. 현재 드라이버에는 메시지 큐를 사용하여 서로 통신하는 2 개의 작업 (스레드)이 있습니다. 커널 스레드간에 통신 할 메커니즘이 있습니까? 메시지 대기열은 버퍼 주소와 크기 정보를 전달하는 데 사용되므로 작업이 DMA를 사용하여 대량의 데이터를 이동할 수 있습니다.
해결책
VXWorks 아키텍처를 Linux에 유지하는 것에 대해 강력히 조언합니다. 커널 스레드 확산은 눈살을 찌푸리며 코드는 공식 커널 트리로 만들지 않습니다. 당신이 그것에 관심이 없더라도, 당신은 비표준에서 운전자를 개발하고 싶다고 100% 확신합니까? 이 두 작업을 제거하면 상황이 훨씬 간단 할 것입니다. BTW, 왜 지구상에서 PCI 드라이버를 위해 작업이 필요한 이유는 무엇입니까?
다른 팁
그것은처럼 들린다 workqueue
인터페이스는 당신이 후에 또는 더 가벼운 웨이트를 위해 kfifo
a rwsem
신호기.
제휴하지 않습니다 StackOverflow