Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 May 2003 19:52:31 -0400
From:      Don Bowman <don@sandvine.com>
To:        'Bruce Evans' <bde@zeta.org.au>, Kevin Day <toasty@dragondata.com>
Cc:        freebsd-net@freebsd.org
Subject:   RE: polling(4) and idle time/cpu usage percentages
Message-ID:  <FE045D4D9F7AED4CBFF1B3B813C8533701B365FE@mail.sandvine.com>

next in thread | raw e-mail | index | archive | help
From: Bruce Evans [mailto:bde@zeta.org.au]
> On Sun, 4 May 2003, Kevin Day wrote:
> 
> > I've got a FreeBSD system acting as a router, it's passing 
> 250-600mbps of
> > traffic through it most of the time.
> >
> > Yesterday it was running 4.6-RELEASE without polling. I've 
> upgraded it to
> > 4.8 and enabled polling. Before it was showing 30-50% CPU 
> use in interrupt
> > and system combined. Now it's showing 0-1% (99% idle).
> >
> > Is this because it's polling in the idle loop, and time 
> spent doing this
> > isn't getting accounted for anywhere, or is polling THAT 
> much more efficient?
> >
> > If it's the former, is it supposed to work this way? Now 
> I've got no clear
> > way of knowing how busy the system is. (It's just routing 
> packets, really
> > nothing more)
> 
> The former.  It's hard for it to work better without wasting too many
> cycles for the accounting.  In RELENG_4, everything done in the "idle"
> loop is counted as idle time using the single counter 
> cp_time[CP_IDLE].
> This is very efficient.

I tried this on my system, but I still end up with 0 system time.
Does the machdep.cpu_idle_hlt=1 have any affect on this?

I'm passing 1Gbps each way through a bridge (e.g. 1Gbps in
and 1Gbps out each of 2 interfaces), and I have 88.4% idle.
This is admittedly on a pretty fast processor, a 2x2.8GHz XEON.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FE045D4D9F7AED4CBFF1B3B813C8533701B365FE>