Subject: Initial support for large pages
To: None <port-i386@netbsd.org>
From: Jason R Thorpe <thorpej@zembu.com>
List: port-i386
Date: 09/07/2000 11:54:38
Hi folks...

I have added support for mapping the kernel text using large pages to
the -current development trunk (NOT the netbsd-1-5 release branch).  This
gives a reasonable performance improvement, for example building a GENERIC
kernel on my 600MHz P-III laptop:

	before: 636.59s real   387.34s user    27.53s system

	after: 597.21s real   382.88s user    24.88s system

Note that compiling stuff is pretty userland-intensive, so things that
spend a lot more time in the kernel (e.g. forwarding packets, IPsec
processing, RAIDframe, etc.) are likely to see better improvements.

Note that there is NOT generic support for using large pages for other
types of mappings, nor have I added support for mapping the kernel
data/bss segments with large pages (although that should be pretty
straigtforward, and will look at it soon).

But, it's a start, anyway.  An example kernel config can be found
in sys/arch/i386/conf/DR-EVIL.4MB.  Follow its lead to learn how to
enable large page support.

Depending on how stable this turns out to be, I will likely try
and get it included in NetBSD 1.5.1.

Enjoy!

-- 
        -- Jason R. Thorpe <thorpej@zembu.com>