freebsd-dev/sys/vm
John Polstra 9b35a0d694 Fix a panic on SMP systems, caused by sleeping while holding a
simple-lock.

The reviewer raises the following caveat: "I believe these changes
open a non-critical race condition when adding memory to the pool
for the zone. I think what will happen is that you could have two
threads that are simultaneously adding additional memory when the
pool runs out. This appears to not be a problem, however, since
the re-aquisition of the lock will protect the list pointers."
The submitter agrees that the race is non-critical, and points out
that it already existed for the non-SMP case.  He suggests that
perhaps a sleep lock (using the lock manager) should be used to
close that race.  This might be worth revisiting after 3.0 is
released.

Reviewed by:	dg (David Greenman)
Submitted by:	tegge (Tor Egge)
1998-10-09 00:24:49 +00:00
..
default_pager.c
default_pager.h
device_pager.c Cast pointers to uintptr_t/intptr_t instead of to u_long/long, 1998-07-15 02:32:35 +00:00
pmap.h Notify pmap when a page is freed on the alpha to allow it to clean up 1998-07-26 18:15:20 +00:00
swap_pager.c Cosmetic changes to the PAGE_XXX macros to make them consistent with 1998-09-04 08:06:57 +00:00
swap_pager.h Removed no longer valid comment about swb_block being int instead of 1998-07-10 21:50:17 +00:00
vm_extern.h This commit fixes various 64bit portability problems required for 1998-06-07 17:13:14 +00:00
vm_fault.c Cosmetic changes to the PAGE_XXX macros to make them consistent with 1998-09-04 08:06:57 +00:00
vm_glue.c Make #define NO_SWAPPING a normal kernel config option. 1998-09-29 17:33:59 +00:00
vm_inherit.h
vm_init.c
vm_kern.c Cosmetic changes to the PAGE_XXX macros to make them consistent with 1998-09-04 08:06:57 +00:00
vm_kern.h
vm_map.c Fix a bug in which a page index was used where a byte offset was 1998-10-01 20:46:41 +00:00
vm_map.h
vm_meter.c Change various syscalls to use size_t arguments instead of u_int. 1998-08-24 08:39:39 +00:00
vm_mmap.c Cosmetic changes to the PAGE_XXX macros to make them consistent with 1998-09-04 08:06:57 +00:00
vm_object.c Be more selctive about when we clear p->valid. 1998-09-28 02:40:11 +00:00
vm_object.h Change various syscalls to use size_t arguments instead of u_int. 1998-08-24 08:39:39 +00:00
vm_page.c Cosmetic changes to the PAGE_XXX macros to make them consistent with 1998-09-04 08:06:57 +00:00
vm_page.h Cosmetic changes to the PAGE_XXX macros to make them consistent with 1998-09-04 08:06:57 +00:00
vm_pageout.c Make #define NO_SWAPPING a normal kernel config option. 1998-09-29 17:33:59 +00:00
vm_pageout.h
vm_pager.c
vm_pager.h
vm_param.h There is a comment in vm_param.h which doesn't belong to the 1998-07-22 06:21:55 +00:00
vm_prot.h
vm_swap.c There is no such thing any more as "struct bdevsw". 1998-07-04 22:30:26 +00:00
vm_unix.c
vm_zone.c Fix a panic on SMP systems, caused by sleeping while holding a 1998-10-09 00:24:49 +00:00
vm_zone.h Correct copyright. 1998-04-25 04:50:03 +00:00
vm.h
vnode_pager.c John Dyson approved of this solution; make vnode_pager_input_old set m->valid 1998-09-28 23:58:10 +00:00
vnode_pager.h