Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Apr 2007 03:12:00 -0700
From:      Garrett Cooper <youshi10@u.washington.edu>
To:        freebsd-questions@freebsd.org
Subject:   Re: Memory >3.5GB not used?
Message-ID:  <46307AF0.5080106@u.washington.edu>
In-Reply-To: <f0n1ug$5p1$1@sea.gmane.org>
References:  <01d301c78699$d6a36820$0300020a@mickey>	<20070424140528.95287ff4.wmoran@potentialtech.com>	<021201c7869f$ee90fd70$0300020a@mickey>	<3ee9ca710704241144n4ab349c6m901586e427b1ae0d@mail.gmail.com>	<021c01c786a0$fe7e5510$0300020a@mickey>	<20070424145433.734761db.wmoran@potentialtech.com>	<f0lrup$18a$1@sea.gmane.org>	<20070424182027.33d16b28.wmoran@potentialtech.com> <f0n1ug$5p1$1@sea.gmane.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Ivan Voras wrote:
> Bill Moran wrote:
> 
>  > Does this test demonstrate usage of memory over 4G?  It's my 
> understanding
>  > that PAE starts to suffer when it has to look at the memory over 4G 
> (which
>  > is the problem it's intended to solve)
>  >
>  > If your entire test fits in under 4G, you're not seeing the worst of it.
>  > At least, that's my understanding of the issue.
> 
> I don't think that's how PAE works. AFAIK, it adds all the memory pages 
> it can find (including those above and below 4 GB) into the VM pool with 
> 64-bit addresses, so all of them can be used by the applications in an 
> uniform way. Kind of like swap works.

 From what I've read, don't use PAE because it's a hack for hardware to 
attempt to properly map 4GB+ into 32-bit address space. Many OSes make 
up for that fact by masking that only 3.5GB is usable, because precision 
is an issue (4GB is the tipping point for 32-bit architectures). PAE was 
brought about prior to real native Intel-compatible 64-bit architectures 
came into play (Itanium aka IA64 doesn't count, because that's a whole 
different ball of wax). From my understanding of the underlying 
hardware, PAE uses two separate sets of control buses, and as logic 
dictates, having two things trying to tell programs what memory gets 
mapped to what becomes messy / slow.

A true 64-bit architecture will properly map all of that memory (up to 
64TB? -- I forget the actual number), and can properly use the memory 
for your intended purposes. You'll need to make sure that you run a 
64-bit compiled OS though, not a 32-bit OS.

AMD64 and EMT64 allow you to run 32-bit binaries and 64-bit binaries, 
with many times little issue (the only issue may exist in compiling the 
binaries, but that's what PRs are for to ports / core maintainers). 
Plus, because FreeBSD can be compiled (for the most part besides 
proprietary drivers like the nvidia-kernel) with 64-bit support from the 
bottom up, it's a much better OS than say Windows XP-x64 (a bloody f'ing 
hack from M$ I've discovered -- about as much driver support and 
stability at times as 95/98 offered for 32-bit back in the day) or Vista 
x64.

My 2 cents.
-Garrett



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