Estou passando por alguma perda de dados em um adaptador USB para serial em um Raspberry Pi rodando a uma taxa de dados (relativamente) alta. Acredito que a maior parte do trabalho é realizada por tópicos do kernel:
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
Eu noto que eles são recriados periodicamente (seus PIDs continuam mudando). Existe alguma maneira de mantê-los funcionando o tempo todo e / ou impedir que eles migrem para uma CPU diferente?
Eu tentei definir smp_affinity_list
, mas isso parece impossível em um Raspberry Pi:
$ echo 0 > /proc/irq/62/smp_affinity_list
-ash: write error: Input/output error
Esta História de Depuração do Kernel parece bastante semelhante à que eu estou experimentando, mas não consigo aplicar nenhuma das opções sugeridas.
Tags usb linux-kernel irq scheduling