Device polling

Jon Noack noackjr at
Sun Jun 13 18:08:41 GMT 2004

On 06/11/04 03:05, Magnus Carlebjörk wrote:
> Hi. I have been using Luigi's polling code extensively i several multiprocessor
> systems for over a year now, and it works flawlessly and efficiently. Nicely
> done Luigi!
> In the beginning of /usr/src/sys/kern/kern_poll.c there are a few lines thas
> says that polling is incompatible with SMP. This is not true, polling IS
> compatible with SMP, it just does not utilize all of it's features.

I just tested this on my SMP all-in-one home server (Web, Mail, NFS, 
Samba, Squid, etc.).  It's been up for over 24 hours with no apparent 
issues.  The machine is used pretty heavily, with NFS mounted home 
directories and CVS mirror (see below) -- a CVS update of the src tree 
over NFS has done a good job of breaking fragile setups in the past. 
Everything seemed OK.  That said, peak performance (as tested by iperf) 
took a nosedive: with 32-bit em adapters (gige), tcp bandwidth dropped 
from over 360Mbps to around 200 Mbps.  If anyone has any suggestions for 
more in-depth testing, I'd be willing to try them.  If I have the time I 
may also try the latest netperf patch and see how that affects things.

> I'm getting tired of having the builkernel break everytime because of this
> define in kern_poll.c. Would it be possible to change that so that is just puts
> a note in the syslog instead?

Create an update script that automatically applies a patch after the 
CVSup.  Alternatively, use CVSup to mirror the repository and then check 
out the src directory (with regular CVS from the local mirror).  That 
way you can make local changes and still keep updated.  I was introduced 
to this latter method recently (on this list) and it works quite well. 
See the CVSup page in the Handbook and 


More information about the freebsd-current mailing list