thorpej
657f118b7f
Update the status of a couple of items here... specifically, more aggressive
...
object collapse (DONE), machine-dependent hook for virtual memory allocation
(DONE - PMAP_PREFER()), and better coherency between page and buffer
caches (A LITTLE BETTER - we sync up the vnode pager in the sync(2)
system call now).
1997-06-26 01:02:07 +00:00
mrg
781dfea84f
back out previous. look in unistd.h.
1997-06-23 01:15:03 +00:00
christos
796badce6b
PR/3772: Matthias Scheler: Missing swapctl prototype.
1997-06-22 19:35:55 +00:00
pk
98ce8ab879
Remove __FORK_BRAINDAMAGEd code; it's no longer needed.
1997-06-19 20:54:15 +00:00
thorpej
3bd11220b6
Don't print a message if the user attempts SWAP_OFF. Return an error
...
instead.
1997-06-17 03:37:07 +00:00
thorpej
c61704d37c
Remove the code that sets dumpdev, for two reasons:
...
- It was incorrect. A dev_t should _never_ be compared against
NULL, as 0 is a valid value (major 0, minor 0).
- The operator mave have _intentionally_ set dumpdev to "none"
(i.e. NODEV), and setting it the first time a VBLK swap device
is added would break the semantics.
setroot() deals with all dump device selection. Dumps and swap are now
in no way related.
1997-06-16 20:21:55 +00:00
mrg
c78d0720ff
- set dumpdev if not already set
...
- don't use nocoalease (from thorpej).
- fix priority list management (from pk).
- update comment for swapoff.
- free swap device extent name safely (from thorpej).
1997-06-16 13:35:17 +00:00
pk
e5b0a8820b
As long as we actually use `swapdev_vp', initialize it.
1997-06-13 15:37:17 +00:00
mrg
21cc3ddfd5
bring mrg-vm-swap2 onto mainilne.
1997-06-12 14:51:20 +00:00
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
christos
ff63e6c744
Change %r -> %: as for recursive printf's
1996-03-30 21:50:45 +00:00
christos
3cc52443b5
Fix vm_offset_t (unsigned long) and vm_size_t (unsigned long) printf arguments
...
to %lx and %ld instead of %x and %d.
1996-03-16 23:15:18 +00:00
gwr
f6925cfbf3
Replace vm_object_prefer with PMAP_PREFER.
1996-02-28 22:39:13 +00:00
gwr
fdb309615e
Remove vm_object_prefer. VM code now calls PMAP_PREFER directly.
1996-02-28 22:35:35 +00:00
mycroft
8d110517c8
We no longer need the old hack for allocating the u-area on the i386.
1996-02-18 22:53:43 +00:00
christos
c048d7ba68
fix a printf warning and add pmap_page_index declaration
1996-02-12 21:51:52 +00:00
christos
d0fd3d7e62
Don't declare pmap_page_index for now. It will break the arm port.
...
This clearly needs to be fixed. I would like to declare it:
__pure u_int pmap_page_index __P((vm_offset_t));
but at least the arm port wants it signed [since it tests for -1 all over
the place]. Can we have this fixed please?
1996-02-10 00:30:39 +00:00
christos
b7b8db60ac
change pmap_page_index to return __pure u_int, like in the majority of
...
the ports
1996-02-10 00:20:09 +00:00
christos
03b1ad4cb4
One more cleanup pass to change %x to %p for pointers
1996-02-10 00:07:59 +00:00
christos
46d49e500e
Account for __FORK_BRAINDAMAGE..
1996-02-05 20:32:25 +00:00
christos
bcabcefdcd
VM prototype changes
1996-02-05 01:53:47 +00:00
christos
bac60f4e4e
Remove unused argument from vsunlock
1996-02-04 02:09:41 +00:00
mycroft
fbb022ab48
Trivial change for consistency.
1996-01-31 03:11:16 +00:00
mycroft
ebfe9ee154
Minor changes.
1995-12-21 04:44:27 +00:00
mycroft
fee1a345eb
Only expect vm_fork() to return if __FORK_BRAINDAMAGE is defined.
...
Eliminate unused third arg to vm_fork().
1995-12-09 04:28:16 +00:00
pk
785c98a0cc
Oops.
1995-12-06 00:38:11 +00:00
pk
801712f01a
Extend use of vm_object_prefer() to vm_allocate_with_pager().
...
Make vm_object_prefer() call MD aligner for "pageless" objects too,
so we can have more control over the virtual address to be used.
Implementation could be simpler if we by-pass the object to mapped, but
we'd loose the ability to adapt alignment to objects that were previously
mmap'ed with MAP_FIXED on.
1995-12-05 22:54:36 +00:00
mycroft
2dd293d3c3
Add hooks for COMPAT_FREEBSD, from Noriyuki Soda.
1995-10-10 01:26:36 +00:00
mycroft
245f292fed
Prefix names of system call implementation functions with `sys_'.
1995-10-07 06:25:19 +00:00
thorpej
fbbf585f72
Remove spurious (and incorrect) prototype for swapon(), pointed out
...
by Chris Demetriou.
1995-09-27 20:30:17 +00:00
thorpej
7160dfc805
Make system calls conform to a standard prototype and bring those
...
prototypes into scope.
1995-09-19 21:57:36 +00:00
gwr
5520ccdbf9
Preserve miniroot when (swdevt[i].sw_vp == rootvp)
1995-09-18 21:21:00 +00:00
mycroft
67daa4706d
Add PHOLD() and PRELE() macros, used to hold a process in core and release it.
1995-08-13 09:04:43 +00:00
cgd
4ec7eec85b
don't forget the 'dev' argument to physio(). pointed out by der Mouse
...
and others.
1995-07-19 13:04:02 +00:00
pk
7ac7bdf204
Unlock internal objects too in vm_object_terminate().
1995-07-13 12:35:29 +00:00
cgd
21d1e8d60f
fix bug in load average calculation that prevented processes which were
...
uninterruptibly sleeping for a short period from being counted.
1995-07-08 03:12:22 +00:00
mycroft
7263209ce6
Make each disk and tape driver define its own read and write functions.
...
Deprecate rawread() and rawwrite() completely. Remove d_strategy from cdevsw to
force the abstraction barrier.
1995-07-04 07:15:28 +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
leo
f205966027
The atari specific code can be removed now it is using MACHINE_NONCONTIG.
1995-06-26 14:40:11 +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
cf08de5cf0
needs machine/cpu.h
1995-05-07 16:22:40 +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
mycroft
5f41ce9281
Correct checks for NULLs in pagertab.
1995-04-15 05:11:35 +00:00
mycroft
68c8c80929
kernel_pmap --> pmap_kernel()
1995-04-10 16:48:27 +00:00
briggs
6efcd1b6d4
KERNEL -> _KERNEL
1995-03-29 21:57:43 +00:00
cgd
9141ec70a1
change needed for atari; recycle some code for the i386 that was in Lite
...
that we don't use, but is used by the atari now. (it should change
to MACHINE_NONCONTIG, too...)
1995-03-27 09:09:05 +00:00
jtc
f76f1f89ad
KERNEL -> _KERNEL
1995-03-26 20:35:13 +00:00
mycroft
57e6889435
Make memory map syscalls consistently use size_t.
1995-03-09 17:28:28 +00:00
cgd
94d77171f9
need compat_43_getpagesize on COMPAT_OSF1
1995-03-08 01:46:53 +00:00
mycroft
3d869b0608
Fix two off-by-one errors.
1995-01-09 17:36:48 +00:00
cgd
70f70a3122
make grow's arguments type-correct.
1995-01-09 02:48:03 +00:00
cgd
4b5b562e89
turn spaces to tabs
1995-01-09 02:47:38 +00:00
cgd
d158991669
don't wrap lines
1995-01-09 02:47:23 +00:00
cgd
1af9a586a5
fix vm_page_startup's return type, kill an odd 'register'
1995-01-09 02:46:41 +00:00
cgd
86095ef7e6
no need to have two lines of arguments here.
1995-01-09 02:45:47 +00:00
cgd
688a174a72
move munmapfd into the correct section, make grow take a proper argument.
1995-01-09 02:45:29 +00:00
cgd
2d8771217f
can move FALSE up a line.
1995-01-09 01:33:17 +00:00
cgd
b1f6bfa080
kill extraneous label
1995-01-09 01:30:46 +00:00
pk
3e4bf211c6
Use vm_object_prefer() to find a good range of virtual addresses to
...
map a memory object to.
1994-12-10 11:48:12 +00:00
pk
d114baba9a
Introduce vm_object_prefer(), which interrogates the PMAP layer in search
...
for an optimal virtual address for a given object.
1994-12-10 11:46:25 +00:00
mycroft
331b95bd8a
Garbage collect unneeded variable.
1994-12-01 15:39:17 +00:00
gwr
1a7920257d
Make sure vm_mmap creates mappings with page-aligned file offsets.
...
Handle non-aligned file offsets in the mmap/munmap system calls.
1994-12-01 00:23:11 +00:00
gwr
0a0c02cd38
Allow vm_page_array to have holes in it so systems that use
...
MACHINE_NONCONTIG can use a fast, simple pmap_page_index().
1994-12-01 00:19:57 +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
6b86130410
update for new syscall args description mechanism
1994-10-20 04:22:35 +00:00
cgd
4eb752cd51
make the "wait on swbuf" message SDB_IO -- it's I/O related, and it's
...
not at all anomalous (and bloody annoying!) on 4M machines.
1994-10-18 06:42:28 +00:00
mycroft
ab9caa0e9a
Fix the munmapfd() prototype, too.
1994-09-16 02:01:49 +00:00
mycroft
d5fdf729f2
All of the users of munmapfd() expect to pass it
...
two args. Make it work correctly.
1994-09-16 01:57:57 +00:00
mycroft
6dd2f9eed2
vm_object_page_clean() expects to be able to use vm_page_deactivate() on a
...
locked page. Make that work. This also obviates the need for vm_fault() to
bogusly activate a page before deactivating it. Finally, make sure the
semantics of vm_object_deactive_pages() don't change.
1994-09-07 20:25:07 +00:00
mycroft
2f710a54ee
Convert process, file, and namei lists and hash tables to use queue.h.
1994-08-30 03:04:28 +00:00
deraadt
72b3d408b9
replace "ctob(UPAGES)" and "UPAGES * NBPG" with "USPACE"
1994-08-23 22:07:42 +00:00
mycroft
fe18d806d2
Don't panic if primary swap device is not configured.
1994-07-21 07:12:13 +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
e4c9e4b2cd
these were supposed to be written in C; they should follow its syntax
1994-06-27 04:03:15 +00:00
pk
bccc2c3c1b
straighten out diskless swap code somewhat.
1994-06-22 14:01:45 +00:00
cgd
bf43549e44
fix a thinko that kept msync from working if no size specified.
1994-06-20 00:17:28 +00:00
mycroft
0d8affb278
Turn P_NOSWAP and P_PHYSIO into a hold count, as suggested by a comment.
1994-06-15 19:59:21 +00:00
pk
11ebd2e9c8
#ifdef FIFO's
1994-06-13 16:31:54 +00:00
pk
5d4bd29314
Check for all NFS related vnode ops.
1994-06-10 20:01:20 +00:00
mycroft
264b874c14
Update to 4.4-Lite fs code, with local changes.
1994-06-08 11:41:58 +00:00
mycroft
9eb7a8a711
Fix minor NFS glitch introduced with new VM code.
1994-05-30 13:10:06 +00:00
pk
7672b8b95b
New style core dumps.
1994-05-25 10:56:56 +00:00
cgd
0094e3719e
change warnings
1994-05-24 01:07:50 +00:00
mycroft
5a9d09c5d5
Clean up deleted files.
1994-05-23 03:12:14 +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
72edd4b918
For MAP_ANON, force the file offset to 0. I can't think of any any bad side
...
effects of this, and it fixes an interesting bug.
1994-05-19 18:03:04 +00:00
cgd
207339d53d
define maxdmap and maxsmap
1994-05-19 08:08:46 +00:00
cgd
c6abdc2054
setrq -> setrunqueue, sched -> scheduler
1994-05-13 00:50:41 +00:00
cgd
6fea3fab9a
oops; spaces at ends of lines, etc.
1994-05-11 01:01:03 +00:00
cgd
904bdb2ea9
sysctl
1994-05-07 00:40:07 +00:00
cgd
ca14e4af10
stubs
1994-05-07 00:39:58 +00:00
cgd
d0a066a438
functions soon to be added
1994-05-06 22:45:29 +00:00
cgd
162c8601c0
latent sysctl support
1994-05-06 22:44:22 +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
0f2ecb72f6
lots of changes: prototype migration, move lots of variables, definitions,
...
and structure elements around. kill some unnecessary type and macro
definitions. standardize clock handling. More changes than you'd want.
1994-05-05 05:40:40 +00:00
cgd
4bbabd8e7a
Rename a lot of process flags.
1994-05-04 03:41:12 +00:00
cgd
f8dd4f370d
expand the rlimit struct, kill last vestiges of off_t bogosity.
1994-05-04 01:38:25 +00:00
mycroft
06a4a02877
Add some DIAGNOSTIC code to detect trying to free a page that is being faulted
...
in.
1994-04-29 08:21:49 +00:00