svn commit: r207902 - head/sys/netinet6

Kip Macy kmacy at FreeBSD.org
Mon May 10 21:31:21 UTC 2010


Author: kmacy
Date: Mon May 10 21:31:20 2010
New Revision: 207902
URL: http://svn.freebsd.org/changeset/base/207902

Log:
  boot time size the flowtable
  
  MFC after:	3 days

Modified:
  head/sys/netinet6/ip6_input.c

Modified: head/sys/netinet6/ip6_input.c
==============================================================================
--- head/sys/netinet6/ip6_input.c	Mon May 10 21:04:45 2010	(r207901)
+++ head/sys/netinet6/ip6_input.c	Mon May 10 21:31:20 2010	(r207902)
@@ -177,9 +177,21 @@ ip6_init(void)
 	frag6_init();
 
 #ifdef FLOWTABLE
- 	TUNABLE_INT_FETCH("net.inet6.ip6.output_flowtable_size",
- 	    &V_ip6_output_flowtable_size);
- 	V_ip6_ft = flowtable_alloc("ipv6", V_ip6_output_flowtable_size, FL_PCPU);
+	if (TUNABLE_INT_FETCH("net.inet6.ip6.output_flowtable_size",
+		&V_ip6_output_flowtable_size)) {
+		if (V_ip6_output_flowtable_size < 256)
+			V_ip6_output_flowtable_size = 256;
+		if (!powerof2(V_ip6_output_flowtable_size)) {
+			printf("flowtable must be power of 2 size\n");
+			V_ip6_output_flowtable_size = 2048;
+		}
+	} else {
+		/*
+		 * round up to the next power of 2
+		 */
+		V_ip6_output_flowtable_size = 1 << fls((1024 + maxusers * 64)-1);
+	}
+	V_ip6_ft = flowtable_alloc("ipv6", V_ip6_output_flowtable_size, FL_PCPU);
 #endif	
 	
 	V_ip6_desync_factor = arc4random() % MAX_TEMP_DESYNC_FACTOR;


More information about the svn-src-all mailing list