Large virtual page size support.
Julian Elischer
julian at elischer.org
Tue Jan 17 13:27:11 PST 2006
Jeff Roberson wrote:
> I have implemented support in the vm for PAGE_SIZE values which are a
> multiple of the hardware page size. This is primarily useful for two
> things:
Mach (and the VM system we inherrited from it) had this. I beieve it was
removed with teh comment
"If we need this and someone is willing to support it it can be added
back" .
It always seemed like in interesting idea and I'm happy to see that it
is still being looked at.
>
> 1) Shrinking the size of the vm page array so that very large memory
> x86 PAE machines may boot.
>
> 2) Improving performance of many operations due to decreased page list
> sizes as well as improved efficiency of many vm operations. In the
> particular application that this was developed for the fs block size,
> page size, and jumbo frame size were all made equal at 8k on a box
> with 4k pages. This made page flipping etc. very fast.
>
> This has been done with full userland backwards compatibility.
> Userland still has the ability to map things in native page size
> chunks. The majority of the system software remains unchanged. The
> vm gains some complexity and the elf loader gains some complexity
> since both need to be able to deal with native page size and virtual
> page size.
>
> The real page size is now CPU_PAGE_SIZE while PAGE_SIZE is the virtual
> page size which is the smallest unit of memory handed back by the page
> allocation routines. KVA is also managed in PAGE_SIZE chunks. The
> x86 pmap code has a small allocator that deals with allocating real
> pages for page table entries.
>
> I wrote this code for a client who would like for it to be in the
> freebsd tree. However, it does add some complexity and so I doubt
> freebsd wants it unless there is a clear demand for it. What I'd like
> to know is, does anyone else find this useful? Do the developers who
> work on the vm think this is just a horrible hack? Does anyone care
> about PAE anymore?
>
> Let me know what you think. The patch is available at
> http://www.chesapeake.net/~jroberson/8k.diff. It will not apply to
> any version of freebsd that you have. Please consider it read only
> and not testable until I decide whether it's worth porting.
>
> Cheers,
> Jeff
> _______________________________________________
> freebsd-arch at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
> To unsubscribe, send any mail to "freebsd-arch-unsubscribe at freebsd.org"
More information about the freebsd-arch
mailing list