I am using free5gc-compose.https://github.com/free5gc/free5gc-compose
The version of free5gc is v3.0.6 and the version of gtp5g is v0.4.0.
On the performance measurement test , when I placed the load on host PC or generate a lot of traffic, the host pc often goes down.
As you can see in the kernel log I attached below, there are some errors related to gtp5g kernel module.
I checked the issue which you mentioned. I’m afraid but I think it may be not same issue.
This issue said that “The kernel is crashed by the zero-divide.”, but this time, it’s probably in kfree_skb.
I attached additional error log which showed before log.txt.
I’m using gtp5g v0.4.0.
As a supplement information, I tried to use gtp5g v0.4.1, but upf couldn’t transport packet normally when I used. So I didn’t upgrade it.
Thank you for your advice. I tried to increase the udp buffer size from 212992 as default to 26214400.
Before changing, when I executed the following command from UE without executing iperf -s -u on the server, the kernel crash was happened as soon as it was executed. iperf -c 10.100.203.22 -u -B 60.60.0.1 -l 1470 -b 1000M
After changing the udp buffer, it didn’t be happened immediately. (I will try whether it is happend when I send larger amount of traffic.)
Thank you for your help.
I have a question about this solution.
Could you tell me why you find the failure of ip_local_out, and why this failure cause the kernel crash?
I think changing the udp buffer might be good way to avoid the kernel crash, but I wonder that it is not a fundamental solution.
So I would like to report this for gtp5g issue.
Actually the first line of the error message is just a warning. The second line is the beginning of the actual error, and it says: ip_xmit: Failed to send skb to ip layer which is triggered when ip_local_out(dev_net(gtp_dev), sk, skb) < 0 is true. ip_local_out is a function of the kernel networking code ip_output.c - net/ipv4/ip_output.c - Linux source code (v5.15.11) - Bootlin that handles sockets and socket buffers to send traffic out. This is when one might think that probably we may have a buffering issue. You can take a look to this UDP Tuning to maximise performance – The Linux Cluster which describes some other things that you can do to improve the performance of your system.
Bests,