Date: Sat, 18 Jan 2020 18:25:37 +0000 (UTC) From: Andrew Gallatin <gallatin@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r356866 - head/sys/vm Message-ID: <202001181825.00IIPb27084393@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: gallatin Date: Sat Jan 18 18:25:37 2020 New Revision: 356866 URL: https://svnweb.freebsd.org/changeset/base/356866 Log: pcpu_page_alloc: guard against empty NUMA domains Some systems, such as higher end Threadripper, may have NUMA domains with no physical memory, Don't allocate from these domains. This fixes a "panic: vm_wait in early boot" on my 2990WX desktop Reviewed by: jeff Sponsored by: Netflix Modified: head/sys/vm/uma_core.c Modified: head/sys/vm/uma_core.c ============================================================================== --- head/sys/vm/uma_core.c Sat Jan 18 10:55:38 2020 (r356865) +++ head/sys/vm/uma_core.c Sat Jan 18 18:25:37 2020 (r356866) @@ -1521,7 +1521,11 @@ pcpu_page_alloc(uma_zone_t zone, vm_size_t bytes, int p = vm_page_alloc(NULL, 0, flags); #else pc = pcpu_find(cpu); - p = vm_page_alloc_domain(NULL, 0, pc->pc_domain, flags); + if (__predict_false(VM_DOMAIN_EMPTY(pc->pc_domain))) + p = NULL; + else + p = vm_page_alloc_domain(NULL, 0, + pc->pc_domain, flags); if (__predict_false(p == NULL)) p = vm_page_alloc(NULL, 0, flags); #endif
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202001181825.00IIPb27084393>