svn commit: r193660 - user/kmacy/releng_7_2_fcs/sys/net

Kip Macy kmacy at FreeBSD.org
Sun Jun 7 22:50:46 UTC 2009


Author: kmacy
Date: Sun Jun  7 22:50:45 2009
New Revision: 193660
URL: http://svn.freebsd.org/changeset/base/193660

Log:
  keep stats per-cpu

Modified:
  user/kmacy/releng_7_2_fcs/sys/net/flowtable.c

Modified: user/kmacy/releng_7_2_fcs/sys/net/flowtable.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/net/flowtable.c	Sun Jun  7 22:50:16 2009	(r193659)
+++ user/kmacy/releng_7_2_fcs/sys/net/flowtable.c	Sun Jun  7 22:50:45 2009	(r193660)
@@ -148,7 +148,8 @@ struct flowtable {
 	uint32_t	ft_allocated;
 	uint32_t	ft_misses;
 	uint64_t	ft_hits;
-
+	uint64_t	ft_lookups;
+	
 	uint32_t	ft_udp_idle;
 	uint32_t	ft_fin_wait_idle;
 	uint32_t	ft_syn_idle;
@@ -164,13 +165,13 @@ struct flowtable {
 	bitstr_t 	*ft_masks[MAXCPU];
 	bitstr_t	*ft_tmpmask;
 	struct flowtable *ft_next;
-};
+} __aligned(128);
 
 static struct proc *flowcleanerproc;
-static struct flowtable *flow_list_head;
-static uint32_t hashjitter;
-static uma_zone_t ipv4_zone;
-static uma_zone_t ipv6_zone;
+static struct flowtable *flow_list_head __aligned(128);
+static uma_zone_t ipv4_zone __aligned(128);
+static uma_zone_t ipv6_zone __aligned(128);
+static uint32_t hashjitter __aligned(128);
 
 static struct cv 	flowclean_cv;
 static struct mtx	flowclean_lock;
@@ -606,7 +607,7 @@ flowtable_lookup(struct flowtable *ft, s
 	if (hash == 0 || (key[0] == 0 && (ft->ft_flags & FL_HASH_PORTS)))
 		return (ENOENT);
 
-	flowtable_lookups++;
+	ft->ft_lookups++;
 	FL_ENTRY_LOCK(ft, hash);
 	if ((fle = FL_ENTRY(ft, hash)) == NULL) {
 		FL_ENTRY_UNLOCK(ft, hash);
@@ -621,7 +622,7 @@ keycheck:	
 	    && (proto == fle->f_proto)
 	    && (rt->rt_flags & RTF_UP)
 	    && (rt->rt_ifp != NULL)) {
-		flowtable_hits++;
+		ft->ft_hits++;
 		fle->f_uptime = time_uptime;
 		fle->f_flags |= flags;
 		ro->ro_rt = rt;
@@ -635,7 +636,7 @@ keycheck:	
 	FL_ENTRY_UNLOCK(ft, hash);
 
 uncached:
-	flowtable_misses++;
+	ft->ft_misses++;
 	/*
 	 * This bit of code ends up locking the
 	 * same route 3 times (just like ip_output + ether_output)


More information about the svn-src-user mailing list