I'm experiencing some data loss on a USB-to-serial adapter on a Raspberry Pi running at a (relatively) high data rate. I believe most of the work is carried out by kernel threads:
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
I notice they get periodically re-created (their PID's keep changing). Is there any way to keep them running the whole time, and/or prevent them from migrating to a different CPU?
I tried setting
smp_affinity_list but this seems impossible on a Raspberry Pi:
$ echo 0 > /proc/irq/62/smp_affinity_list -ash: write error: Input/output error
This Kernel Debugging Story sounds quite similar to what I'm experiencing, but I can't seem to apply any of the suggested options.