Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Dec 1995 19:00:19 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        julian@ref.tfs.com (Julian Elischer)
Cc:        terry@lambert.org, current@freebsd.org
Subject:   Re: FYI
Message-ID:  <199512080200.TAA00226@phaeton.artisoft.com>
In-Reply-To: <199512080131.RAA24828@ref.tfs.com> from "Julian Elischer" at Dec 7, 95 05:31:41 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> neat.. so xxx is running on the 2nd processor?

Yes.  8-).

> > ps -gax
> >   PID TT  STAT      TIME COMMAND
> >   234 p0  R      0:16.11 ./xxx
> 
> > main()
> > {
> > 	for(;;)
> > 		continue;
> > }
> does it explode if  it tries to do a syscall?

No.  This is a non-kernel reentrant low grain parallelism.  It uses
Jack Vogel's code.  System calls, interrupts, etc. are mutexed -- only
one processor is allowed to be in the kernel at a time.  Jack did all
the work, I just ported it to -current.

It took a bit of hacking to get it into -current, and I'm still not
happy.  The DDB and BDE_DEBUGGER has to be diabled, etc. to get a
working locore.s.

> > dmesg:
> > 
> > FreeBSD/SMP: Multiprocessor: 2 processors
> > FreeBSD 2.0-BUILT-19951207 #7: Thu Dec  7 17:30:55 MST 1995
>          ^^^^^
> how much work to get the patches up-to date?

That would be my checked out tree with the wrong version number in it.
The patches are current as of SUP 1 week ago.

> >     terry@phaeton.artisoft.com:/usr/src.org/sys/compile/SMP
> > CPU: 90-MHz Pentium 735\\90 (Pentium-class CPU)
> >   Origin = "GenuineIntel"  Id = 0x525  Stepping=5
> >   Features=0x3bf<FPU,VME,PSE,MCE,CX8,APIC>
> what would it take to get a probe of the other processor too?

About as much work as APIC version identification.  I was extremely
lazy in the code integration, or it would be there.  I did move the
proc to a per processor resource structure, but have barely got it
working.  The code Jack put in mpcore.s is bare bones with regard
to the Extended BIOS Data Area... for instance, it assumes an MP
Configuration Table (which the spec says is optional), and reads the
signature at the location looking for "_MP_"... the spec says ""PCMP",
etc..  Certain configuration defaults are assumed as well.  I suspect
virtual wire mode machines (Compaq?) would fail to boot correctly.


Oh.  The assembler doesn't fail if it fails to get a .inc file.  I was
missing the MP GDT stuff and wondering why the hell it was falling over.

8-).

This is just a first crude hack of the 28Oct1994 patches from Jack, like
sticking the SYSINIT stuff in where it should be and adding a kern_smp.c
file, etc. -- more proof-of-concept than anything else.  I don't trust
it yet for running a web site, for instance.

					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



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