[ previous ] [ next ] [ threads ]
 From:  Dirk-Willem van Gulik <dirkx at webweaving dot org>
 To:  Manuel Kasper <mk at neon1 dot net>
 Cc:  m0n0wall at lists dot m0n0 dot ch
 Subject:  Re: [m0n0wall] Net45xx image without watchdog
 Date:  Tue, 30 Dec 2003 13:29:13 -0800 (PST)
On Tue, 30 Dec 2003, Manuel Kasper wrote:

> Basically, it seems that when pushing data at maximum speed (Ethernet
> -> Ethernet) through a net45xx that runs FreeBSD (m0n0wall actually),
> the CPU gets so fed up with handling all the interrupts (and packet
> filtering/NAT too) that the watchdogd process doesn't get any CPU time
> to tickle the watchdog anymore. Raising the priority of the process
> doesn't help either.

Ok - so we have a situation where userland essentially does not get any
CPU for over 30 seconds ? Sounds like indeed you -must- use polling:

> Au contraire - polling mode actually "solved" the problem by leaving
> watchdogd enough CPU time even at max. throughput.

Good - as you want userland to get a few cycles at least every 5 seconds
to keep things like userland dhcp, ntp and named happy. If not you may be
better off detecting a 20-60 second no-userland-cycles and at the very
least log it (as to at least least give the user a chance to understand
where mbuf or accept() queues getting too large is coming from).