freebsd-nq/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 Back out DIAGNOSTIC changes. 1998-02-06 12:14:30 +00:00
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 Back out DIAGNOSTIC changes. 1998-02-06 12:14:30 +00:00
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 Attempt to fix the previous fix to the contigmalloc1 prototype. 1997-10-11 10:39:19 +00:00
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 level code cleanups. 1998-01-22 17:30:44 +00:00
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 level code cleanups. 1998-01-22 17:30:44 +00:00
vm_pager.c Some VM improvements, including elimination of alot of Sig-11 1998-03-16 01:56:03 +00:00
vm_pager.h This mega-commit is meant to fix numerous interrelated problems. There 1998-03-07 21:37:31 +00:00
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 Move the "retval" (3rd) parameter from all syscall functions and put 1997-11-06 19:29:57 +00:00
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 In the author's words: 1998-02-26 06:39:59 +00:00