Page MenuHomeFreeBSD

D40319.id122569.diff
No OneTemporary

D40319.id122569.diff

diff --git a/sys/netinet/ip_reass.c b/sys/netinet/ip_reass.c
--- a/sys/netinet/ip_reass.c
+++ b/sys/netinet/ip_reass.c
@@ -87,7 +87,7 @@
#define V_ipq VNET(ipq)
VNET_DEFINE_STATIC(uint32_t, ipq_hashseed);
#define V_ipq_hashseed VNET(ipq_hashseed)
-VNET_DEFINE_STATIC(uint32_t, ipq_hashsize);
+VNET_DEFINE_STATIC(uint32_t, ipq_hashsize) = IPREASS_NHASH;
#define V_ipq_hashsize VNET(ipq_hashsize)
#define IPQ_LOCK(i) mtx_lock(&V_ipq[i].lock)
@@ -682,8 +682,6 @@
{
int max;
- V_ipq_hashsize = IPREASS_NHASH;
- TUNABLE_INT_FETCH("net.inet.ip.reass_hashsize", &V_ipq_hashsize);
V_ipq = malloc(sizeof(struct ipqbucket) * V_ipq_hashsize,
M_IPREASS_HASH, M_WAITOK);
diff --git a/sys/netinet/tcp_hostcache.c b/sys/netinet/tcp_hostcache.c
--- a/sys/netinet/tcp_hostcache.c
+++ b/sys/netinet/tcp_hostcache.c
@@ -143,7 +143,12 @@
#define TCP_HOSTCACHE_EXPIRE 60*60 /* one hour */
#define TCP_HOSTCACHE_PRUNE 5*60 /* every 5 minutes */
-VNET_DEFINE_STATIC(struct tcp_hostcache, tcp_hostcache);
+VNET_DEFINE_STATIC(struct tcp_hostcache, tcp_hostcache) = {
+ .hashsize = TCP_HOSTCACHE_HASHSIZE,
+ .bucket_limit = TCP_HOSTCACHE_BUCKETLIMIT,
+ .expire = TCP_HOSTCACHE_EXPIRE,
+ .prune = TCP_HOSTCACHE_PRUNE,
+};
#define V_tcp_hostcache VNET(tcp_hostcache)
VNET_DEFINE_STATIC(struct callout, tcp_hc_callout);
@@ -232,29 +237,18 @@
/*
* Initialize hostcache structures.
*/
- atomic_store_int(&V_tcp_hostcache.cache_count, 0);
- V_tcp_hostcache.hashsize = TCP_HOSTCACHE_HASHSIZE;
- V_tcp_hostcache.bucket_limit = TCP_HOSTCACHE_BUCKETLIMIT;
- V_tcp_hostcache.expire = TCP_HOSTCACHE_EXPIRE;
- V_tcp_hostcache.prune = TCP_HOSTCACHE_PRUNE;
V_tcp_hostcache.hashsalt = arc4random();
- TUNABLE_INT_FETCH("net.inet.tcp.hostcache.hashsize",
- &V_tcp_hostcache.hashsize);
if (!powerof2(V_tcp_hostcache.hashsize)) {
printf("WARNING: hostcache hash size is not a power of 2.\n");
V_tcp_hostcache.hashsize = TCP_HOSTCACHE_HASHSIZE; /* default */
}
V_tcp_hostcache.hashmask = V_tcp_hostcache.hashsize - 1;
- TUNABLE_INT_FETCH("net.inet.tcp.hostcache.bucketlimit",
- &V_tcp_hostcache.bucket_limit);
-
cache_limit = V_tcp_hostcache.hashsize * V_tcp_hostcache.bucket_limit;
- V_tcp_hostcache.cache_limit = cache_limit;
- TUNABLE_INT_FETCH("net.inet.tcp.hostcache.cachelimit",
- &V_tcp_hostcache.cache_limit);
- if (V_tcp_hostcache.cache_limit > cache_limit)
+ if (V_tcp_hostcache.cache_limit == 0)
+ V_tcp_hostcache.cache_limit = cache_limit;
+ else if (V_tcp_hostcache.cache_limit > cache_limit)
V_tcp_hostcache.cache_limit = cache_limit;
/*
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -170,7 +170,11 @@
#define TCP_SYNCACHE_HASHSIZE 512
#define TCP_SYNCACHE_BUCKETLIMIT 30
-VNET_DEFINE_STATIC(struct tcp_syncache, tcp_syncache);
+VNET_DEFINE_STATIC(struct tcp_syncache, tcp_syncache) = {
+ .hashsize = TCP_SYNCACHE_HASHSIZE,
+ .bucket_limit = TCP_SYNCACHE_BUCKETLIMIT,
+ .rexmt_limit = SYNCACHE_MAXREXMTS,
+};
#define V_tcp_syncache VNET(tcp_syncache)
static SYSCTL_NODE(_net_inet_tcp, OID_AUTO, syncache,
@@ -192,8 +196,8 @@
&VNET_NAME(tcp_syncache.hashsize), 0,
"Size of TCP syncache hashtable");
-SYSCTL_BOOL(_net_inet_tcp_syncache, OID_AUTO, see_other, CTLFLAG_VNET |
- CTLFLAG_RW, &VNET_NAME(tcp_syncache.see_other), 0,
+SYSCTL_BOOL(_net_inet_tcp_syncache, OID_AUTO, see_other, CTLFLAG_VNET | CTLFLAG_RW,
+ &VNET_NAME(tcp_syncache.see_other), 0,
"All syncache(4) entries are visible, ignoring UID/GID, jail(2) "
"and mac(4) checks");
@@ -254,15 +258,8 @@
{
int i;
- V_tcp_syncache.hashsize = TCP_SYNCACHE_HASHSIZE;
- V_tcp_syncache.bucket_limit = TCP_SYNCACHE_BUCKETLIMIT;
- V_tcp_syncache.rexmt_limit = SYNCACHE_MAXREXMTS;
V_tcp_syncache.hash_secret = arc4random();
- TUNABLE_INT_FETCH("net.inet.tcp.syncache.hashsize",
- &V_tcp_syncache.hashsize);
- TUNABLE_INT_FETCH("net.inet.tcp.syncache.bucketlimit",
- &V_tcp_syncache.bucket_limit);
if (!powerof2(V_tcp_syncache.hashsize) ||
V_tcp_syncache.hashsize == 0) {
printf("WARNING: syncache hash size is not a power of 2.\n");
@@ -271,10 +268,10 @@
V_tcp_syncache.hashmask = V_tcp_syncache.hashsize - 1;
/* Set limits. */
- V_tcp_syncache.cache_limit =
- V_tcp_syncache.hashsize * V_tcp_syncache.bucket_limit;
- TUNABLE_INT_FETCH("net.inet.tcp.syncache.cachelimit",
- &V_tcp_syncache.cache_limit);
+ if (V_tcp_syncache.cache_limit == 0) {
+ V_tcp_syncache.cache_limit =
+ V_tcp_syncache.hashsize * V_tcp_syncache.bucket_limit;
+ }
/* Allocate the hash table. */
V_tcp_syncache.hashbase = malloc(V_tcp_syncache.hashsize *

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 25, 5:07 AM (13 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32110510
Default Alt Text
D40319.id122569.diff (4 KB)

Event Timeline