802.1Q vlan performance.
if at hetzner.co.za
Fri Aug 25 09:51:59 UTC 2006
Andrew Thompson wrote:
> On Fri, Aug 25, 2006 at 09:37:46AM +0200, Ian FREISLICH wrote:
> > Hi
> > While doing some experimentation and work on ipfw to see where I
> > could improve performance for our virtualised firewall I came across
> > the following comment in sys/net/if_vlan.c:
> > * The VLAN_ARRAY substitutes the dynamic hash with a static array
> > * with 4096 entries. In theory this can give a boots(sic) in processing,
> > * however on practice it does not. Probably this is because array
> > * is too big to fit into CPU cache.
Just so that performance is not ignored, this option yields ~8%
improvement on packet rate (consistent with the thread posted below)
and CPU utilisation down from 75% to 3% in interrupt time. I'm not
convinced that this should be sniffed at.
> > Can anyone suggest a good reason not to turn this option on by
> > default. It looks to me like it dramatically improves performance.
> Its because of the amount of memory it uses, 16k doesnt sound like much
Wow, and I just added a 256k lookup table to ipfw (uncommitted) to
> but its valuable kernel memory. It was discussed a bit here,
So, it seems that the main cause for concern is embedded devices
with little memory. As far as I know (from what little gets posted
here about embedded applications) quite a lot of of stuff gets
stripped out and stripped down. I think it's a small ask to have
the embedded ports unset this option to get a little memory and
kill performance, although it's unlikely that El Tiny Embed is going
to be running thousands of vlans.
Alternatively is there an objection to making this a kernel
configuration file option as opposed to leaving it as an undocumented
More information about the freebsd-current