FreeBSD 10G forwarding performance @Intel

Luigi Rizzo rizzo at iet.unipi.it
Tue Jul 3 20:08:33 UTC 2012


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 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"


More information about the freebsd-net mailing list