Date: Tue, 3 Jul 2012 22:27:57 +0200 From: Luigi Rizzo <rizzo@iet.unipi.it> To: "Alexander V. Chernikov" <melifaro@freebsd.org> Cc: hackers@freebsd.org, performance@freebsd.org, net@freebsd.org Subject: Re: FreeBSD 10G forwarding performance @Intel Message-ID: <20120703202757.GA90741@onelab2.iet.unipi.it> In-Reply-To: <4FF32DE2.2010606@FreeBSD.org> References: <4FF319A2.6070905@FreeBSD.org> <20120703165506.GA90114@onelab2.iet.unipi.it> <4FF32DE2.2010606@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Jul 03, 2012 at 09:37:38PM +0400, Alexander V. Chernikov wrote: ... > Thanks, another good point. I forgot to merge this option from andre's > patch. > > Another 30-40-50kpps to win. not much gain though. What about the other IPSTAT_INC counters ? I think the IPSTAT_INC macros were introduced (by rwatson ?) following a discussion on how to make the counters per-cpu and avoid the contention on cache lines. But they are still implemented as a single instance, and neither volatile nor atomic, so it is not even clear that they can give reliable results, let alone the fact that you are likely to get some cache misses. the relevant macro is in ip_var.h. Cheers luigi > > +u_int rt_count = 1; > +SYSCTL_INT(_net, OID_AUTO, rt_count, CTLFLAG_RW, &rt_count, 1, ""); > > @@ -601,17 +625,20 @@ passout: > if (error != 0) > IPSTAT_INC(ips_odropped); > else { > - ro.ro_rt->rt_rmx.rmx_pksent++; > + if (rt_count) > + ro.ro_rt->rt_rmx.rmx_pksent++; > IPSTAT_INC(ips_forward); > IPSTAT_INC(ips_fastforward); > > > > > >cheers > >luigi > > > > > -- > WBR, Alexander > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120703202757.GA90741>