Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 30 Nov 1996 01:12:36 -0500 (EST)
From:      "John S. Dyson" <toor@dyson.iquest.net>
To:        msmith@atrad.adelaide.edu.au (Michael Smith)
Cc:        imp@village.org, platforms@FreeBSD.org, dyson@FreeBSD.org
Subject:   Re: FreeBSD/MIPS anybody
Message-ID:  <199611300612.BAA09955@dyson.iquest.net>
In-Reply-To: <199611300546.QAA25227@genesis.atrad.adelaide.edu.au> from "Michael Smith" at Nov 30, 96 04:16:46 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> What strikes me as the biggest real problem is the highly
> x86-optimised VM, and along with that perhaps the blurring of MI/MD
> code in the FreeBSD kernel.
> 
The FreeBSD VM code uses the SAME assumptions as the original
Lite & Lite/2 code except we have removed some broken-ness like
pagemove :-).  I hope that those concerns about machine dependence
are not due to disinformation from others.  There might
have to be some mods and enhancements to do a port to a given
architecture, but the end result will be vastly superior to the
original Lite & Lite/2 code that others are currently using.

(Note that the original Lite code doesn't do a credible job
 of working on a heavily loaded system, and it has numerous bugs--
 so, frankly, I am not sure that it is properly ported to any machine.)

>
> I've been studying the NetBSD code for a little while now, and it
> strikes me just how much of the VM seems to be replicated from one
> architecture to the next.  Is this really necessary?  How much of
> the FreeBSD VM is actually x86-specific, and how much could 
> reasonably be moved out and reused by other architectures?
> 
The only thing that is substantially X86 specific is the pmap code.

When working on the VM code, one has to understand it...  Otherwise
one gets weird crashes with even the simplest changes.  I don't
think that very many individuals understand all of the code above the
pmap layer.  I do think that problems with previous port attempts
are due to a lack of understanding of how the code works.  The code
is subtile^2.

There are some X86 optimizations, but those are implemented mostly
in the pmap code.  Those routines should be noops on architectures
like R4000, where they have software managed TLB's.  We don't really
need the reference bit, and our performance will degrade under heavy
load without it.  But, NO OS is going to do as well without that bit.

The X86 specific optimizations (as opposed to pmap re-design) only
account for a small part of the FreeBSD performance gains.

John




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