Subject: Re: Welcome to port-i386
To: None <port-i386@NetBSD.org>
From: J Chapman Flack <flack@cs.purdue.edu>
List: port-i386
Date: 03/13/2005 09:04:25
On Fri, Mar 11, 2005 at 07:33:36AM -0800, James Cornell wrote:
> SMP was just recently added to NetBSD so I really don't know how mature 
> exactly it is.  Please leave me some feedback regarding the maturity of
> the 2.0 kernel and Quad and above systems on i386 hardware.

I've recently set up a dual PIII systeme on which I've discovered a couple
issues in emulation code (both of which are now fixed on the CVS head thanks to
Christos and Jaromir, and I've merged the diffs into my 2.0 kernel).

THe procfs cpuinfo file returns information on only one CPU, not all of them,
and this can be used by Linux apps to decide they are running on a uniprocessor.
When Sun's Java runtime environment thinks it's running on a UP, it probably
optimizes away locking from its dynamically compiled code - in any case, Java
code will lose badly.

compat_ibcs2 has bugs in lock management (the ones Jaromir found were in ioctl)
causing spinlock-against-myself in ibcs2 apps.  The emulators are probably among
the least-tested corners of the system.

Neither problem turned out to be in specifically i386-dependent code (except
insofar as ibcs2 is an emulation useful only on i386).

I've just noticed my first weird behavior that _isn't_ connected with
emulation, and it's so involved I haven't yet been able to reduce it to a
minimal reproducible case.  CVS was consistently hanging while exchanging
certain files with sourceforge - small files fine, but a 1000 and a 10000
line file both caused hangs (cvs using ext with CVS_RSH=ssh).  After rebooting
with MPBIOS disabled, I could commit.  hmmmmm....

-Chap