Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Aug 2006 11:51:56 +0200
From:      Ian FREISLICH <if@hetzner.co.za>
To:        Andrew Thompson <thompsa@freebsd.org>, freebsd-current@freebsd.org
Subject:   Re: 802.1Q vlan performance. 
Message-ID:  <E1GGYM0-000CVd-1K@hetzner.co.za>
In-Reply-To: Message from Andrew Thompson <thompsa@freebsd.org> of "Fri, 25 Aug 2006 20:41:26 %2B1200." <20060825084126.GA80099@heff.fud.org.nz> 

next in thread | previous in thread | raw e-mail | index | archive | help
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
boost performance.

> but its valuable kernel memory. It was discussed a bit here, 
> http://lists.freebsd.org/pipermail/freebsd-net/2005-October/008716.html

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
buried treasure?

Ian

--
Ian Freislich



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?E1GGYM0-000CVd-1K>