1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-19 10:53:58 +00:00
freebsd/sys/vm
Konstantin Belousov 0973283d6e For the upgrade case in vm_fault_copy_entry(), when the entry does not
need COW and is writeable (i.e. becoming writeable due to the
mprotect(2) operation), do not create a new backing object for the
entry.  The caller of the function is vm_map_protect(), the call is
made to ensure that wired entry has all pages resident and wired in
the top level object and to enable the write.  We might need to copy
read-only page from some backing objects into the top object or remap
the page with the write allowed.

This fixes the issue with mishandling of the swap accounting when
read-only wired mapping is upgraded to write-enabled after fork.  The
previous code path did not accounted the new object, but it creation
is redundand anyway and the change provides an optimization for the
non-common situation.

Reported by:	markj
Suggested and reviewed by:	alc (previous version)
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2014-05-10 17:03:33 +00:00
..
_vm_radix.h
default_pager.c
device_pager.c Initialize paddr to handle the case of zero size. 2014-03-12 16:38:55 +00:00
memguard.c Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00
memguard.h
phys_pager.c
pmap.h The pmap function pmap_clear_reference() is no longer used. Remove it. 2013-09-20 04:30:18 +00:00
redzone.c
redzone.h
sg_pager.c
swap_pager.c Add sysctl OIDs showing the actual size and capacity of the swap zone. 2014-04-26 12:18:17 +00:00
swap_pager.h
uma_core.c After r251709, avoid a clang 3.4 warning about an unused static const 2014-02-14 17:47:18 +00:00
uma_dbg.c
uma_dbg.h
uma_int.h Implement soft pressure on UMA cache bucket sizes. 2013-11-19 10:05:53 +00:00
uma.h Create two public UMA_ZONE_PCPU zones: 64 bit sized and pointer sized. 2014-02-10 19:59:46 +00:00
vm_extern.h Merge the following changes from projects/bhyve_npt_pmap: 2013-09-20 17:06:49 +00:00
vm_fault.c For the upgrade case in vm_fault_copy_entry(), when the entry does not 2014-05-10 17:03:33 +00:00
vm_glue.c Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00
vm_init.c
vm_kern.c
vm_kern.h
vm_map.c When printing the map with the ddb 'show procvm' command, do not dump 2014-05-10 16:36:13 +00:00
vm_map.h
vm_meter.c Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00
vm_mmap.c msync(2) must return ENOMEM and not EINVAL when the address is outside the 2014-05-07 08:38:02 +00:00
vm_object.c Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00
vm_object.h
vm_page.c Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00
vm_page.h Since the introduction of the popmap to reservations in r259999, there is 2013-12-31 18:25:15 +00:00
vm_pageout.c Prior to r254304, a separate function, vm_pageout_page_stats(), was used to 2014-05-06 03:42:04 +00:00
vm_pageout.h
vm_pager.c
vm_pager.h
vm_param.h Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00
vm_phys.c For the VM_PHYSSEG_DENSE case, checking the requested range to fall 2014-04-29 18:42:37 +00:00
vm_phys.h Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00
vm_radix.c Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00
vm_radix.h Eliminate a redundant parameter to vm_radix_replace(). 2013-12-08 20:07:02 +00:00
vm_reserv.c Add "popmap" assertions: The page being freed isn't already free, and the 2013-12-29 04:54:52 +00:00
vm_reserv.h
vm_unix.c
vm_zeroidle.c Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00
vm.h
vnode_pager.c Rename global cnt to vm_cnt to avoid shadowing. 2014-03-22 10:26:09 +00:00
vnode_pager.h