dev.bce.X.com_no_buffers increasing and packet loss
Pyun YongHyeon
pyunyh at gmail.com
Tue Mar 9 20:49:33 UTC 2010
On Tue, Mar 09, 2010 at 03:31:55PM +0200, Ian FREISLICH wrote:
> Pyun YongHyeon wrote:
> > On Mon, Mar 08, 2010 at 04:45:20PM +0200, Ian FREISLICH wrote:
> > > Pyun YongHyeon wrote:
> > > > On Fri, Mar 05, 2010 at 11:16:41PM +0200, Ian FREISLICH wrote:
> > > > > Pyun YongHyeon wrote:
> > > > > > Thanks for the info. Frankly, I have no idea how to explain the
> > > > > > issue given that you have no heavy load.
> > > > >
> > > > > How many cores would be involved in handling the traffic and runnig
> > > > > PF rules on this machine? There are 4x
> > > > > CPU: Quad-Core AMD Opteron(tm) Processor 8354 (2194.51-MHz K8-class CPU
> )
> > > > > In this server. I'm also using carp extensively.
> > > > >
> > > >
> > > > pf(4) uses a single lock for processing, number of core would have
> > > > no much benefit.
> > >
> > > What's interesting is the effect on CPU utilisation and interrupt
> > > generation that net.inet.ip.fastforwarding has:
> > >
> > > net.inet.ip.fastforwarding=1
> > > interrupt rate is around 10000/s per bce interface
> > > cpu 8.0% interrupt
> > >
> >
> > Yes, this is one of intentional change of the patch. Stock bce(4)
> > seems to generate too much interrupts on BCM5709 so I rewrote
> > interrupt handling with the help of David. sysctl nodes are also
> > exported to control interrupt moderation so you can change them if
> > you want. Default value was tuned to generate interrupts less than
> > 10k per second and try to minimize latencies.
>
> Can you explain the tunables please - I'm guessing it's these:
>
> dev.bce.$i.tx_quick_cons_trip_int
This value controls the number of TX Quick BD Chain entries that
must be completed before a status block is generated during an
interrupt.
> dev.bce.$i.tx_quick_cons_trip
This value controls the number of TX Quick BD Chain entries that
must be completed before a status block is generated. Setting this
to 0 disables TX Quick BD Chain consumption from generating status
blocks.
> dev.bce.$i.tx_ticks_int
This value controls the number of 1us ticks that will be counted
for status block updates generated due to TX activity during
interrupt processing. Setting this value to 0 disables the TX
timer feature during interrupts.
> dev.bce.$i.tx_ticks
This value controls the number of 1us ticks that will be counted
before a status block update is generated due to TX activity.
Setting this value to 0 disables the TX timer feature.
> dev.bce.$i.rx_quick_cons_trip_int
This value controls the number of RX Quick BD entries that must be
completed before a status block is generated during interrupt
processing.
> dev.bce.$i.rx_quick_cons_trip
This value controls the number of RX Quick BD Chain entries that
must be completed before a status block is generated. Setting this
to 0 disables RX Event consumption from generating status blocks.
> dev.bce.$i.rx_ticks_int
This value controls the number of 1us ticks that will be counted
for status block updates generated due to RX activity during
interrupt processing. Setting this value to 0 disables the RX
timer feature during interrupts.
> dev.bce.$i.rx_ticks
>
This value controls the number of 1us ticks that will be counted
before a status block update is generated due to RX activity.
Setting this value to 0 disables the RX timer feature.
More information about the freebsd-current
mailing list