freebsd-skq/sys/vm
Mark Johnston 81302f1d77 Fix boot on systems where NUMA domain 0 is unpopulated.
- Add vm_phys_early_add_seg(), complementing vm_phys_early_alloc(), to
  ensure that segments registered during hammer_time() are placed in the
  right domain.  Otherwise, since the SRAT is not parsed at that point,
  we just add them to domain 0, which may be incorrect and results in a
  domain with only several MB worth of memory.
- Fix uma_startup1() to try allocating memory for zones from any domain.
  If domain 0 is unpopulated, the allocation will simply fail, resulting
  in a page fault slightly later during boot.
- Change _vm_phys_domain() to return -1 for addresses not covered by the
  affinity table, and change vm_phys_early_alloc() to handle wildcard
  domains.  This is necessary on amd64, where the page array is dense
  and pmap_page_array_startup() may allocate page table pages for
  non-existent page frames.

Reported and tested by:	Rafael Kitover <rkitover@gmail.com>
Reviewed by:	cem (earlier version), kib
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D25001
2020-05-28 19:41:00 +00:00
..
_vm_radix.h
default_pager.c
device_pager.c Don't hold the object lock while calling getpages. 2020-01-19 23:47:32 +00:00
memguard.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
memguard.h
phys_pager.c Don't hold the object lock while calling getpages. 2020-01-19 23:47:32 +00:00
pmap.h Remove page locking from pmap_mincore(). 2019-10-16 22:03:27 +00:00
redzone.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
redzone.h
sg_pager.c Don't hold the object lock while calling getpages. 2020-01-19 23:47:32 +00:00
swap_pager.c Use COUNTER_U64_DEFINE_EARLY() in places where it simplifies things. 2020-03-06 19:10:00 +00:00
swap_pager.h Remove swblk_t. 2020-02-17 15:11:07 +00:00
uma_core.c Fix boot on systems where NUMA domain 0 is unpopulated. 2020-05-28 19:41:00 +00:00
uma_dbg.c Fix compilation failures on different arches that have vm_machdep.c not 2019-01-15 19:33:47 +00:00
uma_dbg.h
uma_int.h Clean up uma_int.h a bit. 2020-03-07 15:37:23 +00:00
uma.h Constify uma_zcache_create() and uma_zsecond_create()'s "name" argument. 2020-02-22 17:44:28 +00:00
vm_domainset.c Add a !NUMA definition for vm_domainset_iter_policy_ref_init(). 2018-10-24 17:09:20 +00:00
vm_domainset.h Refactor domainset iterators for use by malloc(9) and UMA. 2018-10-23 16:35:58 +00:00
vm_extern.h Use a single VM object for kernel stacks. 2020-04-26 20:08:57 +00:00
vm_fault.c Simplify the condition to enable superpage mappings in vm_fault_soft_fast(). 2020-05-27 21:44:26 +00:00
vm_glue.c Use a single VM object for kernel stacks. 2020-04-26 20:08:57 +00:00
vm_init.c Simplify VM and UMA startup by eliminating boot pages. Instead use careful 2020-01-16 05:01:21 +00:00
vm_kern.c Factor out the kmem contig page alloc and reclamation code. 2020-04-21 16:01:44 +00:00
vm_kern.h Use a single VM object for kernel stacks. 2020-04-26 20:08:57 +00:00
vm_map.c sys/vm: quiet -Wwrite-strings 2020-02-23 03:32:04 +00:00
vm_map.h Revert r355505. The code that it allowed to compile has been removed. 2019-12-09 05:09:46 +00:00
vm_meter.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
vm_mmap.c Introduce kern_mmap_req(). 2020-03-04 21:27:12 +00:00
vm_object.c Use COUNTER_U64_DEFINE_EARLY() in places where it simplifies things. 2020-03-06 19:10:00 +00:00
vm_object.h Add a blocking counter KPI. 2020-02-28 16:05:18 +00:00
vm_page.c Re-check for wirings after busying the page in vm_page_release_locked(). 2020-04-28 13:51:41 +00:00
vm_page.h Re-check for wirings after busying the page in vm_page_release_locked(). 2020-04-28 13:51:41 +00:00
vm_pageout.c Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
vm_pageout.h Fix OOM handling of some corner cases. 2019-08-16 09:43:49 +00:00
vm_pagequeue.h Simplify vm_pageout_init_domain() and add a "big picture" comment. 2019-11-22 16:31:43 +00:00
vm_pager.c sys/vm: quiet -Wwrite-strings 2020-02-23 03:32:04 +00:00
vm_pager.h Add a blocking counter KPI. 2020-02-28 16:05:18 +00:00
vm_param.h (fault 3/9) Move map relookup into a dedicated function. 2020-01-23 05:07:01 +00:00
vm_phys.c Fix boot on systems where NUMA domain 0 is unpopulated. 2020-05-28 19:41:00 +00:00
vm_phys.h Fix boot on systems where NUMA domain 0 is unpopulated. 2020-05-28 19:41:00 +00:00
vm_radix.c kernel: provide panicky version of __unreachable 2020-05-13 18:07:37 +00:00
vm_radix.h Use SMR to provide a safe unlocked lookup for vm_radix. 2020-02-19 19:58:31 +00:00
vm_reserv.c Use COUNTER_U64_DEFINE_EARLY() in places where it simplifies things. 2020-03-06 19:10:00 +00:00
vm_reserv.h Fix locking in vm_reserv_reclaim_contig(). 2019-11-22 16:28:52 +00:00
vm_swapout_dummy.c
vm_swapout.c Use a single VM object for kernel stacks. 2020-04-26 20:08:57 +00:00
vm_unix.c Provide separate accounting for user-wired pages. 2019-05-13 16:38:48 +00:00
vm.h
vnode_pager.c VOP_GETPAGES_ASYNC(): consistently call iodone() callback in case of error. 2020-03-30 21:44:30 +00:00
vnode_pager.h vm pager: writemapping accounting for OBJT_SWAP 2019-09-03 20:31:48 +00:00