Date: Tue, 6 Feb 2018 10:18:01 -0800 From: Gleb Smirnoff <glebius@FreeBSD.org> To: Andrew Turner <andrew@fubar.geek.nz> Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r328916 - in head/sys: kern vm Message-ID: <20180206181801.GA1063@FreeBSD.org> In-Reply-To: <6675B0B0-A582-4D5A-832B-A0E0E13B9E6C@fubar.geek.nz> References: <201802060416.w164G0va096970@repo.freebsd.org> <6675B0B0-A582-4D5A-832B-A0E0E13B9E6C@fubar.geek.nz>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180206181801.GA1063>