freebsd-dev/sys/vm
Alan Cox 20dd22a24e Correct a problem in the ZERO_COPY_SOCKETS option, specifically, in
vm_page_cowfault().  Initially, if vm_page_cowfault() sleeps, the given
page is wired, preventing it from being recycled.  However, when
transmission of the page completes, the page is unwired and returned to
the page queues.  At that point, the page is not in any special state
that prevents it from being recycled.  Consequently, vm_page_cowfault()
should verify that the page is still held by the same vm object before
retrying the replacement of the page.  Note: The containing object is,
however, safe from being recycled by virtue of having a non-zero
paging-in-progress count.

While I'm here, add some assertions and comments.

Approved by: re (rwatson)
MFC After: 3 weeks
2007-07-10 18:41:34 +00:00
..
default_pager.c
device_pager.c Replace PG_BUSY with VPO_BUSY. In other words, changes to the page's 2006-10-22 04:28:14 +00:00
memguard.c Improve memguard a bit: 2005-12-30 11:45:07 +00:00
memguard.h Improve memguard a bit: 2005-12-30 11:45:07 +00:00
phys_pager.c Minor typo fix, noticed while I was going through *_pager.c files. 2007-04-10 12:34:51 +00:00
pmap.h Complete the transition from pmap_page_protect() to pmap_remove_write(). 2006-08-01 19:06:06 +00:00
redzone.c Add buffer corruption protection (RedZone) for kernel's malloc(9). 2006-01-31 11:09:21 +00:00
redzone.h Add buffer corruption protection (RedZone) for kernel's malloc(9). 2006-01-31 11:09:21 +00:00
swap_pager.c Eliminate GIANT_REQUIRED from swap_pager_putpages(). 2007-06-24 18:40:30 +00:00
swap_pager.h - Move 'struct swdevt' back into swap_pager.h and expose it to userland. 2007-02-07 17:43:11 +00:00
uma_core.c Revert VMCNT_* operations introduction. 2007-05-31 22:52:15 +00:00
uma_dbg.c
uma_dbg.h
uma_int.h Update stale comment on protecting UMA per-CPU caches: we now use 2007-05-09 22:53:34 +00:00
uma.h Add uma_set_align() interface, which will be called at most once during 2007-02-11 20:13:52 +00:00
vm_contig.c Enable the new physical memory allocator. 2007-06-16 04:57:06 +00:00
vm_extern.h Close race between vmspace_exitfree() and exit1() and races between 2006-05-29 21:28:56 +00:00
vm_fault.c Eliminate the special case handling of OBJT_DEVICE objects in 2007-07-08 19:42:52 +00:00
vm_glue.c Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
vm_init.c
vm_kern.c When KVA is exhausted, try the vm_lowmem event for the last time before 2007-04-05 20:52:51 +00:00
vm_kern.h The clean_map has been made local to vm_init.c long ago. 2006-11-20 16:23:34 +00:00
vm_map.c Revert VMCNT_* operations introduction. 2007-05-31 22:52:15 +00:00
vm_map.h Close race between vmspace_exitfree() and exit1() and races between 2006-05-29 21:28:56 +00:00
vm_meter.c Commit 14/14 of sched_lock decomposition. 2007-06-05 00:00:57 +00:00
vm_mmap.c Add freebsd6_ wrappers for mmap/lseek/pread/pwrite/truncate/ftruncate 2007-07-04 22:57:21 +00:00
vm_object.c Enable the new physical memory allocator. 2007-06-16 04:57:06 +00:00
vm_object.h Eliminate OBJ_WRITEABLE. It hasn't been used in a long time. 2006-07-21 06:40:29 +00:00
vm_page.c Correct a problem in the ZERO_COPY_SOCKETS option, specifically, in 2007-07-10 18:41:34 +00:00
vm_page.h Enable the new physical memory allocator. 2007-06-16 04:57:06 +00:00
vm_pageout.c In the previous revision, when I replaced the unconditional acquisition 2007-07-02 06:56:37 +00:00
vm_pageout.h
vm_pageq.c Enable the new physical memory allocator. 2007-06-16 04:57:06 +00:00
vm_pager.c
vm_pager.h
vm_param.h Correct two comments. 2007-04-19 04:52:47 +00:00
vm_phys.c Update a comment. 2007-06-16 05:25:53 +00:00
vm_phys.h Add a new physical memory allocator. However, do not yet connect it 2007-06-10 00:49:16 +00:00
vm_unix.c
vm_zeroidle.c Enable the new physical memory allocator. 2007-06-16 04:57:06 +00:00
vm.h Retire debug.mpsafevm. None of the architectures supported in CVS require 2006-07-21 23:22:49 +00:00
vnode_pager.c Do proper "locking" for missing vmmeters part. 2007-06-04 21:45:18 +00:00
vnode_pager.h