Después de actualizar de 3.10.104 al kernel 4.14, veo caídas constantes (alrededor de 10 paquetes/seg) en la interfaz del equipo (TX) en modo de copia de seguridad activa; aumentar txqueuelen en un puerto físico ayuda; sin embargo, todavía se producen caídas de vez en cuando.
Aquí está la salida de ifconfig con txqueuelen 0 en 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)
Interfaz 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 esto, agregué un printk en el controlador del equipo donde se llama a dev_kfree_skb_any; sin embargo, mientras aumenta el contador descartado, no veo mensajes en dmesg hasta que restablezca la interfaz física mediante ethtool, por lo tanto, los paquetes se descartan en otro lugar. sin embargo, por ahora no tengo idea de cómo encontrar la causa exacta.
También he usado una utilidad dropwatch, produce una gran cantidad de resultados que muestran numerosas caídas; sin embargo, genera una salida similar en el kernel 3.10, donde no se ven caídas con ifconfig. Supongo que registra algo más, tal vez paquetes de entrada descartados por el kernel, por lo que se pierde información útil entre estos. Aquí hay un resultado de Dropwatch en 4.14 ordenado por símbolos únicos:
__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)
¿Tiene alguna idea/sugerencia sobre cómo depurar esto? ¡Gracias!