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
cgd
f50f031448
kill syscall name aliases. no user-visible changes
1994-04-29 04:41:02 +00:00
cgd
e5ad8074f2
minor code structure nit that i pointed out to hibler a while ago...
1994-04-29 03:56:26 +00:00
cgd
10b63d74bc
SHUT UP!
1994-04-28 03:51:58 +00:00
cgd
95fcf16b66
add sequential swap device support, supplied by hibler many moons ago.
...
(Note that it needs config support, too, which isn't there yet, but
might be soon...) Also, general cleanup. use NODEV to terminate swdevt,
so that sparc port (and future) is happy.
1994-04-25 23:53:51 +00:00
cgd
3dda0064a5
Convert mount, vnode, and buf structs to use <sys/queue.h>. Also,
...
some knf and structure frobbing to do along with it.
1994-04-21 07:47:31 +00:00
cgd
ee3e1168b7
undo a mistaken deletion. at least i found it...
1994-04-20 21:46:15 +00:00
cgd
551e92c16a
start to phase out temp. off_t syscalls
1994-04-16 23:19:06 +00:00
cgd
ad6c540f90
cancel some of my stupidity, thanks to charles.
1994-04-15 22:49:15 +00:00
cgd
ae41edb3e8
typo, pointed out by charles.
1994-04-15 18:02:02 +00:00
cgd
ece66170de
somehow, these didn't get committed!!!
1994-04-15 08:14:27 +00:00
mycroft
c51913cd19
Clean up deleted files.
1994-04-15 07:05:05 +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
ed740c7de8
frob arguments a little bit
1994-04-02 08:39:20 +00:00
cgd
b7e76677c6
expand uid_t/gid_t/off_t
1994-03-27 09:09:57 +00:00
chopps
b8f74df1a5
default type is MAP_FILE if none given.
1994-03-23 01:54:02 +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
a8f3db1d79
Use b_actf, not av_forw.
1994-02-06 10:13:02 +00:00
cgd
f34b215083
add kinfo_loadavg
1994-01-28 04:50:47 +00:00
cgd
e69c297456
do not clean fictitious pages. from WS (sent a long time ago...)
1994-01-15 02:39:58 +00:00
cgd
3c39708b08
oops; get rid of a mis-inclusion in the last change
1994-01-13 18:20:36 +00:00
cgd
81d655b943
uncomment defn of exec_map
1994-01-13 04:25:01 +00:00
cgd
5cc251df11
kill iffy optimization
1994-01-13 02:43:09 +00:00
mycroft
19065b312a
Fix a compiler warning.
1994-01-08 05:58:21 +00:00
mycroft
9dd94bc684
Still more prototypes.
1994-01-08 05:26:10 +00:00
mycroft
9c9af600ee
Make some functions static.
1994-01-08 04:59:08 +00:00
mycroft
287956ae88
Yet more prototypes.
1994-01-08 04:38:16 +00:00
mycroft
e879c04f57
#include vm_user.h.
1994-01-08 04:22:36 +00:00
mycroft
f36df1e764
More prototypes.
1994-01-08 04:17:49 +00:00
mycroft
8955aeedd5
#include vm_user.h.
1994-01-08 04:15:41 +00:00
mycroft
d37579f554
More cleanup and prototyping.
1994-01-08 04:02:36 +00:00
mycroft
d66944976a
Some minor rearrangement and cleanup.
1994-01-08 03:24:19 +00:00
mycroft
5df89bd778
Fix up some #includes, and add a bunch of prototypes.
1994-01-08 01:11:21 +00:00
mycroft
4181f14213
Add some explicit return types, and make a bunch of things static.
1994-01-07 23:36:15 +00:00
mycroft
8c5b51d9dc
Add some explicit return types.
1994-01-07 22:48:40 +00:00
mycroft
c7f0925a52
Add some explicit return types.
1994-01-07 22:46:05 +00:00
mycroft
bbe22a5947
Add some explicit return types.
1994-01-07 22:34:37 +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
92992e3c3a
Don't forget to poke the page daemon.
1994-01-07 20:33:14 +00:00
mycroft
75a4916007
Add an explicit return type.
1994-01-07 19:21:06 +00:00
mycroft
1b184192e1
Add some explicit return types, and make vm_object_print #ifdef DDB | DEBUG.
1994-01-07 19:15:44 +00:00
mycroft
c521a31e87
No need to clear these bits, since we just bzero()d the silly thing.
1994-01-07 18:32:14 +00:00
mycroft
a8dc1eb25a
Add an explicit return type.
1994-01-07 18:14:07 +00:00
mycroft
17e7b7e1bd
Make vnode_pager_putpage return an int, like other *_putpage routines.
1994-01-07 18:12:12 +00:00
mycroft
4343c468c5
Trivial stylistic change to match other code.
1994-01-07 18:11:38 +00:00
mycroft
f8258a5b44
Add missing return value.
1994-01-07 17:12:51 +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
mycroft
6c0eb81987
Fix typo in DIAGNOSTIC code.
1993-12-06 13:00:49 +00:00
pk
053e467648
Use proc0's credentials in buffer used for IO to swap device.
...
Especially useful when swapping over NFS.
1993-11-29 16:05:20 +00:00
cgd
76dbc1192b
new specfs.h and fifo.h locations
1993-11-12 05:54:12 +00:00
cgd
9d0e9ed1c1
fix setup of b_dirtyoff and b_dirtyend when writing out a page.
...
from Mike Hibler.
1993-11-10 22:43:34 +00:00
cgd
56adbe979f
make absent absent
1993-11-10 08:22:05 +00:00
cgd
d580099dde
fix those last changes, and quiet a compiler warning.
1993-11-10 08:11:47 +00:00
cgd
554c91f74a
change some flags back to bitfields, so it compiles.
1993-11-03 14:49:22 +00:00
cgd
64c1e3b2f5
new device pager from mike hibler, hibler@lamp. this is in its 'virgin' state
1993-11-03 14:48:42 +00:00
cgd
215649adeb
from Mark Tinguely (tinguely@plains.NoDak.edu): record when processes are
...
swapped...
1993-10-19 02:54:09 +00:00
cgd
e98e3183fc
get rid of a few ref's to buffer_map
1993-10-11 02:11:28 +00:00
cgd
13a840d756
generalize kernacc() to any protections in the function "kerncheckprot()",
...
and prototype it.
1993-10-06 23:38:19 +00:00
cgd
f09334ef6c
we need the buffer hack again, now that we have a real vfs_bio...
1993-10-06 02:06:49 +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
mycroft
00e8bf23cd
Add `#ifdef DIAGNOSTIC' around check for dirty pages in persistent objects.
1993-09-23 22:20:29 +00:00
cgd
9c32bc786a
make allproc be volatile, and cast things accordingly.
...
suggested by torek, because CSRG had problems with reordering
of assignments to allproc leading to strange panics from kernels
compiled with gcc2...
1993-09-15 22:30:32 +00:00
brezak
b4940ad7a0
Wrap iprintf, vm_object_print, vm_map_print to allow passing a printf function.
1993-09-13 14:10:35 +00:00
cgd
37e8d5291e
get rid of bogosities of the form "vm_maxsaddr + MAXSSIZ", and replace
...
them with USRSTACK. the former was a hack by wfj to accomodate his screwy
execve() implementation. the latter is a (minor) reversion to net/2.
1993-09-04 01:29:22 +00:00
cgd
6a474f29e2
get rid of maxdmap, and seperate MAXDSIZ and MAXSSIZ in rlimit checking.
1993-09-04 00:37:54 +00:00
glass
2cb87de98b
fixs long broken 'dequeue' macro which would expand to 'dequeue_head' which
...
is never defined. added fix from my private sources:
#define dequeue_head(queue) remqueue(queue, queue_first(queue))
no one noticed, because everyone used the 'remqueue' interface except me.
1993-09-01 15:55:26 +00:00
deraadt
ae8b49f87b
#ifdef pc532 in same places as #ifdef i386
1993-09-01 08:49:45 +00:00
deraadt
a87b4a30bd
pagers are now options, not pseudo-devices
1993-08-30 07:09:20 +00:00
brezak
7f550be7fd
Remove prototype for pmap_bootstrap()
1993-08-29 12:12:20 +00:00
cgd
405b084fe6
return some errors other than EIO from swstrategy()
1993-08-29 01:50:20 +00:00
brezak
15c3400ffe
Machine independant changes to VM for handling non-contiguous memory.
1993-08-27 23:45:55 +00:00
andrew
4e65827b6c
Moved vm_map_create()'s out-of-maps panic to a more appropriate place.
1993-08-19 03:13:24 +00:00
mycroft
fbd4257135
Put `#ifdef notyet' around some code which is currently defunct.
1993-08-14 10:02:30 +00:00
andrew
22dff5862a
Removed the user area protection gunk I painstakingly removed in revision
...
1.9. It has not been necessary since then due to a segment fixup made to
machdep.c that prevents access to anything above MAX_VMUSER_ADDRESS.
1993-08-13 03:50:02 +00:00
cgd
acf8d8b584
deal with ddb bogosities
1993-08-07 06:03:02 +00:00
cgd
26817f18ab
fix prettyprinting changes that caused the kernel to not link if you
...
defined DIAGNOSTIC but not DDB...
1993-08-07 05:08:11 +00:00
mycroft
a0aed26669
Remove a spurious `#' added two revisions ago.
1993-08-03 01:56:52 +00:00
mycroft
4862b84c92
Add RCS identifiers (this time on the correct side of the branch), and
...
incorporate recent changes in netbsd-0-9 branch.
1993-08-01 19:22:24 +00:00
jtc
3643c134f1
Change "#endif FOO" to "#endif /* FOO */", to keep gcc -Wall, lint, etc.
...
from complaining about a trivial issue.
1993-07-29 21:42:19 +00:00
cgd
7b2afa7fe6
incorporate changes from 0-9-base to 0-9-ALPHA
1993-07-28 02:20:34 +00:00
pk
36a6e635b3
Committing in src/sys/vm
...
Modified Files:
vm_object.c
call vm_object_remove() to remove an object from the hashtable when
vm_object_collapse() starts fiddling with pagers.
1993-07-28 00:00:01 +00:00
brezak
9d7e246a03
Cleanup pretty printers for maps and objects.
1993-07-22 13:03:36 +00:00
cgd
24e3cbad44
according to andrew, the bit with the comment:
...
> /* protect from the user area from user accesses. :-)
> addr -> addr + UPAGES*NBPG don't seem to be protected without
> this; the rest seems to be OK, and doesn't like being protected
> - andrew@werple.apana.org.au */
*is* necessary, so put it back in... it's in an #ifdef i386 part anyway.
1993-07-19 13:47:09 +00:00
andrew
aa381d0e73
vm_protect() of the user area is no longer required for i386 machines; the
...
protection is implemented by adjusting the bounds of the user segment
descriptors.
1993-07-18 08:19:34 +00:00
mycroft
ad087b06a0
Finish moving struct definitions outside of function declarations.
1993-07-17 15:56:59 +00:00
mycroft
97cae397ee
Finish moving struct definitions outside of function declarations.
1993-07-17 15:24:33 +00:00
cgd
fd3c8fa35a
fix a whole slew of off-by-one errors
1993-07-15 15:42:17 +00:00
cgd
4b90229cd2
do the "right thing" with mmap protections, once and for all.
...
in particular, if an object is mapped private, DO NOT grant
VM_PROT_ALL protections to it; it could be sensitive data.
1993-07-15 14:48:37 +00:00
cgd
b8b3b4471d
get rid of any support for vm_fault_wire() returning a result.
...
if it's going to be ifdef'd out until it's tested, it shouldn't
be put in to begin with.
also, minor ansifications and cleanups (mostly so tags would be happier).
1993-07-15 14:25:18 +00:00
cgd
999eb6ce5b
get rid of extraneous thread_wakeup()s, added at sef's prompting,
...
which would never be called anyway. leave his vm_page_activate()
change in though, as it is correct.
1993-07-15 14:07:51 +00:00
cgd
5287574e0a
get rid of bogus retrymalloc code (and it was bogus)...
1993-07-15 13:33:23 +00:00
cgd
b99e3b6666
get rid of bogus protections chacking which conflicts w/guido's
...
patch...
1993-07-07 11:25:32 +00:00
cgd
09844fbcfe
make the rlist code all go away. replace it with resource map code,
...
as written by Wolfgang Solfrank.
1993-07-07 06:04:12 +00:00
cgd
8ebc845441
got rid of (obviously) bogus assignment which followed free().
1993-07-02 10:26:49 +00:00
andrew
7a0e26cd13
Paul Kranenburg's VM deadlock patches (from patchkit 00147, parts 3 & 4).
...
Prevent dirty objects from being cached, and prevent vm_page_alloc() from
allocating too much memory to non-kernel objects.
1993-06-30 03:48:25 +00:00
mycroft
5f8b3f4ff4
Oops. Get rid of the `#ifndef MYCROFT_IS_A_DORK'. B-)
1993-06-29 19:38:50 +00:00
mycroft
d94e5eecbb
Fix some off-by-one errors.
1993-06-29 13:47:05 +00:00
andrew
5705dde7e9
Disallow access to the user pages, where the kernel stack is stored. This
...
is effected in useracc(), and also by a vm_protect() in vm_fork() for i386
CPUs. Without the latter a write to the user area, say USRSTACK+1000,
would hang a 386-based system.
1993-06-29 07:16:31 +00:00
andrew
918a434644
ANSIfications. Added support for vm_fault_wire() returning a result; code
...
to actually fail is currently disabled, as this would enable some new code
in vm_map_pageable() (disabled in this commit) that hasn't been used to
date. I'm fairly confident it is all OK, but shall test it some more once
the rest of the kernel is more stable, before enabling it.
1993-06-27 06:38:48 +00:00
andrew
51ac6a0997
ANSIfications.
1993-06-27 06:27:29 +00:00
cgd
0e761b8d7e
fix behavior when VM_MAXUSER_ADDRESS == (-UPAGES * NBPG)
1993-06-21 10:18:20 +00:00
brezak
800afb6fec
Remove annonying printf when adding swap.
1993-06-17 16:34:25 +00:00
cgd
1b44fd4c31
fix syntax errors caused by *not* having any one of the pagers...
1993-05-29 17:03:06 +00:00
deraadt
ada4945e6b
patches to make kernel malloc() retryable. from <MDICKSON@CSI.compuserve.com>
1993-05-27 14:34:29 +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
db3da84702
add bruce evans's useracc fixes, from patchkit patch 137.
1993-05-07 07:03:50 +00:00
cgd
b235aec4f6
fix free page count determination
1993-05-07 06:59:45 +00:00
cgd
fd7c50fd61
patch from Pete Chown <pc123@cus.cam.ac.uk> to fix mmap
...
modes vs. read/write permissions problem.
1993-05-07 01:58:11 +00:00
cgd
645b67012b
make it panic, like i thought it did, for mb_map too small.
1993-04-29 08:57:02 +00:00
mycroft
0b48d59355
Fix utter inanity I committed last night.
1993-04-29 00:46:21 +00:00
mycroft
a203e5704b
Implement previous change more cleanly.
1993-04-28 04:00:49 +00:00
mycroft
87dc98f60b
Introduce a new panic() condition in case I missed something.
1993-04-28 03:04:57 +00:00
mycroft
95090f0a13
Don't use first block of swap area.
1993-04-28 03:04:25 +00:00
mycroft
235bd1db44
Add consistent multiple-inclusion protection.
1993-04-19 03:45:34 +00:00
glass
33d009a09c
Prevents you from creating double faults and such mmaping stuff on top
...
of the kernel, etc. Tested. Derived from BSDI public patches
1993-04-10 15:06:01 +00:00
cgd
4493ba8058
fixed stupid typo (missing comma) in hand-applied diff
1993-04-09 17:19:02 +00:00
cgd
a128c34f9c
From: Guido van Rooij <guido@gvr.win.tue.nl>
...
when mmapping a file, permissions are checked as it should be. When
mprotect()-ing the address range afterwards, no protection was checked
regarding the protection of the file originally opened. So
when you open /usr/bin/su RDONLY and SHARED you could afterwards change
the mmapped region to READ|WRITE. This gave the possibility to obtain
root privs obviously.
1993-04-09 17:16:30 +00:00
cgd
202313150e
changes, running on sef's machine to good effect, likely contributed
...
by torek. (sef told me to get them, and their origin...)
1993-04-09 17:13:17 +00:00
cgd
827c75471f
From: andrew@werple.apana.org.au (Andrew Herbert)
...
Here are some fixes I derived from the mach 3.0 VM system a couple of months
ago. At the time, I was giving the memory object routines a good looking
at, trying to fix the long-standing problem where vm_object_collapse()
sometimes fails to collapse objects left over from the exit of a forked
child. As bde has noted, the problem seems to occur when portions of the
parent are paged out. These "lost" memory objects, which can eat up a huge
amount of swap space, are reclaimed when the parent responsible for the
fork()s is killed.
1993-04-09 16:53:46 +00:00
cgd
3cac22992d
from sean eric fagan:
...
it seems to keep the vm system from deadlocking the system when it runs
out of swap + physical memory.
prevents the system from giving the last page(s) to anything but the
referenced "processes" (especially important is the pager process,
which should never have to wait for a free page).
1993-04-09 15:54:56 +00:00
cgd
64354bb7c6
broke out panics for *_map too small, and tried to coalesce the maps more
...
often.
1993-03-31 21:53:56 +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