Date: Tue, 15 Dec 2020 10:04:03 -0500 From: Mark Johnston <markj@freebsd.org> To: Hans Petter Selasky <hps@selasky.org> Cc: Bryan Drewery <bdrewery@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r368523 - head/sys/vm Message-ID: <X9jQY6SLzEKznoex@raichu> In-Reply-To: <d4c78af3-e5c0-417f-1042-a0a7cf27d523@selasky.org> References: <202012102044.0BAKiTHh011767@repo.freebsd.org> <a5b983ca-73f6-a7eb-7b96-bb361c1a8514@selasky.org> <X9jH20xQcS72vuDQ@raichu> <d4c78af3-e5c0-417f-1042-a0a7cf27d523@selasky.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Dec 15, 2020 at 03:33:09PM +0100, Hans Petter Selasky wrote: > On 12/15/20 3:27 PM, Mark Johnston wrote: > >> I'm seeing the following panic: > >> > >> panic("vm_wait in early boot") > >> vm_wait_domain() > >> kmem_alloc_contig_pages() > >> kmem_alloc_contig_domainset() > >> kmem_alloc_contig() > >> contigmalloc() > >> x86bios_alloc() > >> vesa_configure() > >> vesa_mod_event() > >> vesa_module_register_init() > >> mi_startup() > > Is it on a NUMA system? I see that the new logic won't work properly if > > there are empty domains, so this suggests that we really do need a > > special contig iterator as discussed in the review. > > Yes, this is a numa system. > > I just noticed, that before r368523 "flags" was updated by > _vm_domainset_iter_policy_init() to always contain M_NOWAIT and that > avoids the wait logic, but I think x86bios_alloc() doesn't get its > memory then. Yes, but note that vm_domainset_iter_policy() will also call vm_wait_doms() if a M_NOWAIT allocation from each domain fails. x86bios_alloc() requests memory from the first 1MB of physical memory, but because contigmalloc() uses a round-robin iterator initialized from per-thread state it may try from the "wrong" domain first. So really a different solution to the original problem is needed. > I'm not sure if x86bios_alloc() needs to be attached a bit later anyway? > > --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?X9jQY6SLzEKznoex>