freebsd-dev/sys/vm
Mateusz Guzik 1dbf52e7d9 Reduce traffic on vm_cnt.v_free_count
The variable is modified with the highly contended page free queue lock.
It unnecessarily shares a cacheline with purely read-only fields and is
re-read after the lock is dropped in the page allocation code making the
hold time longer.

Pad the variable just like the others and store the value as found with
the lock held instead of re-reading.

Provides a modest 1%-ish speed up in concurrent page faults.

Reviewed by:	kib, markj
Differential Revision:	https://reviews.freebsd.org/D12665
2017-10-13 21:54:34 +00:00
..
_vm_radix.h Add pctrie_init() and vm_radix_init() to initialize generic pctrie and 2017-07-19 20:52:47 +00:00
default_pager.c Provide introductory description of the default pager. 2016-12-14 23:36:32 +00:00
device_pager.c All these files need sys/vmmeter.h, but now they got it implicitly 2017-04-17 17:07:00 +00:00
memguard.c All these files need sys/vmmeter.h, but now they got it implicitly 2017-04-17 17:07:00 +00:00
memguard.h
phys_pager.c Implement the populate() pager method for phys pager. 2016-12-08 11:35:53 +00:00
pmap.h Add support for pmap_enter(..., psind=1) to the amd64 pmap. In other words, 2017-07-23 06:33:58 +00:00
redzone.c
redzone.h
sg_pager.c All these files need sys/vmmeter.h, but now they got it implicitly 2017-04-17 17:07:00 +00:00
swap_pager.c Evaluate the real size of the sblk_zone. 2017-10-13 16:23:05 +00:00
swap_pager.h Make the swap_pager_full variable static. 2017-08-30 09:44:05 +00:00
uma_core.c Fix a logic error in the item size calculation for internal UMA zones. 2017-09-13 15:44:54 +00:00
uma_dbg.c Fix memguard(9) in kernels with INVARIANTS enabled. 2016-06-01 22:31:35 +00:00
uma_dbg.h Move uma_dbg_alloc() and uma_dbg_free() into uma_core.c, which allows 2016-02-03 22:02:36 +00:00
uma_int.h Include _bitset.h to get BITSET_DEFINE, used to define struct slabbits. 2017-09-15 14:59:35 +00:00
uma.h Add UMA_ALIGNOF(). 2017-09-27 23:15:33 +00:00
vm_domain.c Remove cpu_spinwait after seq_consistent. 2016-12-30 06:26:17 +00:00
vm_domain.h Add an initial NUMA affinity/policy configuration for threads and processes. 2015-07-11 15:21:37 +00:00
vm_extern.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
vm_fault.c Switching from a global hash table to per-vm_object radix tries for mapping 2017-08-28 16:55:43 +00:00
vm_glue.c Modify vm_page_grab_pages() to handle VM_ALLOC_NOWAIT. 2017-08-11 16:29:22 +00:00
vm_init.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
vm_kern.c ANSIfy vm_kern.c 2017-10-13 13:53:19 +00:00
vm_kern.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
vm_map.c Disable stack growth when accessed by AIO daemons. 2017-07-19 19:00:32 +00:00
vm_map.h Treat the addr argument for mmap(2) request without MAP_FIXED flag as 2017-06-28 04:02:36 +00:00
vm_meter.c Move vmmeter atomic counters into dedicated cache lines 2017-09-10 19:00:38 +00:00
vm_mmap.c Treat the addr argument for mmap(2) request without MAP_FIXED flag as 2017-06-28 04:02:36 +00:00
vm_object.c Optimize vm_object_page_remove() by eliminating pointless calls to 2017-09-28 17:55:41 +00:00
vm_object.h Use existing tag name for the vm_object' memq. 2017-09-13 19:03:59 +00:00
vm_page.c Reduce traffic on vm_cnt.v_free_count 2017-10-13 21:54:34 +00:00
vm_page.h Optimize vm_page_try_to_free(). Specifically, the call to pmap_remove_all() 2017-09-24 16:50:10 +00:00
vm_pageout.c Synchronize page laundering with pmap_extract_and_hold(). 2017-08-28 22:10:15 +00:00
vm_pageout.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
vm_pager.c Start annotating global _padalign locks with __exclusive_cache_line 2017-09-06 20:28:18 +00:00
vm_pager.h Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
vm_param.h Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
vm_phys.c Speed up vm_page_array initialization. 2017-09-07 21:43:39 +00:00
vm_phys.h Reduce traffic on vm_cnt.v_free_count 2017-10-13 21:54:34 +00:00
vm_radix.c Add pctrie_init() and vm_radix_init() to initialize generic pctrie and 2017-07-19 20:52:47 +00:00
vm_radix.h Add pctrie_init() and vm_radix_init() to initialize generic pctrie and 2017-07-19 20:52:47 +00:00
vm_reserv.c Utilize pmap_enter(..., psind=1) in vm_fault_soft_fast() on amd64. (The 2017-07-23 16:28:13 +00:00
vm_reserv.h Utilize pmap_enter(..., psind=1) in vm_fault_soft_fast() on amd64. (The 2017-07-23 16:28:13 +00:00
vm_unix.c Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
vm.h Implement address space guards. 2017-06-24 17:01:11 +00:00
vnode_pager.c Mark pages after EOF as clean after pageout. 2017-07-26 20:07:05 +00:00
vnode_pager.h Mark pages after EOF as clean after pageout. 2017-07-26 20:07:05 +00:00