From: Paolo Abeni <pab...@redhat.com> Date: Mon, 29 May 2017 17:27:22 +0200
> In the most common use case, many skb fields are not used by recvmsg(), and > the few ones actually accessed lays on cold cachelines, which leads to several > cache miss per packet. > > This patch series attempts to reduce such misses with different strategies: > * caching the interesting fields in the scratched space > * avoid accessing at all uninteresting fields > * prefetching > > Tested using the udp_sink program by Jesper[1] as the receiver, an h/w l4 rx > hash on the ingress nic, so that the number of ingress nic rx queues hit by > the > udp traffic could be controlled via ethtool -L. > > The udp_sink program was bound to the first idle cpu, to get more > stable numbers. > > On a single numa node receiver: > > nic rx queues vanilla patched kernel delta > 1 1850 kpps 1850 kpps 0% > 2 2370 kpps 2700 kpps 13.9% > 16 2000 kpps 2220 kpps 11% > > [1] https://github.com/netoptimizer/network-testing/blob/master/src/udp_sink.c Eric can you give this a quick review when you get a chance? Thanks.