freebsd-dev/sys/vm
Kenneth D. Merry 9b80d344ec Zero copy send and receive fixes:
- On receive, vm_map_lookup() needs to trigger the creation of a shadow
  object.  To make that happen, call vm_map_lookup() with PROT_WRITE
  instead of PROT_READ in vm_pgmoveco().

- On send, a shadow object will be created by the vm_map_lookup() in
  vm_fault(), but vm_page_cowfault() will delete the original page from
  the backing object rather than simply letting the legacy COW mechanism
  take over.  In other words, the new page should be added to the shadow
  object rather than replacing the old page in the backing object.  (i.e.
  vm_page_cowfault() should not be called in this case.)  We accomplish
  this by making sure fs.object == fs.first_object before calling
  vm_page_cowfault() in vm_fault().

Submitted by:	gallatin, alc
Tested by:	ken
2003-03-08 06:58:18 +00:00
..
default_pager.c
device_pager.c Cleanup of the d_mmap_t interface. 2003-02-25 03:21:22 +00:00
phys_pager.c
pmap.h Cleanup of the d_mmap_t interface. 2003-02-25 03:21:22 +00:00
swap_pager.c
swap_pager.h
uma_core.c Replace calls to WITNESS_SLEEP() and witness_list() with equivalent calls 2003-03-04 21:03:05 +00:00
uma_dbg.c
uma_dbg.h
uma_int.h
uma.h
vm_contig.c
vm_extern.h
vm_fault.c Zero copy send and receive fixes: 2003-03-08 06:58:18 +00:00
vm_glue.c
vm_init.c
vm_kern.c
vm_kern.h
vm_map.c Remove ENABLE_VFS_IOOPT. It is a long unfinished work-in-progress. 2003-03-06 03:41:02 +00:00
vm_map.h Remove ENABLE_VFS_IOOPT. It is a long unfinished work-in-progress. 2003-03-06 03:41:02 +00:00
vm_meter.c
vm_mmap.c
vm_object.c Remove ENABLE_VFS_IOOPT. It is a long unfinished work-in-progress. 2003-03-06 03:41:02 +00:00
vm_object.h Remove ENABLE_VFS_IOOPT. It is a long unfinished work-in-progress. 2003-03-06 03:41:02 +00:00
vm_page.c Teach vm_page_sleep_if_busy() to release the vm_object lock before sleeping. 2003-03-01 19:16:32 +00:00
vm_page.h
vm_pageout.c
vm_pageout.h
vm_pageq.c
vm_pager.c - Add an interlock argument to BUF_LOCK and BUF_TIMELOCK. 2003-02-25 03:37:48 +00:00
vm_pager.h
vm_param.h
vm_swap.c Provide a mac_check_system_swapoff() entry point, which permits MAC 2003-03-05 23:50:15 +00:00
vm_unix.c
vm_zeroidle.c
vm.h
vnode_pager.c Remove ENABLE_VFS_IOOPT. It is a long unfinished work-in-progress. 2003-03-06 03:41:02 +00:00
vnode_pager.h