Some crazy person with PAE thinks that they need more user virtual space, This patch allows PAGE_OFFSET to be in much more arbitrary places, with PAE on. I described the first bit of the patch here: http://marc.theaimsgroup.com/?l=linux-kernel&m=104197008817507&w=2 This patch also allows us to simulate the conditions that occur when we have large amounts of physical RAM (like having pte chains and mem_map consuting all of ZONE_NORMAL) with much lower actual amounts of RAM. This part adds the userspace page tables component, so that we can _actually_ run userspace programs. Thanks to Bill Irwin for showing me how to do the pgd_alloc() in a relatively sane way. The second patch I've attached will take you from the normal 3:1 split, to a 7:1 split. I've also booted on a machine with PAE on, 4GB of physical RAM, and a 15:1 split (PAGE_OFFSET == 0xF0000000). This is from the 15:1 split: 3615MB HIGHMEM available. 128MB LOWMEM available. MemTotal: 3790824 kB MemFree: 3758920 kB Buffers: 1472 kB Cached: 7636 kB SwapCached: 0 kB Active: 6576 kB Inactive: 4380 kB HighTotal: 3702756 kB HighFree: 3692160 kB LowTotal: 88068 kB LowFree: 66760 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 116 kB Writeback: 0 kB Mapped: 4804 kB Slab: 5092 kB Committed_AS: 2776 kB PageTables: 1868 kB ReverseMaps: 3091 -- Dave Hansen haveblue@us.ibm.com