A interface da equipe descarta pacotes

A interface da equipe descarta pacotes

Após a atualização do 3.10.104 para o kernel 4.14, vejo quedas constantes (cerca de 10 pacotes/seg) na interface da equipe (TX) no modo de backup ativo, aumentar o txqueuelen em uma porta física ajuda, no entanto, quedas ainda ocorrem de vez em quando.

Aqui está a saída do ifconfig com txqueuelen 0 na eth6

team0      Link encap:Ethernet  HWaddr 00:1E:67:B5:7F:76
      inet addr:192.168.221.203  Bcast:0.0.0.0  Mask:255.255.255.0
      inet6 addr: fe80::21e:67ff:feb5:7f76/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:837 errors:0 dropped:671 overruns:0 frame:0
      TX packets:282219490 errors:0 dropped:169438 overruns:0 carrier:0
      collisions:0 txqueuelen:10000
      RX bytes:27531 (26.8 KiB)  TX bytes:113995992408 (106.1 GiB)

Interface física:

eth6      Link encap:Ethernet  HWaddr 00:1E:67:B5:7F:76  
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:837 errors:0 dropped:0 overruns:0 frame:0
      TX packets:282218759 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:74718 (72.9 KiB)  TX bytes:383252978322 (356.9 GiB)

Para depurar isso, adicionei um printk no driver de equipe onde dev_kfree_skb_any é chamado, no entanto, enquanto o contador descartado aumenta, não vejo mensagens no dmesg até redefinir a interface física pelo ethtool, portanto, os pacotes estão sendo descartados em outro lugar, no entanto, por enquanto, não tenho ideia de como encontrar a causa exata.

Eu também usei um utilitário dropwatch, ele produz muitos resultados mostrando inúmeras quedas, no entanto, gera uma saída semelhante no kernel 3.10, onde nenhuma queda é vista com ifconfig. Presumo que ele registre outra coisa, talvez pacotes de entrada descartados pelo kernel, então informações úteis são perdidas entre eles. Aqui está uma saída do dropwatch no 4.14 classificada por símbolos exclusivos:

__udp4_lib_rcv+6b0 (0xffffffff8155ce77)
ip_forward+98 (0xffffffff81534f88)
kfree_skb_list+13 (0xffffffff814f0d22)
sk_stream_kill_queues+4a (0xffffffff814f68a9)
tcp_v4_do_rcv+154 (0xffffffff815508e9)
tcp_v4_rcv+1de (0xffffffff81552490)
unix_stream_connect+3b4 (0xffffffff81586890)

Você tem alguma idéia/sugestão sobre como depurar isso? Obrigado!

informação relacionada