svn commit: r328916 - in head/sys: kern vm
Andrew Turner
andrew at fubar.geek.nz
Tue Feb 6 10:54:46 UTC 2018
> On 6 Feb 2018, at 04:16, Gleb Smirnoff <glebius at FreeBSD.org> wrote:
>
> Author: glebius
> Date: Tue Feb 6 04:16:00 2018
> New Revision: 328916
> URL: https://svnweb.freebsd.org/changeset/base/328916
>
> Log:
> Followup on r302393 by cperciva, improving calculation of boot pages required
> for UMA startup.
>
> o Introduce another stage of UMA startup, which is entered after
> vm_page_startup() finishes. After this stage we don't yet enable buckets,
> but we can ask VM for pages. Rename stages to meaningful names while here.
> New list of stages: BOOT_COLD, BOOT_STRAPPED, BOOT_PAGEALLOC, BOOT_BUCKETS,
> BOOT_RUNNING.
> Enabling page alloc earlier allows us to dramatically reduce number of
> boot pages required. What is more important number of zones becomes
> consistent across different machines, as no MD allocations are done before
> the BOOT_PAGEALLOC stage. Now only UMA internal zones actually need to use
> startup_alloc(), however that may change, so vm_page_startup() provides
> its need for early zones as argument.
> o Introduce uma_startup_count() function, to avoid code duplication. The
> functions calculates sizes of zones zone and kegs zone, and calculates how
> many pages UMA will need to bootstrap.
> It counts not only of zone structures, but also of kegs, slabs and hashes.
> o Hide uma_startup_foo() declarations from public file.
> o Provide several DIAGNOSTIC printfs on boot_pages usage.
> o Bugfix: when calculating zone of zones size use (mp_maxid + 1) instead of
> mp_ncpus. Use resulting number not only in the size argument to zone_ctor()
> but also as args.size.
With this I’m getting "panic: UMA: Increase vm.boot_pages” on an arm64 simulator with 4GB of memory. I can increase vm.boot_pages manually, however this isn’t useful in the long term.
Andrew
More information about the svn-src-all
mailing list