Commit Graph

29 Commits

Author SHA1 Message Date
fvdl e5bc90f40c Merge with Lite2 + local changes 1998-03-01 02:20:01 +00:00
ross c297f000b7 NFS swap fix. Most files here are modified purely to add a tsleep() wmesg
string. The actual functional changes are:

	1. in vm_page_alloc(), restore some long lost code by Paul Kranenburg
	that reserves the last few pages for kernel objects, adding an
	additional escape for the pageout daemon.

	2. In vm_wait() (replaces VM_WAIT), recognize the amusing fatal
	deadlock where the pagedemon sleeps on a channel that only it ever
	wakes up, and add a timeout and printf. Mod 1 should generally
	prevent this from happening in any case.

	3. Fix a livelock in vm_pageout_page() caused by a pre-wakeup of
	page consumers prior to the pageout, which can easily fail over
	memory issues in NFS and IP code. Also, ++ cnt.v_pageouts only
	if the pageout succeeded.
1998-01-31 04:02:39 +00:00
pk 9bec4e7918 Don't hold on to object and queue locks while sleeping. 1997-09-07 20:41:59 +00:00
mrg 42ae012452 This is all from mycroft:
Create macros (with names borrowed from Mach 3) to manipulate
object->paging_in_progress, and use them.  When decreasing the
paging count, always make sure to wake up anyone waiting.
Fixes `vospgc', `vosca1', and `vosca2' hangs.
1997-02-18 13:39:31 +00:00
mrg 4f2a217c2b pull up vm_object_collapse() fix from mrg_vm_object_collapse branch.
many thanks to niklas hallqvist (niklas@appli.se) for this.
1997-01-03 18:03:14 +00:00
mrg 2fc2b98d83 make pageout sleep on vm_pages_needed rather than lbolt. this stops
pathological behaviour (freezes) when running short of free pages.  see
PR#2755 for a more detailed explanation (from jonathan).

thanks to john dyson for the first cut of this change.
1996-09-18 02:04:50 +00:00
christos bcabcefdcd VM prototype changes 1996-02-05 01:53:47 +00:00
cgd cfbb9c7cfe no longer needs machine/cpu.h, and use new name for the 'broken swap' define 1995-06-28 02:58:51 +00:00
cgd 7bd5b4bfa8 oops; vm_pageout.c should include machine/cpu.h, _not_ vm_pager.c 1995-05-07 19:27:27 +00:00
cgd 0b2ce5d881 delete some cruft, don't swap if BROKEN_SWAP defined, call cpu_swapout rather than #ifdef 1995-05-05 03:35:39 +00:00
cgd 2d8771217f can move FALSE up a line. 1995-01-09 01:33:17 +00:00
cgd 0a930e5ce6 redo that last change, correctly. (suggested by mycroft.) 1994-10-30 19:11:09 +00:00
cgd aa151f86b3 change some strategic casts to (*long) from (*int). 1994-10-29 07:35:04 +00:00
cgd fccfa11af5 New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:39:25 +00:00
cgd 9608c5b657 clean up slightly; change RCS ID's to be minimally intrusive 1994-06-27 04:55:46 +00:00
cgd 3495827959 new VM code, from 4.4-Lite 1994-05-23 03:11:20 +00:00
cgd 11b6c06344 no need to include <sys/vmmeter.h> 1994-05-21 04:00:13 +00:00
mycroft 31393b8acd Rearrange some code, and fix a condition where the pageout scanner would start
grabbing pages from the active queue.
1994-05-05 20:35:11 +00:00
cgd e937bc9bfd convert vm system to use new queues. I'll never write code w/queues again. 1994-04-15 07:04:03 +00:00
cgd 70dabb7d43 don't be so agressive w/renaming, clean for consistency, types in one place. 1994-03-17 02:51:57 +00:00
mycroft d77a163cac Kill third arg to thread_sleep(). It's always false and isn't used anyway. 1994-01-07 22:22:20 +00:00
mycroft a8dc1eb25a Add an explicit return type. 1994-01-07 18:14:07 +00:00
cgd c26286a5c1 bring changes down from magnum 1993-12-20 12:39:55 +00:00
mycroft b4d3382694 Canonicalize all #includes. 1993-12-17 07:56:32 +00:00
cgd 95e5868ee2 allow an offset to *really* be passed in for mmap's on devices.
From Julian Elischer.
1993-10-02 00:00:21 +00:00
cgd cc5e8e00d5 add rcs ids and clean up headers 1993-05-20 03:59:08 +00:00
cgd 3cec79bb72 add counters for vmstat 1993-05-07 07:12:43 +00:00
cgd e541169ce2 after 0.2.2 "stable" patches applied 1993-03-21 18:04:42 +00:00
cgd 61f282557f initial import of 386bsd-0.1 sources 1993-03-21 09:45:37 +00:00