]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'icmp-reply-optimize'
authorDavid S. Miller <davem@davemloft.net>
Mon, 9 Jan 2017 20:49:13 +0000 (15:49 -0500)
committerDavid S. Miller <davem@davemloft.net>
Mon, 9 Jan 2017 20:49:13 +0000 (15:49 -0500)
commit2ce0ccc6d62d809c0135a247472daaf0fe09381a
tree23bd866126b5115cf4a14541f7700117a38efc29
parent2d94a0bbe0196dd3740fdecdbd57fe43d8407ab7
parent4d463bd75a825cb587a482df9c28c772f8b8f4ce
Merge branch 'icmp-reply-optimize'

Jesper Dangaard Brouer says:

====================
net: optimize ICMP-reply code path

This patchset is optimizing the ICMP-reply code path, for ICMP packets
that gets rate limited. A remote party can easily trigger this code
path by sending packets to port number with no listening service.

Generally the patchset moves the sysctl_icmp_msgs_per_sec ratelimit
checking to earlier in the code path and removes an allocation.

Use-case: The specific case I experienced this being a bottleneck is,
sending UDP packets to a port with no listener, which obviously result
in kernel replying with ICMP Destination Unreachable (type:3), Port
Unreachable (code:3), which cause the bottleneck.

 After Eric and Paolo optimized the UDP socket code, the kernels PPS
processing capabilities is lower for no-listen ports, than normal UDP
sockets.  This is bad for capacity planning when restarting a service.

UDP no-listen benchmark 8xCPUs using pktgen_sample04_many_flows.sh:
 Baseline: 6.6 Mpps
 Patch:   14.7 Mpps
Driver mlx5 at 50Gbit/s.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>