Hello,
I am working on optimization of network drivers, and on profiling realized that many cpu cycles are being taken by linux SKB alloc and free functions. I have done some research on SKB recycler and found there is one available -
http://lwn.net/Articles/332037/ and found to be helping (achieve great CPU savings). But this SKB recycler uses per-CPU skb lists , so all its benefit goes away if I use SMP.
I have 2 network interfaces (say eth0, eth1) and a dual-CPU processor system, and for best performance, I use linux smp irq affinity (eth0 -> 1, eth1 ->2) to split the network load between the 2 processors. So in a unidirectional traffic case (eth0 -> eth1), all skb allocations are happening on CPU0 and all skb frees happen on CPU1, rendering SKB recycler non-beneficial.
Is there any implementation of SKB recycler for SMP?
Thanks
Vijay