From owner-freebsd-current Thu Dec 7 18:03:52 1995 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.3/8.7.3) id SAA14359 for current-outgoing; Thu, 7 Dec 1995 18:03:52 -0800 (PST) Received: from phaeton.artisoft.com (phaeton.Artisoft.COM [198.17.250.211]) by freefall.freebsd.org (8.7.3/8.7.3) with SMTP id SAA14349 for ; Thu, 7 Dec 1995 18:03:47 -0800 (PST) Received: (from terry@localhost) by phaeton.artisoft.com (8.6.11/8.6.9) id TAA00226; Thu, 7 Dec 1995 19:00:19 -0700 From: Terry Lambert Message-Id: <199512080200.TAA00226@phaeton.artisoft.com> Subject: Re: FYI To: julian@ref.tfs.com (Julian Elischer) Date: Thu, 7 Dec 1995 19:00:19 -0700 (MST) Cc: terry@lambert.org, current@freebsd.org In-Reply-To: <199512080131.RAA24828@ref.tfs.com> from "Julian Elischer" at Dec 7, 95 05:31:41 pm X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-current@freebsd.org Precedence: bulk > > 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 > 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.