freebsd-skq/sys/vm
John Baldwin 664f718ba1 - Always call faultin() in _PHOLD() if PS_INMEM is clear. This closes a
race where a thread could assume that a process was swapped in by
  PHOLD() when it actually wasn't fully swapped in yet.
- In faultin(), always msleep() if PS_SWAPPINGIN is set instead of doing
  this check after bumping p_lock in the PS_INMEM == 0 case.  Also,
  sched_lock is only needed for setting and clearning swapping PS_*
  flags and the swap thread inhibitor.
- Don't set and clear the thread swap inhibitor in the same loops as the
  pmap_swapin/out_thread() since we have to do it under sched_lock.
  Instead, mimic the treatment of the PS_INMEM flag and use separate loops
  to set the inhibitors when clearing PS_INMEM and clear the inhibitors
  when setting PS_INMEM.
- swapout() now returns with the proc lock held as it holds the lock
  while adjusting the swapping-related PS_* flags so that the proc lock
  can be used to test those flags.
- Only use the proc lock to check the swapping-related PS_* flags in
  several places.
- faultin() no longer requires sched_lock to be held by callers.
- Rename PS_SWAPPING to PS_SWAPPINGOUT to be less ambiguous now that we
  have PS_SWAPPINGIN.
2003-04-22 20:00:26 +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 - Add vm_paddr_t, a physical address type. This is required for systems 2003-03-25 00:07:06 +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 - Kill the pv_flags member of the alpha mdpage since it stop being used 2003-04-10 18:42:06 +00:00
swap_pager.c - Lock the vm_object when performing vm_object_pip_add(). 2003-04-20 07:08:30 +00:00
swap_pager.h Remove unused declarations. 2003-04-22 06:26:42 +00:00
uma_core.c Lock the vm_object in obj_alloc(). 2003-04-19 00:30:36 +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
uma.h Back out M_* changes, per decision of the TRB. 2003-02-19 05:47:46 +00:00
vm_contig.c Update locking on the kernel_object to use the new macros. 2003-04-14 00:36:53 +00:00
vm_extern.h - Add vm_paddr_t, a physical address type. This is required for systems 2003-03-25 00:07:06 +00:00
vm_fault.c - Lock the vm_object when performing vm_object_pip_wakeup(). 2003-04-20 19:25:28 +00:00
vm_glue.c - Always call faultin() in _PHOLD() if PS_INMEM is clear. This closes a 2003-04-22 20:00:26 +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 Update locking on the kmem_object to use the new macros. 2003-04-15 01:16:05 +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 - Update the vm_object locking in vm_map_insert(). 2003-04-20 21:56:40 +00:00
vm_map.h - When the VM daemon is out of swap space and looking for a 2003-03-12 23:13:16 +00:00
vm_meter.c Lock some manipulations of the vm object's flags. 2003-04-13 19:36:18 +00:00
vm_mmap.c suser() does not need the proc lock, just the setting of P_PROTECTED in 2003-04-17 22:38:27 +00:00
vm_object.c - Assert that the vm_object is locked in vm_object_clear_flag(), 2003-04-21 06:33:52 +00:00
vm_object.h Add VM_OBJECT_LOCKED(). 2003-04-22 04:47:29 +00:00
vm_page.c Revision 1.246 should have also included 2003-04-22 14:26:02 +00:00
vm_page.h - Add vm_paddr_t, a physical address type. This is required for systems 2003-03-25 00:07:06 +00:00
vm_pageout.c - Lock the vm_object when performing vm_object_pip_wakeup(). 2003-04-20 20:37:14 +00:00
vm_pageout.h Make vm_pageout_page_free() static. 2003-01-14 02:28:39 +00:00
vm_pageq.c - Add vm_paddr_t, a physical address type. This is required for systems 2003-03-25 00:07:06 +00:00
vm_pager.c Remove GIANT_REQUIRED from getpbuf(). Reviewed by: tegge 2003-04-05 21:01:16 +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 Rename a static variable to avoid future conflicts. 2003-04-04 12:08:42 +00:00
vm.h Change the way ELF coredumps are handled. Instead of unconditionally 2002-12-16 19:24:43 +00:00
vnode_pager.c Update locking around vm_object_page_remove() to use the new macros. 2003-04-18 16:39:03 +00:00
vnode_pager.h Remove __P. 2002-03-19 22:20:14 +00:00