freebsd-src/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 Remove references to vm_zone.h and switch over to the new uma API. 2002-03-20 04:02:59 +00:00
device_pager.c Cleanup of the d_mmap_t interface. 2003-02-25 03:21:22 +00:00
phys_pager.c Increase the scope of the page queues lock in phys_pager_getpages(). 2002-12-27 06:09:56 +00:00
pmap.h Cleanup of the d_mmap_t interface. 2003-02-25 03:21:22 +00:00
swap_pager.c Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
swap_pager.h Make struct swblock kernel only, to make vm/swap_pager.h userland includable. 2003-01-03 16:23:12 +00:00
uma.h Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
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 atomic_set_8 isn't MI. Instead, follow Jake's suggestions about 2002-11-11 11:50:03 +00:00
uma_dbg.h - Use my freebsd email alias in the copyright. 2002-09-19 06:05:32 +00:00
uma_int.h - Add support for machine dependant page allocation routines. MD code 2002-11-01 01:01:27 +00:00
vm.h Change the way ELF coredumps are handled. Instead of unconditionally 2002-12-16 19:24:43 +00:00
vm_contig.c - Hold the kernel_object's lock around vm_page_insert(..., kernel_object, 2002-12-23 20:39:15 +00:00
vm_extern.h use 'void *' instead of 'caddr_t' for useracc, kernacc, vslock and vsunlock. 2003-01-21 11:34:57 +00:00
vm_fault.c Zero copy send and receive fixes: 2003-03-08 06:58:18 +00:00
vm_glue.c use 'void *' instead of 'caddr_t' for useracc, kernacc, vslock and vsunlock. 2003-01-21 11:34:57 +00:00
vm_init.c Move the definitions of the hw.physmem, hw.usermem and hw.availpages 2002-11-07 23:57:17 +00:00
vm_kern.c Allow kmem_malloc() without Giant if M_NOWAIT is specified. 2003-01-04 19:26:35 +00:00
vm_kern.h Move kernel_vm_end's declaration to pmap.h; add a comment regarding the 2003-02-15 19:38:23 +00:00
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 Make 'sysctl vm.vmtotal' work properly using updated patch from Hiten. 2003-01-11 07:29:47 +00:00
vm_mmap.c Bow to the whining masses and change a union back into void *. Retain 2003-01-13 00:33:17 +00:00
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 - Remove vm_page_sleep_busy(). The transition to vm_page_sleep_if_busy(), 2002-12-19 07:23:46 +00:00
vm_pageout.c Add a comment describing how pagedaemon_wakeup() should be used and 2003-02-09 20:40:36 +00:00
vm_pageout.h Make vm_pageout_page_free() static. 2003-01-14 02:28:39 +00:00
vm_pageq.c Remove GIANT_REQUIRED from vm_pageq_remove(). 2003-02-16 06:36:48 +00:00
vm_pager.c - Add an interlock argument to BUF_LOCK and BUF_TIMELOCK. 2003-02-25 03:37:48 +00:00
vm_pager.h Allow the VM object flushing code to cluster. When the filesystem syncer 2002-12-28 21:03:42 +00:00
vm_param.h Rev 1.16 renamed VM_METER to VM_TOTAL. This is breaking 3rd-party apps. 2003-01-18 21:14:02 +00:00
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 Use the fields in the sysentvec and in the vm map header in place of the 2002-09-21 22:07:17 +00:00
vm_zeroidle.c - Create a new scheduler api that is defined in sys/sched.h 2002-10-12 05:32:24 +00:00
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 Remove __P. 2002-03-19 22:20:14 +00:00