> On 6 Feb 2018, at 04:16, Gleb Smirnoff <gleb...@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 _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"