Add 24 more page table pages we allocate on boot-up. 16MB slop

is a little tight in and by itself, but severily insufficient
when one needs to map a large frame buffer as part of console
initialization. 64MB slop should be enough for a while. As an
example: a 15" MacBook Pro with retina display needs ~28MB of
KVA for the frame buffer.

PR:		193745
This commit is contained in:
Marcel Moolenaar 2015-08-18 01:53:41 +00:00
parent ec6b1f6acc
commit 4a99d3f571

View File

@ -699,8 +699,14 @@ nkpt_init(vm_paddr_t addr)
* pmap_growkernel() will need to allocate page table pages to map
* the entire 512GB of KVA space which is an unnecessary tax on
* physical memory.
*
* Secondly, device memory mapped as part of setting up the low-
* level console(s) is taken from KVA, starting at virtual_avail.
* This is because cninit() is called after pmap_bootstrap() but
* before vm_init() and pmap_init(). 20MB for a frame buffer is
* not uncommon.
*/
pt_pages += 8; /* 16MB additional slop for kernel modules */
pt_pages += 32; /* 64MB additional slop. */
#endif
nkpt = pt_pages;
}