freebsd-dev/sys/vm
Attilio Rao 0d8243cc34 vm_page_grab() and vm_pager_get_pages() can drop the vm_object lock,
then threads can sleep on the pip condition.
Avoid to deadlock such threads by correctly awakening the sleeping ones
after the pip is finished.
swapoff side of the bug can likely result in shutdown deadlocks.

Sponsored by:	EMC / Isilon Storage Division
Reported by:	pho, pluknet
Tested by:	pho
2014-03-19 01:13:42 +00:00
..
_vm_radix.h On all the architectures, avoid to preallocate the physical memory 2013-08-09 11:28:55 +00:00
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 - Add a statically allocated memguard arena since it is needed very early 2013-08-13 22:40:43 +00:00
memguard.h Replace kernel virtual address space allocation with vmem. This provides 2013-08-07 06:21:20 +00:00
phys_pager.c The soft and hard busy mechanism rely on the vm object lock to work. 2013-08-09 11:11:11 +00:00
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 Different consumers of the struct vm_page abuse pageq member to keep 2013-08-10 17:36:42 +00:00
swap_pager.c vm_page_grab() and vm_pager_get_pages() can drop the vm_object lock, 2014-03-19 01:13:42 +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 - Add a per-zone lock for zones without kegs. 2013-06-20 19:08:12 +00:00
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 Don't call vm_fault_prefault() on zero-fill faults. It's a waste of time. 2014-02-09 01:59:52 +00:00
vm_glue.c Remove the deprecated VM_ALLOC_RETRY flag for the vm_page_grab(9). 2013-08-22 07:39:53 +00:00
vm_init.c Add a mmap flag (MAP_32BIT) on 64-bit platforms to request that a mapping use 2013-09-09 18:11:59 +00:00
vm_kern.c Add a mmap flag (MAP_32BIT) on 64-bit platforms to request that a mapping use 2013-09-09 18:11:59 +00:00
vm_kern.h - Add a statically allocated memguard arena since it is needed very early 2013-08-13 22:40:43 +00:00
vm_map.c Do not coalesce stack entry, vm_map_stack() asserts that the requested 2013-12-27 16:59:47 +00:00
vm_map.h Add a mmap flag (MAP_32BIT) on 64-bit platforms to request that a mapping use 2013-09-09 18:11:59 +00:00
vm_meter.c
vm_mmap.c Update kernel inclusions of capability.h to use capsicum.h instead; some 2014-03-16 10:55:57 +00:00
vm_object.c Do not vdrop() the tmpfs vnode until it is unlocked. The hold 2014-03-12 15:13:57 +00:00
vm_object.h On all the architectures, avoid to preallocate the physical memory 2013-08-09 11:28:55 +00:00
vm_page.c In an effort to diagnose possible corruption of struct vm_page on some 2014-01-24 19:08:42 +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 Fix a couple of typos. 2014-01-21 03:27:47 +00:00
vm_pageout.h
vm_pager.c - Add a general purpose resource allocator, vmem, from NetBSD. It was 2013-06-28 03:51:20 +00:00
vm_pager.h - Add a general purpose resource allocator, vmem, from NetBSD. It was 2013-06-28 03:51:20 +00:00
vm_param.h Remove unused definition for CTL_VM_NAMES. 2013-08-09 23:47:43 +00:00
vm_phys.c Since the introduction of the popmap to reservations in r259999, there is 2013-12-31 18:25:15 +00:00
vm_phys.h Split the pagequeues per NUMA domains, and split pageademon process 2013-08-07 16:36:38 +00:00
vm_radix.c Eliminate a redundant parameter to vm_radix_replace(). 2013-12-08 20:07:02 +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 Refactor vm_page_alloc()'s interactions with vm_reserv_alloc_page() and 2013-05-12 16:50:18 +00:00
vm_unix.c
vm_zeroidle.c Split the pagequeues per NUMA domains, and split pageademon process 2013-08-07 16:36:38 +00:00
vm.h rename scheduler->swapper and SI_SUB_RUN_SCHEDULER->SI_SUB_LAST 2013-07-24 09:45:31 +00:00
vnode_pager.c ANSIfy declarations. 2014-01-20 18:47:56 +00:00
vnode_pager.h