Hi, When testing socket splicing throughput I saw unsteady results. Turns out that I hit the congestion limit of the local delivery input queue. By increasing this value from 256 to 2048 I get much better results, changes from jumping around 1.1 GBit/sec to 1.7 GBit/sec constant throughput. I would like to commit this value, so we hit the next bottleneck.
Does this make a difference for other test setups? ok? bluhm Index: netinet/ip_input.c =================================================================== RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/ip_input.c,v retrieving revision 1.316 diff -u -p -r1.316 ip_input.c --- netinet/ip_input.c 4 Aug 2017 14:24:05 -0000 1.316 +++ netinet/ip_input.c 7 Aug 2017 21:31:22 -0000 @@ -120,7 +120,7 @@ int ip_frags = 0; int *ipctl_vars[IPCTL_MAXID] = IPCTL_VARS; -struct niqueue ipintrq = NIQUEUE_INITIALIZER(IFQ_MAXLEN, NETISR_IP); +struct niqueue ipintrq = NIQUEUE_INITIALIZER(2048, NETISR_IP); struct pool ipqent_pool; struct pool ipq_pool; Index: netinet6/ip6_input.c =================================================================== RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/ip6_input.c,v retrieving revision 1.199 diff -u -p -r1.199 ip6_input.c --- netinet6/ip6_input.c 4 Aug 2017 14:24:05 -0000 1.199 +++ netinet6/ip6_input.c 7 Aug 2017 21:32:09 -0000 @@ -114,7 +114,7 @@ #include <netinet/ip_carp.h> #endif -struct niqueue ip6intrq = NIQUEUE_INITIALIZER(IFQ_MAXLEN, NETISR_IPV6); +struct niqueue ip6intrq = NIQUEUE_INITIALIZER(2048, NETISR_IPV6); struct cpumem *ip6counters;
