Skip site navigation (1)Skip section navigation (2)
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>