Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 May 2010 21:31:20 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r207902 - head/sys/netinet6
Message-ID:  <201005102131.o4ALVKmg074548@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005102131.o4ALVKmg074548>