svn commit: r328916 - in head/sys: kern vm

Gleb Smirnoff glebius at FreeBSD.org
Tue Feb 6 18:18:11 UTC 2018


On Tue, Feb 06, 2018 at 10:54:05AM +0000, Andrew Turner wrote:
A> > Author: glebius
A> > Date: Tue Feb  6 04:16:00 2018
A> > New Revision: 328916
A> > URL: https://svnweb.freebsd.org/changeset/base/328916
A> > 
A> > Log:
A> >  Followup on r302393 by cperciva, improving calculation of boot pages required
A> >  for UMA startup.
A> > 
A> >  o Introduce another stage of UMA startup, which is entered after
A> >    vm_page_startup() finishes. After this stage we don't yet enable buckets,
A> >    but we can ask VM for pages. Rename stages to meaningful names while here.
A> >    New list of stages: BOOT_COLD, BOOT_STRAPPED, BOOT_PAGEALLOC, BOOT_BUCKETS,
A> >    BOOT_RUNNING.
A> >    Enabling page alloc earlier allows us to dramatically reduce number of
A> >    boot pages required. What is more important number of zones becomes
A> >    consistent across different machines, as no MD allocations are done before
A> >    the BOOT_PAGEALLOC stage. Now only UMA internal zones actually need to use
A> >    startup_alloc(), however that may change, so vm_page_startup() provides
A> >    its need for early zones as argument.
A> >  o Introduce uma_startup_count() function, to avoid code duplication. The
A> >    functions calculates sizes of zones zone and kegs zone, and calculates how
A> >    many pages UMA will need to bootstrap.
A> >    It counts not only of zone structures, but also of kegs, slabs and hashes.
A> >  o Hide uma_startup_foo() declarations from public file.
A> >  o Provide several DIAGNOSTIC printfs on boot_pages usage.
A> >  o Bugfix: when calculating zone of zones size use (mp_maxid + 1) instead of
A> >    mp_ncpus. Use resulting number not only in the size argument to zone_ctor()
A> >    but also as args.size.
A> 
A> 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.

Sorry for problems.

Can you please put DIAGNOSTIC into beginning of uma_core.c, and boot with
vm.boot_pages bumped, and provide the dmesg to me?

-- 
Gleb Smirnoff


More information about the svn-src-all mailing list