chuck
dd370f11a3
rework the copy inheritance case of fork. the old way did not handle
...
the very rare case of shared mappings that have amap's attached in a
reasonable way -- this is not currently causing any problems, but i
fixed it anyway. update the comment in this section of code and also
be smarter about avoiding needless calls to pmap_protect().
1998-03-19 19:26:50 +00:00
thorpej
dbc7bbee68
Make the previous change `atomic'.
1998-03-19 06:37:26 +00:00
thorpej
daade671ae
When unsharing or execing, deactivate the old vmspace before reassigning
...
and activating the new one. Pointed out by Chris Demetriou.
1998-03-19 04:19:21 +00:00
mrg
be92b169f8
oops, missed a bit of KNF here.
1998-03-17 07:50:08 +00:00
chuck
927ec8b012
bug fix: when doing uvm_vnp_sync() actually skip over blocked uvn's so
...
that we don't try and sync them later. should get rid of the
"uvm_vnp_sync: dying vnode on sync list" related warnings that were
occuring during a "make install."
1998-03-11 01:37:40 +00:00
chuck
21624aaf72
uvm_dump now dumps some important pointers for debugging
1998-03-10 14:36:55 +00:00
mrg
8106d13596
KNF.
1998-03-09 00:58:55 +00:00
mycroft
24e6e6a0e7
Convert MAP_PRIVATE device mappings to MAP_SHARED on *all* platforms, not just
...
the SPARC.
Remove the #ifdef COMPAT_13 for automatically adding a sharing type, since the
interface is *supposed* to support this.
Also modify the DIAGNOSTIC messages here a bit.
1998-03-03 14:34:10 +00:00
fvdl
e5bc90f40c
Merge with Lite2 + local changes
1998-03-01 02:20:01 +00:00
chuck
cbd05b1537
be consistent about offsets in kernel objects. vm_map_min(kernel_map)
...
should always be the base [fixes problem on m68k detected by jason thorpe]
add comments to uvm_km.c explaining kernel memory management in more detail
1998-02-24 15:58:09 +00:00
thorpej
1e3e1bfe09
Include the NFS option header.
1998-02-19 00:55:04 +00:00
drochner
93a065690b
fix map range boundary check
1998-02-18 14:50:32 +00:00
mrg
3ed2e6ac6c
bug fix from chuck: uvm_vnp_terminate panic when /sbin/init was unlinked
1998-02-18 06:35:46 +00:00
thorpej
550678e57f
Oops, fix a typo.
1998-02-13 05:34:30 +00:00
thorpej
e6c31d3db7
KNF.
1998-02-13 05:33:55 +00:00
thorpej
872181c2f2
A few changes to make it possible to read UVM histories from userland:
...
- Protect option headers from inclusion if ! _KERNEL or if _LKM.
- Make sure struct uvm_history is always the same size (not dependent
on NCPU).
- Add fmtlen and fnlen members to struct uvm_history_ent, which specify
the lengths fo the fmt and fn strings.
- Add name, namelen, and a list entry to struct uvm_history.
- When a history is initialized, place it on the global list of all histories.
1998-02-13 04:55:14 +00:00
thorpej
cb5f8ef1df
Add a global list of all UVM histories.
1998-02-13 04:52:00 +00:00
thorpej
90aee42d35
Provide a patchable knob (uvmhist_print_enabled) so that UVM history
...
buffer printing can be switched on and off at run-time. Only exists
if the kernel is build with UVMHIST_PRINT, and defaults to `on'.
1998-02-12 20:10:15 +00:00
chs
7f45dbdfae
add copyright.
1998-02-12 07:36:43 +00:00
mrg
d90485202c
- add defopt's for UVM, UVMHIST and PMAP_NEW.
...
- remove unnecessary UVMHIST_DECL's.
1998-02-10 14:08:44 +00:00
perry
021fdb646a
add/cleanup multiple inclusion protection.
1998-02-10 02:34:17 +00:00
mrg
e92c7d991e
KNF.
1998-02-09 14:35:48 +00:00
mrg
7d3aef40b3
keep statistics on pageout/pagein, total pages, and total operations.
1998-02-09 13:08:22 +00:00
mrg
3112d4b3e1
KNF.
1998-02-09 04:05:36 +00:00
mrg
7ff12d37cc
fill out vmtotals: t_free, t_vm, t_avm, t_rm and t_arm. leaves shared of same, and t_pw.
1998-02-08 22:23:33 +00:00
thorpej
39f8b8c99b
Round allocations to page size in uvm_pageboot_alloc().
1998-02-08 18:27:30 +00:00
mrg
6122fae970
KNF
1998-02-08 16:07:57 +00:00
mrg
bc3395e590
turn of UVM history logging by default.
1998-02-08 14:19:21 +00:00
mrg
d9b2f81e27
move pdhist initialisation to the same place as maphist. also, declare
...
the history buffers are "struct uvm_history_ent" to ensure proper
alignment (eg, alpha). this fixes a boottime panic when the pdhist was
used before it had been initialised.
1998-02-08 07:52:28 +00:00
thorpej
1305ecbe62
Allow callers of uvm_km_suballoc() to specify where the base of the
...
submap _must_ begin, by adding a "fixed" boolean argument.
1998-02-08 06:15:53 +00:00
mrg
0a058cb62f
implement counters for pages paged in/out
1998-02-07 17:00:36 +00:00
mrg
4ef57d4d22
KNF.
1998-02-07 12:45:53 +00:00
mrg
5e55ce6648
bzero the entire vmspace, like the old vm does. makes ps report sane values of VSZ for swapper/pagedaemon
1998-02-07 12:31:32 +00:00
mrg
1f6b921cf7
restore rcsids
1998-02-07 11:07:38 +00:00
chs
9b371040ea
keep track of how many pages are currently being paged out,
...
stop initiating new pageouts when "(free + paging) > freetarg".
fix pageq locking.
1998-02-07 02:35:11 +00:00
chs
c2f8ffc062
reserve some pages for the kernel, and some more especially
...
for the pagedaemon allocating from kmem_object. this should
prevent from the pagedaemon running out of memory and deadlocking.
fix counting of wired pages.
add some debugging code to detect attempts to reference free vm_pages.
1998-02-07 02:34:08 +00:00
chs
249efd73a1
enable hashtables for swapslot storage - deadlock is fixed.
...
fix initialization of swhash entries.
use malloc(M_NOWAIT) for creating kernel object.
avoid dereferencing a vm_page once the page has been freed.
1998-02-07 02:32:37 +00:00
chs
39c12db74f
declare aobj_pager, needed in uvm_km.c.
1998-02-07 02:31:06 +00:00
chs
c82ac447df
convert kernel_object to an aobj.
...
in uvm_km_pgremove(), free swapslots if the object is an aobj.
in uvm_km_kmemalloc(), mark pages as wired and count them.
1998-02-07 02:29:21 +00:00
chs
6376c02019
enable paging of kernel_object.
1998-02-07 02:26:46 +00:00
chs
732a925b1b
add locking of kernel_map in uvm_kernacc().
...
check return value of uvm_fault_wire() in uvm_fork().
enable swappings.
1998-02-07 02:26:04 +00:00
chs
29ec5fd8d5
prototype for uvm_map_checkprot() moved here.
...
add uvmexp fields for pagouts-in-progress and kernel-reserved pages.
1998-02-07 02:24:02 +00:00
chs
273ac223ec
prototype for uvm_map_checkprot() moved to uvm_extern.h.
1998-02-07 02:22:24 +00:00
chs
21e2cac359
fix typoes in locking.
...
use M_UVMAMAP instead of M_TEMP for malloc type.
1998-02-07 02:21:29 +00:00
chs
5a7c4f2caa
don't try to relock amap if there isn't one.
1998-02-07 02:19:55 +00:00
chs
7cb9f7e5b1
rearrange a bit for clarity.
1998-02-07 02:18:27 +00:00
chs
098b8c2420
fix typoes in locking.
1998-02-07 02:17:48 +00:00
chs
1f583a43b1
remove locking from UVMCNT counters.
...
they don't need to be exact, and the locking causes problems
in some of places they're used.
1998-02-07 02:16:52 +00:00
thorpej
9eb328b495
RCS ID police.
1998-02-06 22:26:13 +00:00
mrg
f2caacc717
initial import of the new virtual memory system, UVM, into -current.
...
UVM was written by chuck cranor <chuck@maria.wustl.edu>, with some
minor portions derived from the old Mach code. i provided some help
getting swap and paging working, and other bug fixes/ideas. chuck
silvers <chuq@chuq.com> also provided some other fixes.
this is the UVM kernel code portion.
this will be KNF'd shortly. :-)
1998-02-05 06:25:08 +00:00