From owner-freebsd-hackers Tue Nov 5 0:28:12 2002 Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1933E37B401 for ; Tue, 5 Nov 2002 00:28:11 -0800 (PST) Received: from conure.mail.pas.earthlink.net (conure.mail.pas.earthlink.net [207.217.120.54]) by mx1.FreeBSD.org (Postfix) with ESMTP id ABF6B43E6E for ; Tue, 5 Nov 2002 00:28:10 -0800 (PST) (envelope-from tlambert2@mindspring.com) Received: from pool0237.cvx21-bradley.dialup.earthlink.net ([209.179.192.237] helo=mindspring.com) by conure.mail.pas.earthlink.net with esmtp (Exim 3.33 #1) id 188z46-00072X-00; Tue, 05 Nov 2002 00:28:03 -0800 Message-ID: <3DC780C6.A646C43D@mindspring.com> Date: Tue, 05 Nov 2002 00:26:46 -0800 From: Terry Lambert X-Mailer: Mozilla 4.79 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Julian Elischer Cc: Matt , Richard Sharpe , hackers@FreeBSD.ORG Subject: Re: max phy mem known working with FreeBSD 4.x References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Julian Elischer wrote: > The hardware changes to do > 32 bit physical addresses > include a redefinition of how page tables and page directories are layed > out and to be able to use it we'd have to define > and turn on code for that differnt mode. iIt has not yet been written. > It wouldn't be hard to make a system that ONLY ran in that mode > but one that can run on new systems withthat mode and also run on old > 486 machines is much harder. It's easier to do it with PSE-36 than PAE, actually. The double indirect is also easy to setup, and then not use, if it comes to that, and 4K vs. 8K allocated in assembly is pretty much nothing. The big issue is the 2M vs. 4M "jumbo pages": you have to expect that, and FreeBSD, if PSE is present, will try to set up a 4M page for the kernel. What's really needed is a "remap4kto4m()" function that gets used for that; there's a trick you have to pull with CR3, CR0, and CR4 to make it not break, though, because there's a CPU bug, and it leaves you with a chicken-and-egg problem, otherwise. This would work for 2M pages, as well (just use two of them). If you understand the code, you should be able to write it in about two weeks (including the CPU bug workaround), once you have your head around things. -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message