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;
 

Reply via email to