polling decreases throughput ~50%
freebsd at celestial.com
Tue Aug 2 17:32:46 GMT 2005
On Tue, Aug 02, 2005, Victor Semionov wrote:
>I've noticed something that seems strange to me and I'd like to ask for an
>explanation, because I don't think it should be happening.
>I was uploading some large file to my neighbor's windows box. With polling
>disabled, the transfer rate was 8 MB/s and CPU usage was 90%. I turned on
>polling with sysctl and CPU usage decreased to 50%, which I expected, but
>also the transfer rate dropped to 4.5 MB/s, about half. The numbers are
>approximate. The interface is a RealTek (rl driver). No background jobs were
>running. kern.polling.* all defaults.
>Why is that? I thought polling should decrease CPU usage by avoiding too many
>context switches when a hw irq is generated frequently, but it shouldn't make
>the transfer slower if there are no other jobs running.
I certainly don't claim to be an expert on this subject so take this with a
grain of salt.
Interrupts were originally created to eliminate the need for polling
allowing processes to sleep until an interrupt occurs rather than having
the process in a loop testing to see if any input is ready or the device is
available for further work.
The only place I've seen polling used effectively on *nix systems is on
parallel printer ports where cheap hardware or printers wouldn't properly
The other place I've seen polling used was with some brain-dead accounting
software written in Business BASIC that polled the keyboard for input, and
could suck every available cycle -- particularly if the connection to the
session terminated abnormally.
INTERNET: bill at Celestial.COM Bill Campbell; Celestial Software LLC
UUCP: camco!bill PO Box 820; 6641 E. Mercer Way
FAX: (206) 232-9186 Mercer Island, WA 98040-0820; (206) 236-1676
``If the future navigation system [for interactive networked services on
the NII] looks like something from Microsoft, it will never work.''
(Chairman of Walt Disney Television & Telecommunications)
More information about the freebsd-questions