freebsd-nq/sys/vm
Matt Macy ab3059a8e7 Back pcpu zone with domain correct pages
- Change pcpu zone consumers to use a stride size of PAGE_SIZE.
  (defined as UMA_PCPU_ALLOC_SIZE to make future identification easier)

- Allocate page from the correct domain for a given cpu.

- Don't initialize pc_domain to non-zero value if NUMA is not defined
  There are some misconceptions surrounding this field. It is the
  _VM_ NUMA domain and should only ever correspond to valid domain
  values as understood by the VM.

The former slab size of sizeof(struct pcpu) was somewhat arbitrary.
The new value is PAGE_SIZE because that's the smallest granularity
which the VM can allocate a slab for a given domain. If you have
fewer than PAGE_SIZE/8 counters on your system there will be some
memory wasted, but this is obviously something where you want the
cache line to be coming from the correct domain.

Reviewed by: jeff
Sponsored by: Limelight Networks
Differential Revision:  https://reviews.freebsd.org/D15933
2018-07-06 02:06:03 +00:00
..
_vm_radix.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
default_pager.c SPDX: wrong license. 2017-11-30 15:45:42 +00:00
device_pager.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
memguard.c Eliminate kmem_arena and kmem_object in preparation for further NUMA commits. 2017-11-28 23:40:54 +00:00
memguard.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
phys_pager.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
pmap.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
redzone.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
redzone.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
sg_pager.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
swap_pager.c Handle the race between fork/vm_object_split() and faults. 2018-06-14 19:41:02 +00:00
swap_pager.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
uma_core.c Back pcpu zone with domain correct pages 2018-07-06 02:06:03 +00:00
uma_dbg.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
uma_dbg.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
uma_int.h Sort uma_zone fields according to 64 byte cache line with adjacent line 2018-06-23 08:10:09 +00:00
uma.h Back pcpu zone with domain correct pages 2018-07-06 02:06:03 +00:00
vm_domainset.c Use the canonical check for reservation support. 2018-05-19 23:49:13 +00:00
vm_domainset.h Implement several enhancements to NUMA policies. 2018-03-29 02:54:50 +00:00
vm_extern.h Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
vm_fault.c Typo. 2018-05-30 16:48:48 +00:00
vm_glue.c Account the size of the vslock-ed memory by the thread. 2018-03-24 13:51:27 +00:00
vm_init.c Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
vm_kern.c Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
vm_kern.h Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
vm_map.c Use a single, consistent approach to returning success versus failure in 2018-06-04 16:28:06 +00:00
vm_map.h inline atomics and allow tied modules to inline locks 2018-07-02 19:48:38 +00:00
vm_meter.c vm: move vm_cnt to __read_mostly now that it is not written to 2018-04-27 05:36:02 +00:00
vm_mmap.c Use a single, consistent approach to returning success versus failure in 2018-06-04 16:28:06 +00:00
vm_object.c Fix some races introduced in r332974. 2018-05-04 17:17:30 +00:00
vm_object.h Use per-domain locks for vm page queue free. Move paging control from 2018-02-06 22:10:07 +00:00
vm_page.c Create a new macro for static DPCPU data. 2018-07-05 17:13:37 +00:00
vm_page.h inline atomics and allow tied modules to inline locks 2018-07-02 19:48:38 +00:00
vm_pageout.c Correct the description of vm_pageout_scan_inactive() after r334508. 2018-06-04 16:46:36 +00:00
vm_pageout.h Fix GCC build: Remove redundant pagedaemon_wakeup declaration 2018-03-16 07:05:09 +00:00
vm_pagequeue.h Make UMA and malloc(9) return non-executable memory in most cases. 2018-06-13 17:04:41 +00:00
vm_pager.c SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
vm_pager.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vm_param.h SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
vm_phys.c Allow callers to vm_phys_split_pages() to specify whether insertion should 2018-07-05 02:08:57 +00:00
vm_phys.h Update the physical page selection strategy used by vm_page_import() so 2018-06-26 18:29:56 +00:00
vm_radix.c vm: stop passing M_ZERO when allocating radix nodes 2018-06-24 13:08:05 +00:00
vm_radix.h sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
vm_reserv.c Fix two compliation problems on non-amd64 architectures. 2018-03-23 18:24:02 +00:00
vm_reserv.h Lock reservations with a dedicated lock in each reservation. Protect the 2018-03-22 19:21:11 +00:00
vm_swapout_dummy.c SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
vm_swapout.c Improve VM page queue scalability. 2018-04-24 21:15:54 +00:00
vm_unix.c Split kern_break from sys_break and use it in linuxulator 2018-06-27 14:45:13 +00:00
vm.h Move vm_ndomains to vm.h where it can be used with a single header include 2018-03-27 03:27:02 +00:00
vnode_pager.c Implement several enhancements to NUMA policies. 2018-03-29 02:54:50 +00:00
vnode_pager.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00