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 _______________________________________________ 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"