Return to BSD News archive
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!howland.reston.ans.net!europa.eng.gtefsd.com!MathWorks.Com!yeshua.marcam.com!charnel.ecst.csuchico.edu!xmission!u.cc.utah.edu!cs.weber.edu!terry From: terry@cs.weber.edu (Terry Lambert) Newsgroups: comp.os.386bsd.misc Subject: Re: dual procesor motherboards the way forward? Date: 3 Oct 1994 22:46:15 GMT Organization: Weber State University, Ogden, UT Lines: 91 Message-ID: <36q1jn$4f7@u.cc.utah.edu> References: <Cww6x9.1A0@gnome.co.uk> <36hous$fdv@exile.oec.com> <jmonroyCx10rt.4FF@netcom.com> NNTP-Posting-Host: cs.weber.edu In article <jmonroyCx10rt.4FF@netcom.com> jmonroy@netcom.com (Jesus Monroy Jr) writes: [ ... discussion of MACH 3.0 for SMP ... ] ] I disagree with both your premises. ] I beleive, first, that the Mach kernel "model" is ] inefficent and is not a good choice for SMP. I'd agree with this statement, but it's misleading in the extreme. The main problem with the MACH model is in multiply crossing protection domains to implement kernel sevices, and it is getting to the point where this is no longer necessary (using page anonymity protection schemes in a 64 bit address space). Chorus in particular is a microkernel that has eliminated much of the domain crossing, although instead of anonymity, they use direct function binding and "trusted" server -- in other words, they push the severs from "user sspace" into "kernel space". Any college or university interested in Chorus should be aware that it is only $1000 for a source license. Contact them for more information (the contact point is posted in the comp.os.chorus FAQ). ] Bill Jolitz agrees to an extent with me. I would hope that he didn't agree with you 100% on that particular issue! ] He has thrown out the Mach memory manager from ] 386bsd; claiming - it was getting in the way. Well, yes and no -- memory overcommit and using files as swap store *does* get in the way of scheduling a process to run without giving it a "preferred" CPU (potentially a good idea, in a lot of ways, although you would want to be able to dynamically reassign it on a full swap out or in the process of load balancing). On the other hand, I don't think these are attributes of the memory management more than they are particular implementation choices. SVR4 SMP (UnixWare 2.0) does quite well with a "MACH style" VM system. It has other issues relating to per process working sets not being enforced and a linker that mmap's all the .o files and tickles this problem. ] I state that the thread management and thread scheme ] are definitely in the way. Not true. I personally detest the idea of kernel and user threads in Solaris and SVR4 ("Beyond Multiprocessing: Multithreading the SunOS Kernel", Summer 92 Usenix /ftp.sage.usenix.org/ and "Solaris SunOS 5.0: SunOS 5.0 Multithread Architecture", Sun white paper /ftp.sun.com/). In particular, there is an implied requirement to implement SVR4 style scheduling classes for an n:m mapping of user space to kernel threads, since the multithreaded process is inferior to multiple processes in its ability to compete for process quantum otherwise. In addition, the implementation is such that the number of kernel threads (m) for user space threads (n) must be set so that n == m. Failure to do this means compute starvation for n - m threads for n > m, since each blocking operation in the kernel requires its own thread. MACH's kernel threading is definitely the right direction, and follows on the 'logical next step' after the LWP model, where a sync operation is traded for an async operation plus a context switch ("Register Windows and User-Space Threads on the SPARC", David Keppel University of Washing CS department /wuarchive.wustl.edu/). ] So without getting into theoritical (sp?) discussions. ] I'd say wait for 386bsd Release 1.0. This is a bit glib; why avoid the theoretical discussions? Since 386BSD 1.0 is currently theoretical, this will only serve to convince others (perhaps unfairly) that you simply don't know what you are talking about. ] Reason: Bill has had a Compac MP machine in-house ] and has found many inconsistences in MACH design ] or traditional thing. Well, the cache coherency model on the Proliant systems leaves something to be desired, like "a cache coherency model". You can't fault Compaq on this, as least not too much, since the same thing is true of the MiPS R4xxx processers using the supplied MiPS SMP bus arbitration chips: they do cache invalidation instead of cache writeback. I know of at least one ASIC design that was in progress that did the right thing: cache update, and arbitrated in a single clock, but the design is limited to 4 processers and sadly has yet to see silicon. I'd be much more interested in a design that allowed for the Intel model of SMP (see ftp.intel.com), or even better, MPPC (PReP compliant) SMP hardware. Both of these will be widely applicable to a large number of hardware platforms in a very few years. Terry Lambert terry@cs.weber.edu --- Any opinions in this posting are my own and not those of my present or previous employers.