我在以(相对)高数据速率运行的 Raspberry Pi 上的 USB 转串行适配器上遇到一些数据丢失。我相信大部分工作是由内核线程执行的:
2569 root 20 0 0 0 0 S 1.7 0.0 0:05.41 kworker/u8:0
2360 root 20 0 0 0 0 R 1.0 0.0 0:12.47 kworker/u8:2
我注意到它们会定期重新创建(它们的 PID 不断变化)。有什么方法可以让它们一直运行,和/或阻止它们迁移到不同的 CPU?
我尝试设置smp_affinity_list
,但这在 Raspberry Pi 上似乎不可能:
$ echo 0 > /proc/irq/62/smp_affinity_list
-ash: write error: Input/output error
这内核调试故事听起来与我所经历的非常相似,但我似乎无法应用任何建议的选项。