From owner-freebsd-smp Thu Aug 23 2:42: 7 2001 Delivered-To: freebsd-smp@freebsd.org Received: from snipe.mail.pas.earthlink.net (snipe.mail.pas.earthlink.net [207.217.120.62]) by hub.freebsd.org (Postfix) with ESMTP id B37B737B409; Thu, 23 Aug 2001 02:42:01 -0700 (PDT) (envelope-from tlambert2@mindspring.com) Received: from mindspring.com (dialup-209.245.134.55.Dial1.SanJose1.Level3.net [209.245.134.55]) by snipe.mail.pas.earthlink.net (8.11.5/8.9.3) with ESMTP id f7N9fuQ18146; Thu, 23 Aug 2001 02:41:56 -0700 (PDT) Message-ID: <3B84D00C.AA0DDB5C@mindspring.com> Date: Thu, 23 Aug 2001 02:42:36 -0700 From: Terry Lambert Reply-To: tlambert2@mindspring.com X-Mailer: Mozilla 4.7 [en]C-CCK-MCD {Sony} (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Matt Dillon Cc: Jake Burkholder , John Baldwin , freebsd-smp@FreeBSD.ORG, freebsd-alpha@FreeBSD.ORG Subject: Re: Preliminary proposed rollup of kernel submap initialization code References: <200108210157.f7L1vAh10384@k7.locore.ca> <200108211736.f7LHaoC64628@earth.backplane.com> <3B83623D.9DC45B93@mindspring.com> <200108221456.f7MEufD74609@earth.backplane.com> <3B84A08D.92864A27@mindspring.com> <200108230637.f7N6bKs83608@earth.backplane.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Matt Dillon wrote: > :> I don't follow. The argument passing and pointer arithmatic is not > :> expensive at all - in fact, it is less expensive then the original MD > :> code if you look at the assembly output! And who really gives a damn > :> about a few nanoseconds during boot anyway? > : > :I was just thinking that, wherever possible, the reference should > :supply easy to understand C code that can be replaced by platform > :specific assembly versions, when necessary. The issue with the > :pointer pass is that it'll be a bit harder to code an assembly > :.. > > You lost me. This is one-time single-execution code. Unless you > are planning on rewriting the entire FreeBSD OS in assembly there > is no issue. It's a porting issue. There are several really nice things about the current FreeBSD when it comes to porting: 1) It can boot over the network, so you only need to get the network devices supported to get to single user mode. 2) It has devfs, which means that you can host the boot on a different machine if, like some machines, the machine is incapable of netbooting correctly from FreeBSD for some reason (without devfs, FreeBSD's use of additional bits in major/minor device numbers made it impossible to run over NFS or hosted on systems that didn't support creating device nodes on their local FS's with that many bots for the remote FreeBSD to use). 3) It's mostly not as arcane as a lot of systems (it has its strange moments during boot, though, particularly when bootstrapping the VM system and the console). Adding a fourth: 4) There are straight forward C equivalents for everything except what you _absolutely must_ do in assembly. Would be a terrifically nifty feature... Even if you're not interested in adding it, making it less straight forward to get to single user mode, even with C level performance suckage, is bad for getting new ports done. -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message