Date: Wed, 10 Jan 1996 12:15:07 -0700 (MST) From: Terry Lambert <terry@lambert.org> To: Bruno.Bretelle@masi.ibp.fr (Bruno Bretelle) Cc: questions@FreeBSD.org Subject: Re: FreeBSD and multiprocessor PC Message-ID: <199601101915.MAA15130@phaeton.artisoft.com> In-Reply-To: <199601101409.PAA28453@masi.ibp.fr> from "Bruno Bretelle" at Jan 10, 96 03:11:25 pm
next in thread | previous in thread | raw e-mail | index | archive | help
> I'm just wondering if it's generally possible to get FreeBSD running on > a Inntel-base multiprocessor machine? Are there any steps toward porting > FreeBSD on a multiprocessor platform? The distributed code runs on one processor of amultiprocessor box. Jack Vogel has patches that will apply cleanly, if you can figure where to put them and add a file that was omited from the original patch set and sent under seperate cover. I'm sure Jack knows exactly who does and does not have his patches. 8-) 8-). To use Jack's patches, you must back out the source tree to the code from 28 Oct 1994. There are specific changes to locore.s that will prevent his patches from working, apparently for stack frame support in the kernel debugger (among other things). There are also a couple of coding areas and an assumption of a low memory reserve which was pulled out of newer code (it assumes because ther is an implied overlap in two locations in Jack's locore.s and mpcore.s). So you must have an account on FreeFall, or contact Jack directly to get the patches, and you must have CVS tree access to get the 28 Oct 94 checkout to work. CVS tree access isn't really a problem any more, it's publically pullable. The resulting patches give you a low grained (kernel entrancy is semaphored) parallelism which uses a processor anonymity model for scheduling. Such a model is good because it allows processors as schedulable resources, but is bad because of locality of reference issues regarding the L1 cache for each processor. For instance, you can't use this model and (easily) bind a process to a specific processor. You can make minor changes to the scheduler, like using a per processor preference queue and saving tasks that were running on the processor to the local queue, but you sacrifice the ability to migrate processes except in the idle case. I have a series of patches against one month old -current, which use the standard (new) kernel initialization mechanism. They don't work if you enable any of the kernel debugging or tracing, mostly because of the cruddy job I did of integrating locore.s. 8-). I have sent the patches to several people so far, but I am doing some abominable stuff with the page tables when I actually run using them. Peter Wemm was looking at integrating cannonically correct locore.s code that took into account the debugging and other issues, and when he's done, I'll reupdate the patches (they are mostly some additional files and a couple of small patches beyond the locore.s modifications, su the update shouldn't be bad). 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?199601101915.MAA15130>