Commit Graph

265 Commits

Author SHA1 Message Date
thorpej
433c3cae0f Pull thorpej-bus-dma branch into mainline. 1997-06-06 23:10:23 +00:00
gwr
09da7e273e Eliminate vmspace.vm_pmap and all references to it unless
__VM_PMAP_HACK is defined (for temporary compatibility).
The __VM_PMAP_HACK code should be removed after all the
ports that define it have removed all vm_pmap references.
1997-05-16 21:39:50 +00:00
thorpej
e73580920d Change to not require including <sys/dmap.h> 1997-04-17 00:12:50 +00:00
thorpej
27b49a0ede XXX Kludge for PowerPC; need to use kernel vfprintf(). 1997-04-17 00:12:08 +00:00
thorpej
90ece8ebcb Declare dmmin, dmmax, swapmap, and nswapmap here. 1997-04-17 00:08:50 +00:00
mycroft
448427b7ba Document a requirement of vm_object_bypass(). 1997-04-08 22:35:49 +00:00
mycroft
69e0aacce3 Remove the `backing_object still referenced' panic, since there's an expected
race with vnode_pager_sync().
1997-04-07 01:57:14 +00:00
mycroft
3a474fa002 Remove a printf() that's no longer needed. 1997-03-03 20:56:12 +00:00
mycroft
700dee447e DTRT if vm_object_lookup() returns NULL. This may happen while an object is
being created or destroyed.
1997-02-27 17:49:05 +00:00
tls
fad978b853 a mutex on vnode_pager_sync avoids another race condition, only possible if sync were called again while we were sleeping. This should be the last of this nest of bugs. From mycroft. 1997-02-26 02:26:19 +00:00
thorpej
cbb4319fb9 vm_object_shadow(): Add a DIAGNOSTIC check for shadowing a null object.
From Charles Hannum <mycroft@netbsd.org>
1997-02-25 23:28:09 +00:00
thorpej
a49641e340 vm_map_copy_entry(): Don't set "needs_copy" on a zero-fill entry.
From Charles Hannum <mycroft@netbsd.org>
1997-02-25 23:27:08 +00:00
thorpej
7327c8cf62 From Charles Hannum:
During a collapse, abort if the object is paging; the pagedaemon can
trigger a collapse, causing deadlock.  (XXX)
1997-02-24 22:19:26 +00:00
mrg
82f19ac36c lite2 1997-02-23 09:58:53 +00:00
mrg
3b9c3fff2e restructure vm_object_overlay() to collapse objects in more cases.
change one diag panic() to a diag printf().  from mycroft.
1997-02-23 09:01:37 +00:00
mrg
8eba4aeacb don't clean fading objects. from mycroft. 1997-02-23 08:56:57 +00:00
thorpej
a49beaa16a Possesive, Jason... possesive.... 1997-02-22 04:36:48 +00:00
thorpej
75be8504f4 More good stuff from Charles:
Eliminate a nasty race condition in vnode_pager_sync() by making
two passes.  First, find all of the objects to be cleaned and reference
them.  Second, traverse this list objects, cleaning them if there are
references other than us.
1997-02-22 04:11:42 +00:00
thorpej
255b9d74d8 Rewrite the object chain collapse code. Bugs fixed are too numerous
to describe here.  This should fix the problems with "hanging processes"
people have seen since the original object collapse code was committed.

From Charles Hannum <mycroft@netbsd.org>
1997-02-21 20:30:49 +00:00
thorpej
235a2d71f7 Use vm_object_paging() to test if an object has pages in transit.
From Charles Hannum <mycroft@netbsd.org>
1997-02-21 20:27:21 +00:00
thorpej
dd8d0f1f00 Define a macro to test if an object has pages in transit. Clarify
some arithmetic, and nuke an unneeded prototype.

From Charles Hannum <mycroft@netbsd.org>.
1997-02-21 20:26:03 +00:00
thorpej
17b60fc6e9 In vnode_pager_sync(), we need to vm_object_deallocate() after cleaning
pages.  Noticed by Thor Simon <tls@netbsd.org>, confirmed by
Charles Hannum <mycroft@netbsd.org>
1997-02-21 20:22:39 +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
tls
127c6b54e7 Sigh. I initially had this exactly backwards: the object needs to be locked, the vnode does *not*. Avoids panic: locking against myself quickly reported by Charles. 1997-02-17 13:10:28 +00:00
tls
a507fda378 vnode_pager_sync bugs: A) must lock the object, not just the vnode. B) Don't remove the object from paging queues, because we'd have to put it back on one. The pagedaemon will eventually take care of this for us anyway. This was causing us to *lose track of pages completely* every time vnode_pager_sync() was called... sigh. Credit goes to mycroft for untangling this mess. 1997-02-17 06:22:52 +00:00
tls
4b1213d27c sync needs to clean VM objects backed by vnode pagers 1997-02-13 02:54:06 +00:00
mrg
491e8af174 minor KNF from jason. 1997-02-05 08:26:25 +00:00
mrg
eadd7792d9 add thread_sleep_msg() that takes a wait message, and change thread_sleep()
into a macro for backwards compat.  alter vm_object_sleep() to take advantage
of this.
1997-02-05 08:09:45 +00:00
mrg
85328f7b35 KNF. 1997-02-05 07:48:42 +00:00
thorpej
593fdd462d NFSCLIENT -> NFS 1997-01-31 03:06:06 +00:00
thorpej
b7a5b84750 Treat the nswdev == 0 case like the nswap == 0 case; don't panic, just
report no swap space.  Suggested by Leo Weppleman <leo@netbsd.org>.
1997-01-22 07:28:21 +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
f3d9c468e1 minor KNF changes. 1997-01-03 18:00:25 +00:00
cgd
8a3333b2a9 Fix an inconsistency that came in with Lite: setrq() was renamed to
setrunqueue(), but remrq() was never renamed.  Rename remrq() to
remrunqueue().
1996-11-06 20:19:19 +00:00
cgd
ee08818e7a Fix an inconsistency that came in with Lite: setrq() was renamed to
setrunqueue(), but remrq() was never renamed.  Rename remrq() to
remrunqueue().  Also, move remrunqueue() prototype from vm/vm_extern.h
to sys/proc.h, so that it's in the same place as the setrunqueue() prototype
and other related prototypes.
1996-11-06 19:33:39 +00:00
gwr
f5927ca260 Minor nit in my change regarding const and non-ansi code... 1996-10-27 21:50:33 +00:00
gwr
2ada6af51b Oops, part of that last commit was not meant to go in.
The definitions of va_alist, va_dcl belong elsewhere.
1996-10-27 20:50:00 +00:00
gwr
a0d9bd5bb2 The hack-ish tricks to make the ANSI-style va_start macro work in
non-ANSI mode were not quite complete.  This makes non-ANSI work.
Perhaps it would be better to eliminate this hack altogether...
1996-10-27 20:30:52 +00:00
matthias
3ff0c0553e * The kernel-stack no longer needs to be wired-down on the pc532. 1996-10-23 07:20:09 +00:00
perry
9ab047883b Fix unused variable -Wxxx failure when MINIROOTSIZE defined. 1996-10-21 01:32:38 +00:00
christos
3dc7953eec back out previous kprintf changes 1996-10-12 21:50:05 +00:00
christos
de1b2b437e printf -> kprintf, sprintf -> ksprintf 1996-10-10 17:16:17 +00:00
ws
2da166f660 Fix p_nice vs. NZERO code.
Change NZERO to 20 to always make p_nice positive.
On Christos' suggestion make p_nice explicitly u_char.
1996-10-02 18:04:56 +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
cgd
62034405e6 allow kmem_malloc to return NULL if canwait is set and there's no map space
left, rather than panic()ing.  This allows callers to set their own policy
for how to handle the shortage.  Add a few comments.
1996-06-13 16:52:06 +00:00
pk
7acbd9511d Make v_swpin & v_swpout tick. 1996-05-29 21:20:11 +00:00
mrg
047dfa8524 count pagein faults in struct user. (from kenneth stailey pr#1397]) 1996-05-20 17:40:02 +00:00
ragge
621153ce0e The unexpected remove of active kstack does happen on vax also,
not only on pc532. I've verivied that this "fix" work.
1996-05-19 10:00:38 +00:00
christos
a818b81625 Added missing prototypes from <sys/cpu.h> 1996-04-23 12:25:23 +00:00
pk
37a292dea0 Make prototyping of most functions conditional on `PMAP_EXCLUDE_DECLS'.
This allows MD pmap.h to implement access to those functions via pointers.
1996-03-31 22:15:32 +00:00