Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Jun 2009 14:00:29 -0400
From:      Larry Baird <lab@gta.com>
To:        freebsd-net@freebsd.org
Subject:   Polling and kern.polling.idle_poll
Message-ID:  <20090630180029.GA8847@gta.com>

next in thread | raw e-mail | index | archive | help
A while back I upgraded some old gateways from FreeBSD 4.x to FreeBSD 6.x. 
I thought the upgrade had went smoothly, but a while later I started having
users complaining about throughput.  Luckly I still had a backup of the
FreebSD 4.x install.  Did some throughput tests with iperf.  Low and behold
4.x appeared to have twice the throughput.  After lots of experimenting I
determined that turning off polling fixed the issue.  So I started digging
through the kernel code to see what had changed in the polling logic. 
Finally arived at the fact that "kern.polling.idle_poll" defaults to 1 in
4.x and 0 in 6.x and above.  Turning polling back on with idle-poll enabled
fixed the performance issue.

The man page for polling states:
    kern.polling.idle_poll
	 Controls if polling is enabled in the idle loop.  There are no
	 reasons (other than power saving or bugs in the scheduler's han-
	 dling of idle priority kernel threads) to disable this.

So why is it now disabled by default?  Looking back through cvs the
change was made by Luigi way back in August of 2002.  

-- 
------------------------------------------------------------------------
Larry Baird                        | http://www.gta.com
Global Technology Associates, Inc. | Orlando, FL
Email: lab@gta.com                 | TEL 407-380-0220, FAX 407-380-6080



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