Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Jun 2004 13:07:28 -0500
From:      Jon Noack <noackjr@alumni.rice.edu>
To:        =?ISO-8859-1?Q?Magnus_Carlebj=F6rk?= <magnus@carlebjork.se>
Cc:        luigi@iet.unipi.it
Subject:   Re: Device polling
Message-ID:  <40CC97E0.5010003@alumni.rice.edu>
In-Reply-To: <Pine.BSF.4.58L0.0406110957020.49590@crimp.gluerecord.net>
References:  <Pine.BSF.4.58L0.0406110957020.49590@crimp.gluerecord.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 06/11/04 03:05, Magnus Carlebj=F6rk wrote:
> Hi. I have been using Luigi's polling code extensively i several multip=
rocessor
> systems for over a year now, and it works flawlessly and efficiently. N=
icely
> done Luigi!
>=20
> 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 I=
S
> 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,=20
Samba, Squid, etc.).  It's been up for over 24 hours with no apparent=20
issues.  The machine is used pretty heavily, with NFS mounted home=20
directories and CVS mirror (see below) -- a CVS update of the src tree=20
over NFS has done a good job of breaking fragile setups in the past.=20
Everything seemed OK.  That said, peak performance (as tested by iperf)=20
took a nosedive: with 32-bit em adapters (gige), tcp bandwidth dropped=20
from over 360Mbps to around 200 Mbps.  If anyone has any suggestions for=20
more in-depth testing, I'd be willing to try them.  If I have the time I=20
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 t=
his
> define in kern_poll.c. Would it be possible to change that so that is j=
ust puts
> a note in the syslog instead?

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

Jon



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