Replace the old page allocator with the base arena
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 28 Oct 2016 20:53:46 +0000 (16:53 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 29 Nov 2016 16:27:40 +0000 (11:27 -0500)
commit17b05ee4823b09446328467308e0dc0cecd53855
treec3846ec005e4ea478df3486ebc20693e9d13a49a
parent8cc85e9f20c0880773ef9ce32b0e567c2f7918f3
Replace the old page allocator with the base arena

The old allocator couldn't handle higher order allocations efficiently.
As memory was used, it'd take longer and longer to find contiguous
pages.

We bootstrap the base arena and add free segments to it based on the
free memory regions of multiboot.  The kpages_arena is used for the
main pages allocator.  Right now, it's just a pass-through arena that
imports from base.  In the future, it'll have its own qcaches built in,
which will make common allocations even faster.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/arch/riscv/page_alloc.c
kern/arch/x86/page_alloc.c
kern/include/page_alloc.h
kern/src/page_alloc.c
kern/src/pmap.c