Skip to content

FAQ & Troubleshooting

James Bensley edited this page Apr 9, 2018 · 4 revisions

Socket is stalling!

The following error message is seen when the Kernel reports ENOBUFS

[user@ucpe_002 emt]$ sudo taskset -c 3-5 ./etherate_mt -i ens2f0 -c 2 -f 64
Using inteface ens2f0 (12)
Frame size set to 64 bytes 
Using PACKET_MMAP.
Running in Tx mode.
Write buffer size set to 425984 bytes
Write buffer size set to 425984 bytes
0.      0.00 Rx Gbps (0 fps)    0.00 Tx Gbps (0 fps)
1.      0.00 Rx Gbps (0 fps)    1.46 Tx Gbps (2842624 fps)
2.      0.00 Rx Gbps (0 fps)    1.51 Tx Gbps (2957303 fps)
1234:Socket is stalling!

This is because the interface Tx queue is too long (it's not draining quick enough). Check and reduce the interface Tx queue length (assuming the interface name is "ens2f0") with either:

bensley@ubuntu-laptop:~$ ip link show dev ens2f0
2: ens2f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000

bensley@ubuntu-laptop:~$ sudo ip link set txqueuelen 250 dev ens2f0

bensley@ubuntu-laptop:~$ ip link show dev ens2f0
2: ens2f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 250

or

bensley@ubuntu-laptop:~$ ifconfig ens2f0 | grep txqueue
          collisions:0 txqueuelen:1000 

bensley@ubuntu-laptop:~$ sudo ifconfig ens2f0 txqueuelen 250

bensley@ubuntu-laptop:~$ ifconfig ens2f0 | grep txqueue
          collisions:0 txqueuelen:250