最近我一个项目涉及这个平台的内核开发。内核有两个线程,使用 wait_event 进行通讯,有大约万分之一的概率,事件发送方设置事件后,接收方获取不到状态。
类似这个问题: https://stackoverflow.com/questions/23262893/wait-event-timeout-exits-on-timeout-with-condition-set
如果我把两个线程绑定到同一个 CPU 核心上,问题就消失了。
之前我搞这个平台的 AMP 架构的时候,也出现过裸机核心与 Linux 核心缓存不一致的问题。