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>