Sample Header Ad - 728x90

Why are packets being dropped (kfree_skb)?

0 votes
0 answers
818 views
I am currently sending ~9mpps, each packet is 72bytes large, and is a UDP DNS request. The packets are being sent to a Dell server I have using an intel i40e interface. The server is using all of its 32 queues and has a queue size of 4096 per queue. All client source packets have random source MAC addresses and random IP addresses in a pool of about 150. Note, that none of the network cards show dropped / discarded packets. I can see all the unicast traffic is arriving to the interface ethtool -S shows rx_unicast at ~9mpps. However rx_packets shows 1.7mpps. The egress interface shows the same amount of packets being processed and sent out the other interface I am forwarding through. Note the far end IP the generated traffic arrives at is just a L3 interface, there are no DNS services listening on it, so the packets are dropped on the far end (this is ok). When I use dropwatch I can see the following messages:
224021 drops at kfree_skb+1e (0xffffffffa33f5cbe) [software]
235277 drops at kfree_skb+1e (0xffffffffa33f5cbe) [software]
232467 drops at kfree_skb+1e (0xffffffffa33f5cbe) [software]
227083 drops at kfree_skb+1e (0xffffffffa33f5cbe) [software]
228235 drops at kfree_skb+1e (0xffffffffa33f5cbe) [software]
227216 drops at kfree_skb+1e (0xffffffffa33f5cbe) [software]
221967 drops at kfree_skb+1e (0xffffffffa33f5cbe) [software]
225418 drops at kfree_skb+1e (0xffffffffa33f5cbe) [software]
I tried looking up what 0xffffffffa33f5cbe is in /boot/System.map-$(uname -r) but nothing is listed. I tried looking up what kfree_skb does, but this it frees the sk_buff memory. (not very helpful) I believe this maybe a limitation of the kernel (forwarding, netfilter, etc.), or CPU being able to process so much traffic, however I would like to know why / and demonstrate the reason why packets are being dropped in the Kernel. How can I determine why all traffic is not being sent? **UPDATE** I was able to remove the following modules
nf_conntrack
ip_tables
iptables_filter
x_tables
This increased the speed to processing more, I can see now I am able to send ~4.5mpps, it seems that netfilter is the bottle neck. Will work more with removing other modules. Curious if anyone else have details on why this happens?
Asked by Dave (700 rep)
May 4, 2022, 08:10 PM
Last activity: May 4, 2022, 10:54 PM