OpenBSD CVS

CVS log for src/sys/uvm/uvm_km.c


[BACK] Up to [local] / src / sys / uvm

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.152 / (download) - annotate - [select for diffs], Wed Mar 27 15:41:40 2024 UTC (2 months, 2 weeks ago) by kurt
Branch: MAIN
CVS Tags: HEAD
Changes since 1.151: +6 -2 lines
Diff to previous 1.151 (colored)

Initialize uvm_km_pages.mtx before use.
okay mpi@ miod@

Revision 1.151 / (download) - annotate - [select for diffs], Mon Aug 1 14:15:46 2022 UTC (22 months, 1 week ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2
Changes since 1.150: +3 -4 lines
Diff to previous 1.150 (colored)

Introduce and use uvm_pagewait() where PG_WANTED is set.

No change in behavior.

ok kn@, semarie@, kettenis@

Revision 1.150 / (download) - annotate - [select for diffs], Tue Jun 7 12:07:45 2022 UTC (2 years ago) by kettenis
Branch: MAIN
Changes since 1.149: +1 -60 lines
Diff to previous 1.149 (colored)

Remove uvm_km_valloc_prefer_wait(9) and uvm_km_free_wakeup(9) now that
nothing uses these functions anymore.

ok mpi@

Revision 1.149 / (download) - annotate - [select for diffs], Sat May 14 15:25:57 2022 UTC (2 years ago) by kettenis
Branch: MAIN
Changes since 1.148: +1 -48 lines
Diff to previous 1.148 (colored)

uvm_km_valloc(9), uvm_km_valloc_try(9), uvm_km_valloc_wait(9) and
uvm_km_valloc_align(9) are no longer used.  Remove these functions.

ok mpi@

Revision 1.148 / (download) - annotate - [select for diffs], Thu Feb 3 17:06:09 2022 UTC (2 years, 4 months ago) by kn
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.147: +2 -2 lines
Diff to previous 1.147 (colored)

Use UVM_KMF_TRYLOCK for consistency

No object change.
OK millert

Revision 1.147 / (download) - annotate - [select for diffs], Wed Dec 15 12:53:53 2021 UTC (2 years, 5 months ago) by mpi
Branch: MAIN
Changes since 1.146: +12 -2 lines
Diff to previous 1.146 (colored)

Use a per-UVM object lock to serialize the lower part of the fault handler.

Like the per-amap lock the `vmobjlock' is principally used to serialized
access to objects in the fault handler to allow faults occurring on
different CPUs and different objects to be processed in parallel.

The fault handler now acquires the `vmobjlock' of a given UVM object as
soon as it finds one.  For now a write-lock is always acquired even if
some operations could use a read-lock.

Every pager, corresponding to a different kind of UVM object, now expect
the UVM object to be locked and some operations, like *_get() return it
unlocked.  This is enforced by assertions checking for rw_write_held().

The KERNEL_LOCK() is now pushed to the VFS boundary in the vnode pager.

To ensure the correct amap or object lock is held when modifying a page
many uvm_page* operations are now asserting for the "owner" lock.
However, fields of the "struct vm_page" are still being protected by the
global `pageqlock'.  To prevent lock ordering issues with the new
`vmobjlock' and to reduce differences with NetBSD this lock is now taken
and released for each page instead of around the whole loop.

This commit does not remove the KERNEL_LOCK/UNLOCK() dance.  Unlocking
will follow if there is no fallout.

Ported from NetBSD, tested by many, thanks!

ok kettenis@, kn@

Revision 1.146 / (download) - annotate - [select for diffs], Sun Oct 24 15:23:52 2021 UTC (2 years, 7 months ago) by mpi
Branch: MAIN
Changes since 1.145: +6 -2 lines
Diff to previous 1.145 (colored)

Move pmap_{,k}remove() inside uvm_km_pgremove{,_intrsafe}().

Reduce differences with NetBSD, tested by many as part of a larger diff.

ok kettenis@

Revision 1.145 / (download) - annotate - [select for diffs], Tue Jun 15 16:38:09 2021 UTC (2 years, 11 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0
Changes since 1.144: +2 -2 lines
Diff to previous 1.144 (colored)

Use a macro to assert that given uobjs correspond to anonymous objects.

Reduce the difference with NetBSD.

ok kettenis@

Revision 1.144 / (download) - annotate - [select for diffs], Sun May 16 15:10:20 2021 UTC (3 years ago) by deraadt
Branch: MAIN
Changes since 1.143: +2 -2 lines
Diff to previous 1.143 (colored)

panic does not require a \n at the end.  When one is provided, it looks wrong.

Revision 1.143 / (download) - annotate - [select for diffs], Fri Mar 26 13:40:05 2021 UTC (3 years, 2 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_6_9_BASE, OPENBSD_6_9
Changes since 1.142: +12 -12 lines
Diff to previous 1.142 (colored)

Remove parenthesis around return value to reduce the diff with NetBSD.

No functional change.

ok mlarkin@

Revision 1.142 / (download) - annotate - [select for diffs], Sat Mar 20 10:24:21 2021 UTC (3 years, 2 months ago) by mpi
Branch: MAIN
Changes since 1.141: +7 -4 lines
Diff to previous 1.141 (colored)

Sync some comments in order to reduce the difference with NetBSD.

No functionnal change.

ok kettenis@

Revision 1.141 / (download) - annotate - [select for diffs], Fri Mar 12 14:15:49 2021 UTC (3 years, 3 months ago) by jsg
Branch: MAIN
Changes since 1.140: +2 -2 lines
Diff to previous 1.140 (colored)

spelling

ok mpi@

Revision 1.140 / (download) - annotate - [select for diffs], Thu Mar 4 09:00:03 2021 UTC (3 years, 3 months ago) by mpi
Branch: MAIN
Changes since 1.139: +8 -2 lines
Diff to previous 1.139 (colored)

Modify `uvmexp.swpgonly' atomically, required for uvm_fault() w/o KERNEL_LOCK()

ok kettenis@

Revision 1.139 / (download) - annotate - [select for diffs], Tue Dec 15 22:14:42 2020 UTC (3 years, 5 months ago) by mpi
Branch: MAIN
Changes since 1.138: +1 -2 lines
Diff to previous 1.138 (colored)

Remove the assertion in uvm_km_pgremove().

At least some initialization code on i386 calls it w/o KERNEL_LOCK().

Found the hardway by jungle Boogie and Hrvoje Popovski.

Revision 1.138 / (download) - annotate - [select for diffs], Mon Dec 14 13:29:18 2020 UTC (3 years, 5 months ago) by mpi
Branch: MAIN
Changes since 1.137: +2 -1 lines
Diff to previous 1.137 (colored)

Grab the KERNEL_LOCK() or ensure it's held when poking at swap data structures.

This will allow uvm_fault_upper() to enter swap-related functions without
holding the KERNEL_LOCK().

ok jmatthew@

Revision 1.137 / (download) - annotate - [select for diffs], Sat May 23 06:15:09 2020 UTC (4 years ago) by jan
Branch: MAIN
CVS Tags: OPENBSD_6_8_BASE, OPENBSD_6_8
Changes since 1.136: +2 -2 lines
Diff to previous 1.136 (colored)

Prevent km_alloc() from returning garbage if pagelist is empty.

ok bluhm@, visa@

Revision 1.136 / (download) - annotate - [select for diffs], Tue Feb 18 12:13:40 2020 UTC (4 years, 3 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_6_7_BASE, OPENBSD_6_7
Changes since 1.135: +2 -1 lines
Diff to previous 1.135 (colored)

Cleanup <sys/kthread.h> and <sys/proc.h> includes.

Do not include <sys/kthread.h> where it is not needed and stop including
<sys/proc.h> in it.

ok visa@, anton@

Revision 1.135 / (download) - annotate - [select for diffs], Mon Dec 30 23:58:38 2019 UTC (4 years, 5 months ago) by jsg
Branch: MAIN
Changes since 1.134: +5 -5 lines
Diff to previous 1.134 (colored)

convert infinite msleep(9) to msleep_nsec(9)

ok mpi@

Revision 1.134 / (download) - annotate - [select for diffs], Wed Dec 18 13:33:29 2019 UTC (4 years, 5 months ago) by visa
Branch: MAIN
Changes since 1.133: +3 -5 lines
Diff to previous 1.133 (colored)

Set vm_map's pmap in uvm_map_setup().

OK guenther@, kettenis@, mpi@

Revision 1.133 / (download) - annotate - [select for diffs], Sun Dec 8 12:37:45 2019 UTC (4 years, 6 months ago) by mpi
Branch: MAIN
Changes since 1.132: +3 -3 lines
Diff to previous 1.132 (colored)

Convert infinite sleeps to {m,t}sleep_nsec(9).

ok visa@, jca@

Revision 1.132 / (download) - annotate - [select for diffs], Thu Jul 18 23:47:33 2019 UTC (4 years, 10 months ago) by cheloha
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.131: +2 -2 lines
Diff to previous 1.131 (colored)

R.I.P. UVM_WAIT().  Use tsleep_nsec(9) directly.

UVM_WAIT() doesn't provide much of a useful abstraction.  All callers
tsleep forever and no callers set PCATCH, so only 2 of 4 parameters are
actually used.  Might as well just use tsleep_nsec(9) directly and make
the uvm code a bit less specialized.

Suggested by mpi@.

ok mpi@ visa@ millert@

Revision 1.131 / (download) - annotate - [select for diffs], Fri Feb 22 07:53:56 2019 UTC (5 years, 3 months ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5
Changes since 1.130: +2 -4 lines
Diff to previous 1.130 (colored)

at some point the uvm_km_thread learned to free memory, but the comment
was never updated.
from Amit Kulkarni

Revision 1.130 / (download) - annotate - [select for diffs], Thu May 11 06:55:47 2017 UTC (7 years, 1 month ago) by dlg
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.129: +2 -2 lines
Diff to previous 1.129 (colored)

unbreak PMAP_DIRECT archs.

found by jmc@

Revision 1.129 / (download) - annotate - [select for diffs], Thu May 11 00:42:05 2017 UTC (7 years, 1 month ago) by dlg
Branch: MAIN
Changes since 1.128: +11 -1 lines
Diff to previous 1.128 (colored)

reorder uvm init to avoid use before initialisation.

the particular use before init was in uvm_init step 6, which calls
kmeminit to set up malloc(9), which calls uvm_km_zalloc, which calls
pmap_enter, which calls pool_get, which tries to allocate a page
using km_alloc, which isnt initalised until step 9 in uvm_init.

uvm_km_page_init calls kthread_create though, which uses malloc
internally, so it cant be reordered before malloc init.

to cope with this, uvm_km_page_init is split up. it sets up the
subsystem, and is called before kmeminit. the thread init is moved
to uvm_km_page_lateinit, which is called after kmeminit in uvm_init.

Revision 1.126.6.1 / (download) - annotate - [select for diffs], Mon Sep 28 18:22:37 2015 UTC (8 years, 8 months ago) by tedu
Branch: OPENBSD_5_8
Changes since 1.126: +1 -2 lines
Diff to previous 1.126 (colored) next main 1.127 (colored)

backport 1.127 by kettenis, the remainder of the 1.125 reversion.
solves panics resulting from queue corruption

Revision 1.126.2.1 / (download) - annotate - [select for diffs], Mon Sep 28 18:21:46 2015 UTC (8 years, 8 months ago) by tedu
Branch: OPENBSD_5_7
Changes since 1.126: +1 -2 lines
Diff to previous 1.126 (colored) next main 1.127 (colored)

backport 1.127 by kettenis, the remainder of the 1.125 reversion.
solves panics resulting from queue corruption

Revision 1.128 / (download) - annotate - [select for diffs], Sat Sep 26 17:55:00 2015 UTC (8 years, 8 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1, OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.127: +3 -1 lines
Diff to previous 1.127 (colored)

Protect the list of free map entries with a mutex.  This should fix the
crashes seen by sthen@ on i386.

ok visa@, guenther@, tedu@

Revision 1.127 / (download) - annotate - [select for diffs], Thu Sep 17 18:04:49 2015 UTC (8 years, 8 months ago) by kettenis
Branch: MAIN
Changes since 1.126: +1 -2 lines
Diff to previous 1.126 (colored)

Back out rev. 1.125.  This bit was left behind (intentionally?) when the
remainder of that commit was backed out.  However,clearing the PQ_AOBJ bit
here is definitely wrong.

Our pagedaemon uses two separate lists to keep track of inactive
pages.  It uses PQ_SWAPBACKED, which really is both PQ_ANON and
PQ_AOBJ to keep track of which inactive queue a page is sitting on.
So if you twiddle PQ_AOBJ (or PQ_ANON) for an inactive page, a
subsequent uvm_pagefree(9) will remove the page from the wrong queue!
This usually goes unnoticed, but if the page happens to be the last
one on the queue, the queues get corrupted.  The damage quickly
spreads to the free page queues and almost certainly results in the
uvm_pmr_size_RB_REMOVE_COLOR() faults that people have seen
sporadically since the spring of this year.

ok visa@, beck@, krw@, guenther@

Revision 1.126 / (download) - annotate - [select for diffs], Sat Feb 7 08:21:24 2015 UTC (9 years, 4 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_7_BASE
Branch point for: OPENBSD_5_8, OPENBSD_5_7
Changes since 1.125: +12 -17 lines
Diff to previous 1.125 (colored)

Introduce VM_KERNEL_SPACE_SIZE as a replacement for
(VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS). This will allow these to no
longer be constants in the future.

ok guenther@

Revision 1.125 / (download) - annotate - [select for diffs], Fri Feb 6 10:58:35 2015 UTC (9 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.124: +2 -1 lines
Diff to previous 1.124 (colored)

Clear PQ_AOBJ before calling uvm_pagefree(), clearing up one false XXX
comment (one is fixed, one is deleted).
ok kettenis beck

Revision 1.124 / (download) - annotate - [select for diffs], Fri Jan 23 17:09:23 2015 UTC (9 years, 4 months ago) by kettenis
Branch: MAIN
Changes since 1.123: +29 -37 lines
Diff to previous 1.123 (colored)

Make km_alloc(9) use the direct map for all "phys contig" mappings requested
by the caller on architectures that implement them.  Make sure that we
physically align memory such that we meet any demands on virtual alignment
in this case.  This should reduce the overhead of mapping large pool pages
for pools that request dma'able memory.

ok deraadt@, dlg@

Revision 1.123 / (download) - annotate - [select for diffs], Wed Dec 17 06:58:11 2014 UTC (9 years, 5 months ago) by guenther
Branch: MAIN
Changes since 1.122: +15 -19 lines
Diff to previous 1.122 (colored)

Prefer MADV_* over POSIX_MADV_* in kernel for consistency: the latter
doesn't have all the values and therefore can't be used everywhere.

ok deraadt@ kettenis@

Revision 1.122 / (download) - annotate - [select for diffs], Mon Dec 15 02:24:23 2014 UTC (9 years, 5 months ago) by guenther
Branch: MAIN
Changes since 1.121: +11 -11 lines
Diff to previous 1.121 (colored)

Use MAP_INHERIT_* for the 'inh' argument to the UMV_MAPFLAG() macro,
eliminating the must-be-kept-in-sync UVM_INH_* macros

ok deraadt@ tedu@

Revision 1.121 / (download) - annotate - [select for diffs], Thu Nov 27 21:40:52 2014 UTC (9 years, 6 months ago) by kettenis
Branch: MAIN
Changes since 1.120: +3 -2 lines
Diff to previous 1.120 (colored)

The sti(4) driver copies its ROM into kernel memory and executes the code
in there.  It explicitly changes the mapping of that memory to RX, but this
only works if the maximum protection of the mapping includes PROT_EXEC.

ok miod@, deraadt@

Revision 1.120 / (download) - annotate - [select for diffs], Fri Nov 21 06:40:40 2014 UTC (9 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.119: +3 -7 lines
Diff to previous 1.119 (colored)

Kill kv_executable flag.  We no longer allow requests for PROT_EXEC
mappings via this interface (nothing uses it, in any case)
ok uebayasi tedu

Revision 1.119 / (download) - annotate - [select for diffs], Mon Nov 17 04:31:08 2014 UTC (9 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.118: +12 -7 lines
Diff to previous 1.118 (colored)

More cases of kernel map entries being created as EXEC by default; not
just the base permission but the maxprot as well.
ok tedu

Revision 1.118 / (download) - annotate - [select for diffs], Mon Nov 17 04:26:53 2014 UTC (9 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.117: +2 -3 lines
Diff to previous 1.117 (colored)

There is no reason for uvm_km_alloc1() to allocate kernel memory
that is executable.
ok tedu kettenis guenther

Revision 1.117 / (download) - annotate - [select for diffs], Sun Nov 16 12:31:00 2014 UTC (9 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.116: +32 -26 lines
Diff to previous 1.116 (colored)

Replace a plethora of historical protection options with just
PROT_NONE, PROT_READ, PROT_WRITE, and PROT_EXEC from mman.h.
PROT_MASK is introduced as the one true way of extracting those bits.
Remove UVM_ADV_* wrapper, using the standard names.
ok doug guenther kettenis

Revision 1.116 / (download) - annotate - [select for diffs], Thu Nov 13 00:47:44 2014 UTC (9 years, 7 months ago) by tedu
Branch: MAIN
Changes since 1.115: +2 -2 lines
Diff to previous 1.115 (colored)

bzero -> memset

Revision 1.115 / (download) - annotate - [select for diffs], Sun Sep 14 14:17:27 2014 UTC (9 years, 8 months ago) by jsg
Branch: MAIN
Changes since 1.114: +1 -2 lines
Diff to previous 1.114 (colored)

remove uneeded proc.h includes
ok mpi@ kspillner@

Revision 1.114 / (download) - annotate - [select for diffs], Fri Jul 11 16:35:40 2014 UTC (9 years, 11 months ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6
Changes since 1.113: +2 -7 lines
Diff to previous 1.113 (colored)

Chuck Cranor rescinded clauses in his license
on the 2nd of February 2011 in NetBSD.

http://marc.info/?l=netbsd-source-changes&m=129658899212732&w=2
http://marc.info/?l=netbsd-source-changes&m=129659095515558&w=2
http://marc.info/?l=netbsd-source-changes&m=129659157916514&w=2
http://marc.info/?l=netbsd-source-changes&m=129665962324372&w=2
http://marc.info/?l=netbsd-source-changes&m=129666033625342&w=2
http://marc.info/?l=netbsd-source-changes&m=129666052825545&w=2
http://marc.info/?l=netbsd-source-changes&m=129666922906480&w=2
http://marc.info/?l=netbsd-source-changes&m=129667725518082&w=2

Revision 1.113 / (download) - annotate - [select for diffs], Sat Jun 21 21:09:25 2014 UTC (9 years, 11 months ago) by guenther
Branch: MAIN
Changes since 1.112: +17 -5 lines
Diff to previous 1.112 (colored)

Make sure kmthread never loops without making progress: if the freelist
was empty then the first page allocation should sleep until it can get one.

ok tedu@

Revision 1.112 / (download) - annotate - [select for diffs], Sun Apr 13 23:14:15 2014 UTC (10 years, 2 months ago) by tedu
Branch: MAIN
Changes since 1.111: +15 -70 lines
Diff to previous 1.111 (colored)

compress code by turning four line comments into one line comments.
emphatic ok usual suspects, grudging ok miod

Revision 1.111 / (download) - annotate - [select for diffs], Thu May 30 18:02:04 2013 UTC (11 years ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5, OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.110: +2 -2 lines
Diff to previous 1.110 (colored)

in the brave new world of void *, we don't need caddr_t casts

Revision 1.110 / (download) - annotate - [select for diffs], Thu May 30 16:39:26 2013 UTC (11 years ago) by tedu
Branch: MAIN
Changes since 1.109: +2 -3 lines
Diff to previous 1.109 (colored)

UVM_UNLOCK_AND_WAIT no longer unlocks, so rename it to UVM_WAIT.

Revision 1.109 / (download) - annotate - [select for diffs], Thu May 30 15:17:59 2013 UTC (11 years ago) by tedu
Branch: MAIN
Changes since 1.108: +1 -6 lines
Diff to previous 1.108 (colored)

remove simple_locks from uvm code. ok beck deraadt

Revision 1.108 / (download) - annotate - [select for diffs], Sat Nov 10 11:18:45 2012 UTC (11 years, 7 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3
Changes since 1.107: +3 -2 lines
Diff to previous 1.107 (colored)

Number of swap pages in use must be smaller than tha total number of swap
pages, so fix non-sensical comparison introduced in rev 1.77.

ok miod@, krw@, beck@

Revision 1.107 / (download) - annotate - [select for diffs], Fri Mar 9 13:01:29 2012 UTC (12 years, 3 months ago) by ariane
Branch: MAIN
CVS Tags: OPENBSD_5_2_BASE, OPENBSD_5_2
Changes since 1.106: +55 -23 lines
Diff to previous 1.106 (colored)

New vmmap implementation.

no oks (it is really a pain to review properly)
extensively tested, I'm confident it'll be stable
'now is the time' from several icb inhabitants

Diff provides:
- ability to specify different allocators for different regions/maps
- a simpler implementation of the current allocator
- currently in compatibility mode: it will generate similar addresses
  as the old allocator

Revision 1.106 / (download) - annotate - [select for diffs], Sun Jul 3 18:34:14 2011 UTC (12 years, 11 months ago) by oga
Branch: MAIN
CVS Tags: OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0
Changes since 1.105: +1 -23 lines
Diff to previous 1.105 (colored)

Rip out and burn support for UVM_HIST.

The vm hackers don't use it, don't maintain it and have to look at it all the
time. About time this 800 lines of code hit /dev/null.

``never liked it'' tedu@. ariane@ was very happy when i told her i wrote
this diff.

Revision 1.105 / (download) - annotate - [select for diffs], Thu Jun 23 21:54:56 2011 UTC (12 years, 11 months ago) by oga
Branch: MAIN
Changes since 1.104: +3 -5 lines
Diff to previous 1.104 (colored)

Don't bother checking for an empty queue before calling uvm_pglistfree.

It will handle an empty list just fine (there's a small optimisation
possible here to avoid grabbing the fpageqlock if no pages need freeing,
but that is definitely another diff)

ok ariane@

Revision 1.104 / (download) - annotate - [select for diffs], Thu Jun 23 21:42:05 2011 UTC (12 years, 11 months ago) by ariane
Branch: MAIN
Changes since 1.103: +12 -2 lines
Diff to previous 1.103 (colored)

Make mbufs and dma_alloc be contig allocations.
Requested by dlg@

ok oga@

Revision 1.103 / (download) - annotate - [select for diffs], Mon Jun 6 17:10:23 2011 UTC (13 years ago) by ariane
Branch: MAIN
Changes since 1.102: +6 -12 lines
Diff to previous 1.102 (colored)

Backout vmmap in order to repair virtual address selection algorithms
outside the tree.

Revision 1.102 / (download) - annotate - [select for diffs], Tue May 24 15:27:36 2011 UTC (13 years ago) by ariane
Branch: MAIN
Changes since 1.101: +12 -6 lines
Diff to previous 1.101 (colored)

Reimplement uvm/uvm_map.

vmmap is designed to perform address space randomized allocations,
without letting fragmentation of the address space go through the roof.

Some highlights:
- kernel address space randomization
- proper implementation of guardpages
- roughly 10% system time reduction during kernel build

Tested by alot of people on tech@ and developers.
Theo's machines are still happy.

Revision 1.101 / (download) - annotate - [select for diffs], Tue May 10 21:48:17 2011 UTC (13 years, 1 month ago) by oga
Branch: MAIN
Changes since 1.100: +13 -16 lines
Diff to previous 1.100 (colored)

Don't leak swapslots when doing a uvm_km_pgremove and a page is in swap only.

Before we were only calling uao_dropswap() if there was a page, maning
that if the buffer was swapped out then we would leak the slot.

Quite rare because only pipebuffers should swap from the kernel object,
but i've seen panics that implied this had happened (alpha.p for example).

ok thib@ after a lot of discussion and checking the semantics.

Revision 1.100 / (download) - annotate - [select for diffs], Sat Apr 23 17:48:48 2011 UTC (13 years, 1 month ago) by kettenis
Branch: MAIN
Changes since 1.99: +2 -1 lines
Diff to previous 1.99 (colored)

Fix management of the list of free uvm_km_pages.  Seems art@ lost a line
when he copied this code from uvm_km_putpage() into km_free().

Found independently by ariane@; ok deraadt@

Revision 1.99 / (download) - annotate - [select for diffs], Tue Apr 19 20:00:11 2011 UTC (13 years, 1 month ago) by matthew
Branch: MAIN
Changes since 1.98: +2 -1 lines
Diff to previous 1.98 (colored)

Add missing call to pmap_update() in km_alloc().

ok deraadt@, miod@

Revision 1.98 / (download) - annotate - [select for diffs], Tue Apr 19 15:59:11 2011 UTC (13 years, 1 month ago) by art
Branch: MAIN
Changes since 1.97: +5 -2 lines
Diff to previous 1.97 (colored)

Free the correct pages when we failed to allocate va.

Revision 1.97 / (download) - annotate - [select for diffs], Mon Apr 18 19:23:46 2011 UTC (13 years, 1 month ago) by art
Branch: MAIN
Changes since 1.96: +17 -97 lines
Diff to previous 1.96 (colored)

Put back the change of pool and malloc into the new km_alloc(9) api.
The problems during the hackathon were not caused by this (most likely).

prodded by deraadt@ and beck@

Revision 1.96 / (download) - annotate - [select for diffs], Fri Apr 15 23:04:19 2011 UTC (13 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.95: +1 -2 lines
Diff to previous 1.95 (colored)

unused variable on !PMAP_DIRECT

Revision 1.95 / (download) - annotate - [select for diffs], Fri Apr 15 21:47:24 2011 UTC (13 years, 1 month ago) by oga
Branch: MAIN
Changes since 1.94: +2 -6 lines
Diff to previous 1.94 (colored)

move uvm_pageratop from uvm_pager.c local to a general uvm function
(uvm_atopg) and use it in uvm_km_doputpage to replace some handrolled
code. Shrinks the kernel a trivial amount.

ok beck@ and miod@ (who suggested i name it uvm_atopg not uvm_atop)

Revision 1.94 / (download) - annotate - [select for diffs], Thu Apr 7 15:30:16 2011 UTC (13 years, 2 months ago) by miod
Branch: MAIN
Changes since 1.93: +4 -4 lines
Diff to previous 1.93 (colored)

Do not use NULL in integer comparisons. No functional change.
ok matthew@ tedu@, also eyeballed by at least krw@ oga@ kettenis@ jsg@

Revision 1.93 / (download) - annotate - [select for diffs], Wed Apr 6 15:52:13 2011 UTC (13 years, 2 months ago) by art
Branch: MAIN
Changes since 1.92: +82 -1 lines
Diff to previous 1.92 (colored)

Backout the uvm_km_getpage -> km_alloc conversion. Weird things are happening
and we aren't sure what's causing them.

shouted oks by many before I even built a kernel with the diff.

Revision 1.92 / (download) - annotate - [select for diffs], Tue Apr 5 01:28:05 2011 UTC (13 years, 2 months ago) by art
Branch: MAIN
Changes since 1.91: +1 -82 lines
Diff to previous 1.91 (colored)

 - Change pool constraints to use kmem_pa_mode instead of uvm_constraint_range
 - Use km_alloc for all backend allocations in pools.
 - Use km_alloc for the emergmency kentry allocations in uvm_mapent_alloc
 - Garbage collect uvm_km_getpage, uvm_km_getpage_pla and uvm_km_putpage

ariane@ ok

Revision 1.91 / (download) - annotate - [select for diffs], Mon Apr 4 21:16:31 2011 UTC (13 years, 2 months ago) by art
Branch: MAIN
Changes since 1.90: +20 -25 lines
Diff to previous 1.90 (colored)

Few minor ninja fixes while this isn't being used anywhere in -current.
 - Change a few KASSERT(0) into proper panics.
 - Match the new behavior of single page freeing.
 - kremove pages and then free them, it's safer.

thib@ ok

Revision 1.90 / (download) - annotate - [select for diffs], Mon Apr 4 12:25:23 2011 UTC (13 years, 2 months ago) by art
Branch: MAIN
Changes since 1.89: +4 -2 lines
Diff to previous 1.89 (colored)

Better.

Revision 1.89 / (download) - annotate - [select for diffs], Mon Apr 4 12:22:59 2011 UTC (13 years, 2 months ago) by art
Branch: MAIN
Changes since 1.88: +2 -2 lines
Diff to previous 1.88 (colored)

Make gcc stop whining. pointed out by ariane@.

Revision 1.88 / (download) - annotate - [select for diffs], Mon Apr 4 11:56:12 2011 UTC (13 years, 2 months ago) by art
Branch: MAIN
Changes since 1.87: +7 -2 lines
Diff to previous 1.87 (colored)

Some minor fixes:
- Clarify a comment.
- Change all the flags to chars from ints to make the structs smaller.

Revision 1.87 / (download) - annotate - [select for diffs], Mon Apr 4 11:24:45 2011 UTC (13 years, 2 months ago) by art
Branch: MAIN
Changes since 1.86: +245 -1 lines
Diff to previous 1.86 (colored)

New unified allocator of kernel memory.

We've reached the point where we have a dozen allocators that all do more
or less the same thing, but slightly different, with slightly different
semantics, slightly different default behaviors and default behaviors that
most callers don't expect or want. A random sample on the last general
hackathon showed that no one could explain what all the different allocators
did. And every time someone needed to do something slightly different a
new allocator was written.

Unify everything. One single function to allocate multiples of PAGE_SIZE
kernel memory. Four arguments: size, how va is allocated, how pa is allocated
and misc parameters. Same parameters are passed to the free function so that
we don't need to guess what's going on.

Functions are currently unused, we'll do one thing at a time to avoid a
giant commit.

looked at by lots of people, deraadt@ and beck@ are yelling at me to commit.

Revision 1.86 / (download) - annotate - [select for diffs], Thu Aug 26 16:08:24 2010 UTC (13 years, 9 months ago) by thib
Branch: MAIN
CVS Tags: OPENBSD_4_9_BASE, OPENBSD_4_9
Changes since 1.85: +10 -9 lines
Diff to previous 1.85 (colored)

make the comment explaining the kernel submaps a bit better.

ok art@, oga@

Revision 1.85 / (download) - annotate - [select for diffs], Thu Jul 22 17:31:39 2010 UTC (13 years, 10 months ago) by thib
Branch: MAIN
CVS Tags: OPENBSD_4_8_BASE, OPENBSD_4_8
Changes since 1.84: +1 -3 lines
Diff to previous 1.84 (colored)

Remove the VM_KMPAGESFREE sysctl. After the pmemrange
changes it was returing a constant 0, changing to cope
with those changes makes less sense then just removing
as it provides the user with no usefull information.

sthen@ grepped the port's tree for me and found not hits,
thanks!

OK deraadt@, matthew@

Revision 1.84 / (download) - annotate - [select for diffs], Thu Jul 15 00:14:17 2010 UTC (13 years, 11 months ago) by tedu
Branch: MAIN
Changes since 1.83: +57 -21 lines
Diff to previous 1.83 (colored)

the uvm_km_putpage is calling into tangly uvm guts again on not pmap direct.
go back to something more like the previous design, and have the thread do
the heavy lifting.  solves vmmaplk panics.
ok deraadt oga thib
[and even simple diffs are hard to get perfect. help from mdempsky and deraadt]

Revision 1.83 / (download) - annotate - [select for diffs], Fri Jul 2 23:12:38 2010 UTC (13 years, 11 months ago) by thib
Branch: MAIN
Changes since 1.82: +3 -3 lines
Diff to previous 1.82 (colored)

no need to call uvm_km_free_wakup for the kernel map, uvm_km_free is
enough.

ok tedu@, art@

Revision 1.82 / (download) - annotate - [select for diffs], Fri Jul 2 01:25:06 2010 UTC (13 years, 11 months ago) by art
Branch: MAIN
Changes since 1.81: +4 -4 lines
Diff to previous 1.81 (colored)

add an align argument to uvm_km_kmemalloc_pla.

Use uvm_km_kmemalloc_pla with the dma constraint to allocate kernel stacks.

Yes, that means DMA is possible to kernel stacks, but only until we've fixed
all the scary drivers.

deraadt@ ok

Revision 1.81 / (download) - annotate - [select for diffs], Fri Jul 2 01:13:59 2010 UTC (13 years, 11 months ago) by thib
Branch: MAIN
Changes since 1.80: +7 -3 lines
Diff to previous 1.80 (colored)

Drop the uvm_km_pages.mtx mutex in uvm_km_putpage before we free va's,
as calls to uvm_km_free_wakup can end up in uvm_mapent_alloc which tries
to grab this mutex.

ok tedu@

Revision 1.80 / (download) - annotate - [select for diffs], Tue Jun 29 20:39:27 2010 UTC (13 years, 11 months ago) by thib
Branch: MAIN
Changes since 1.79: +4 -1 lines
Diff to previous 1.79 (colored)

Add a no_constraint uvm_constraint_range; use it in the pool code.

ok tedu@, beck@, oga@

Revision 1.79 / (download) - annotate - [select for diffs], Mon Jun 28 04:20:29 2010 UTC (13 years, 11 months ago) by miod
Branch: MAIN
Changes since 1.78: +1 -18 lines
Diff to previous 1.78 (colored)

Move uvm_km_pages struct declaration and watermark bounds to uvm_km.h, so
that md code can peek at it, and update m68k !__HAVE_PMAP_DIRECT setup code
to the recent uvm_km changes.
ok thib@

Revision 1.78 / (download) - annotate - [select for diffs], Sun Jun 27 17:45:20 2010 UTC (13 years, 11 months ago) by thib
Branch: MAIN
Changes since 1.77: +4 -4 lines
Diff to previous 1.77 (colored)

doh! Use pmap_kenter/pmap_kremove in the backend page allocator to prevent
recursion in pmap_enter as seen on zaurus.
ok art@

also, release a the uvm_km_page.mtx before calling uvm_km_kmemalloc as we
can sleep there.
ok oga@

Revision 1.77 / (download) - annotate - [select for diffs], Sun Jun 27 03:03:49 2010 UTC (13 years, 11 months ago) by thib
Branch: MAIN
Changes since 1.76: +176 -125 lines
Diff to previous 1.76 (colored)

uvm constraints. Add two mandatory MD symbols, uvm_md_constraints
which contains the constraints for DMA/memory allocation for each
architecture, and dma_constraints which contains the range of addresses
that are dma accessable by the system.

This is based on ariane@'s physcontig diff, with lots of bugfixes and
additions the following additions by my self:

Introduce a new function pool_set_constraints() which sets the address
range for which we allocate pages for the pool from, this is now used
for the mbuf/mbuf cluster pools to keep them dma accessible.

The !direct archs no longer stuff pages into the kernel object in
uvm_km_getpage_pla but rather do a pmap_extract() in uvm_km_putpages.

Tested heavily by my self on i386, amd64 and sparc64. Some tests on
alpha and SGI.

"commit it" beck, art, oga, deraadt
"i like the diff" deraadt

Revision 1.76 / (download) - annotate - [select for diffs], Fri Feb 12 01:35:14 2010 UTC (14 years, 4 months ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.75: +10 -4 lines
Diff to previous 1.75 (colored)

introduce a uvm_km_valloc_try function that won't get a lower level lock
for use by the uvm pseg code.  this is the path of least resistance until
we sort out how many of these functions we really need.  problem found by mikeb
ok kettenis oga

Revision 1.75 / (download) - annotate - [select for diffs], Sat Jul 25 12:55:40 2009 UTC (14 years, 10 months ago) by miod
Branch: MAIN
Changes since 1.74: +2 -2 lines
Diff to previous 1.74 (colored)

Add an extra argument to uvm_unmap_remove(), for the caller to tell it
whether removing holes or parts of them is allowed or not.
Only allow hole removal in uvmspace_free(), when tearing the vmspace down.

ok art@

Revision 1.74 / (download) - annotate - [select for diffs], Wed Jul 22 21:05:37 2009 UTC (14 years, 10 months ago) by oga
Branch: MAIN
Changes since 1.73: +7 -18 lines
Diff to previous 1.73 (colored)

Put the PG_RELEASED changes diff back in.

This has has been tested very very thoroughly on all archs we have
excepting 88k and 68k. Please see cvs log for the individual commit
messages.

ok beck@, thib@

Revision 1.73 / (download) - annotate - [select for diffs], Wed Jun 17 00:13:59 2009 UTC (14 years, 11 months ago) by oga
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6
Changes since 1.72: +0 -0 lines
Diff to previous 1.72 (colored)

date based reversion of uvm to the 4th May.

More backouts in line with previous ones, this appears to bring us back to a
stable condition.

A machine forced to 64mb of ram cycled 10GB through swap with this diff
and is still running as I type this. Other tests by ariane@ and thib@
also seem to show that it's alright.

ok deraadt@, thib@, ariane@

Revision 1.72 / (download) - annotate - [select for diffs], Tue Jun 16 17:14:15 2009 UTC (14 years, 11 months ago) by oga
Branch: MAIN
Changes since 1.71: +17 -6 lines
Diff to previous 1.71 (colored)

Backout all the PG_RELEASED changes.

This is for the same reason as the earlier backouts, to avoid the bug
either added or exposed sometime around c2k9. This *should* be the last
one.

prompted by deraadt@

ok ariane@

Revision 1.71 / (download) - annotate - [select for diffs], Tue May 5 05:27:53 2009 UTC (15 years, 1 month ago) by oga
Branch: MAIN
Changes since 1.70: +7 -18 lines
Diff to previous 1.70 (colored)

Second step of PG_RELEASED cleanup.

uvm_km deals with kernel memory which is either part of one of the
kernel maps, or the main kernel object (a uao). If on km_pgremove we hit
a busy page, just sleep on it, if so there's some async io (and that is
unlikely). we can remove the check for uvm_km_alloc1() for a released page
since now we will never end up with a removed but released page in the kernel
map (due to the other chunk and the last diff).

ok ariane@. Diff survived several make builds, on amd64 and sparc64,
also forced paging with ariane's evil program.

Revision 1.70 / (download) - annotate - [select for diffs], Sun Feb 22 19:59:01 2009 UTC (15 years, 3 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_4_5_BASE, OPENBSD_4_5
Changes since 1.69: +5 -3 lines
Diff to previous 1.69 (colored)

On machines with less than 16MB of physical memory, reduce the lower bound
of uvm_km_pages.

ok deraadt@ tedu@

Revision 1.69 / (download) - annotate - [select for diffs], Wed Feb 11 11:09:36 2009 UTC (15 years, 4 months ago) by mikeb
Branch: MAIN
Changes since 1.68: +17 -84 lines
Diff to previous 1.68 (colored)

Remove uvm_km_alloc_poolpage1 as it serves no particular purpose
now and valid for __HAVE_PMAP_DIRECT archs only, though implements
both code paths.

Put it's code directly into the uvm_km_getpage for PMAP_DIRECT archs.

No functional change.

ok tedu, art

Revision 1.68 / (download) - annotate - [select for diffs], Thu Oct 23 23:54:02 2008 UTC (15 years, 7 months ago) by tedu
Branch: MAIN
Changes since 1.67: +11 -17 lines
Diff to previous 1.67 (colored)

a better fix for the "uvm_km thread runs out of memory" problem.

add a new arg to the backend so it can tell pool to slow down.  when we get
this flag, yield *after* putting the page in the pool's free list.  whatever
we do, don't let the thread sleep.

this makes things better by still letting the thread run when a huge pf
request comes in, but without artificially increasing pressure on the backend
by eating pages without feeding them forward.

ok deraadt

Revision 1.67 / (download) - annotate - [select for diffs], Sat Jun 14 03:48:32 2008 UTC (16 years ago) by art
Branch: MAIN
CVS Tags: OPENBSD_4_4_BASE, OPENBSD_4_4
Changes since 1.66: +16 -3 lines
Diff to previous 1.66 (colored)

If we have one syscall that consumes large amounts of memory (like for
example an ioctl that loads bazillions of entries into a pf table) it
would exhaust the pool of free pages and not let uvm_km_thread catch
up until the pool was actually empty. This could be bad for non-sleeping
allocators since they can't wait for the memory while the big hog
can.

Instead of letting the syscall exhaust the pool, detect when we fall below
the low watermark, wake the thread, sleep once and let the thread
catch up. This paces the huge consumer so that the more critical consumers
never find an exhausted pool of pages.

"seems reasonable" kettenis@

Revision 1.66 / (download) - annotate - [select for diffs], Sat Dec 15 03:42:57 2007 UTC (16 years, 6 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_3_BASE, OPENBSD_4_3
Changes since 1.65: +3 -2 lines
Diff to previous 1.65 (colored)

export kernel uvm_km_pages_free as vm.kmpagesfree; ok tedu, tested jsg

Revision 1.65 / (download) - annotate - [select for diffs], Tue Dec 11 15:05:45 2007 UTC (16 years, 6 months ago) by tedu
Branch: MAIN
Changes since 1.64: +11 -11 lines
Diff to previous 1.64 (colored)

use a mutex for protection of the uvm_km list.  ok art

Revision 1.64 / (download) - annotate - [select for diffs], Fri Aug 3 22:49:07 2007 UTC (16 years, 10 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_4_2_BASE, OPENBSD_4_2
Changes since 1.63: +14 -4 lines
Diff to previous 1.63 (colored)

Don't let pagedaemon wait for pages here. We could trigger this easily
when we hit swap before actually fully populating the buffer cache which
would lead to deadlocks.

From pedro, tested by many, deraadt@ ok

Revision 1.63 / (download) - annotate - [select for diffs], Sun Apr 29 15:46:42 2007 UTC (17 years, 1 month ago) by art
Branch: MAIN
Changes since 1.62: +2 -2 lines
Diff to previous 1.62 (colored)

Change the loop test in uvm_km_kmemalloc from '<' to '!='. Everything
is aligned just fine and in case we allocate the last piece of the
address space we don't want wrap-around to cause us to fail.

pointed out by and ok miod@

Revision 1.62 / (download) - annotate - [select for diffs], Fri Apr 27 07:45:30 2007 UTC (17 years, 1 month ago) by art
Branch: MAIN
Changes since 1.61: +3 -4 lines
Diff to previous 1.61 (colored)

Use the right size when we're backing out the allocation in
uvm_km_kmemalloc.

"should probbaly go in" millert@, "I think it should too" deraadt@

Revision 1.61 / (download) - annotate - [select for diffs], Sun Apr 15 12:54:08 2007 UTC (17 years, 2 months ago) by art
Branch: MAIN
Changes since 1.60: +2 -2 lines
Diff to previous 1.60 (colored)

One more voff_t in the right place.
miod@ ok

Revision 1.60 / (download) - annotate - [select for diffs], Sun Apr 15 11:29:33 2007 UTC (17 years, 2 months ago) by art
Branch: MAIN
Changes since 1.59: +4 -3 lines
Diff to previous 1.59 (colored)

Use the right types for calculating the object offset.
miod@ ok

Revision 1.59 / (download) - annotate - [select for diffs], Sun Apr 15 11:23:16 2007 UTC (17 years, 2 months ago) by art
Branch: MAIN
Changes since 1.58: +16 -42 lines
Diff to previous 1.58 (colored)

Clean up prototypes, change vm_map_t to struct vm_map *.

miod@ ok

Revision 1.58 / (download) - annotate - [select for diffs], Fri Apr 13 18:57:49 2007 UTC (17 years, 2 months ago) by art
Branch: MAIN
Changes since 1.57: +5 -5 lines
Diff to previous 1.57 (colored)

While splitting flags and pqflags might have been a good idea in theory
to separate locking, on most modern machines this is not enough
since operations on short types touch other short types that share the
same word in memory.

Merge pg_flags and pqflags again and now use atomic operations to change
the flags. Also bump wire_count to an int and pg_version might go
int as well, just for alignment.

tested by many, many. ok miod@

Revision 1.57 / (download) - annotate - [select for diffs], Wed Apr 11 12:10:42 2007 UTC (17 years, 2 months ago) by art
Branch: MAIN
Changes since 1.56: +23 -154 lines
Diff to previous 1.56 (colored)

Instead of managing pages for intrsafe maps in special objects (aka.
kmem_object) just so that we can remove them, just use pmap_extract
to get the pages to free and simplify a lot of code to not deal with
the list of intrsafe maps, intrsafe objects, etc.

miod@ ok

Revision 1.56 / (download) - annotate - [select for diffs], Wed Apr 4 17:44:45 2007 UTC (17 years, 2 months ago) by art
Branch: MAIN
Changes since 1.55: +14 -14 lines
Diff to previous 1.55 (colored)

Mechanically rename the "flags" and "version" fields in struct vm_page
to "pg_flags" and "pg_version", so that they are a bit easier to work with.
Whoever uses generic names like this for a popular struct obviously doesn't
read much code.

Most architectures compile and there are no functionality changes.

deraadt@ ok ("if something fails to compile, we fix that by hand")

Revision 1.55 / (download) - annotate - [select for diffs], Sun Mar 25 11:31:07 2007 UTC (17 years, 2 months ago) by art
Branch: MAIN
Changes since 1.54: +9 -13 lines
Diff to previous 1.54 (colored)

remove KERN_SUCCESS and use 0 instead.
eyeballed by miod@ and pedro@

Revision 1.54 / (download) - annotate - [select for diffs], Wed Nov 29 12:39:50 2006 UTC (17 years, 6 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_4_1_BASE, OPENBSD_4_1
Changes since 1.53: +1 -2 lines
Diff to previous 1.53 (colored)

We don't use mb_map anymore since a long time already. Remove it.

Revision 1.53 / (download) - annotate - [select for diffs], Wed Nov 29 12:17:33 2006 UTC (17 years, 6 months ago) by miod
Branch: MAIN
Changes since 1.52: +3 -6 lines
Diff to previous 1.52 (colored)

Add an alignment parameter to uvm_km_alloc1(), and change all callers to
pass zero; this will be used shortly. From art@

Revision 1.52 / (download) - annotate - [select for diffs], Mon Jul 31 11:51:29 2006 UTC (17 years, 10 months ago) by mickey
Branch: MAIN
CVS Tags: OPENBSD_4_0_BASE, OPENBSD_4_0
Changes since 1.51: +5 -5 lines
Diff to previous 1.51 (colored)

fix uvmhist #2: args are always u_long so fix missing %d and %x and no %ll; no change for normal code

Revision 1.51 / (download) - annotate - [select for diffs], Wed Jul 26 23:15:55 2006 UTC (17 years, 10 months ago) by mickey
Branch: MAIN
Changes since 1.50: +16 -16 lines
Diff to previous 1.50 (colored)

fix fmts for UVMHIST_LOG() entries making it more useful on 64bit archs; miod@ ok

Revision 1.50 / (download) - annotate - [select for diffs], Tue Apr 25 08:31:00 2006 UTC (18 years, 1 month ago) by mickey
Branch: MAIN
Changes since 1.49: +3 -1 lines
Diff to previous 1.49 (colored)

limit pool backend preallocation to 2048 pages max (which only affects >2g physmem); miod@ toby@ ok

Revision 1.49 / (download) - annotate - [select for diffs], Mon Mar 6 19:11:03 2006 UTC (18 years, 3 months ago) by mickey
Branch: MAIN
Changes since 1.48: +14 -10 lines
Diff to previous 1.48 (colored)

deal w/ uvm_km_alloc() returning null; tedu@ ok

Revision 1.48 / (download) - annotate - [select for diffs], Thu Oct 6 03:59:50 2005 UTC (18 years, 8 months ago) by brad
Branch: MAIN
CVS Tags: OPENBSD_3_9_BASE, OPENBSD_3_9
Changes since 1.47: +2 -2 lines
Diff to previous 1.47 (colored)

typo

Revision 1.47 / (download) - annotate - [select for diffs], Fri Sep 9 15:48:43 2005 UTC (18 years, 9 months ago) by pedro
Branch: MAIN
Changes since 1.46: +3 -3 lines
Diff to previous 1.46 (colored)

typos

Revision 1.46 / (download) - annotate - [select for diffs], Tue May 24 21:11:47 2005 UTC (19 years ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_3_8_BASE, OPENBSD_3_8
Changes since 1.45: +2 -2 lines
Diff to previous 1.45 (colored)

add a new field to vm_space and use it to track the number of anon
pages a process uses.  this is now the userland "data size" value.
ok art deraadt tdeval.  thanks testers.

Revision 1.45 / (download) - annotate - [select for diffs], Thu Dec 30 08:28:39 2004 UTC (19 years, 5 months ago) by niklas
Branch: MAIN
CVS Tags: OPENBSD_3_7_BASE, OPENBSD_3_7
Changes since 1.44: +5 -3 lines
Diff to previous 1.44 (colored)

Import M_CANFAIL support from NetBSD, removes a nasty panic during low-mem scenarios, instead generating an ENOMEM backfeed, ok tedu@, prodded by many

Revision 1.44 / (download) - annotate - [select for diffs], Tue Aug 24 07:16:12 2004 UTC (19 years, 9 months ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_3_6_BASE, OPENBSD_3_6
Changes since 1.43: +2 -2 lines
Diff to previous 1.43 (colored)

change physmem divisor to 256.  divide by page size was wrong.  this does
what i intended all along, without contrived arithmetic screw up.
from discussions with mickey and deraadt

Revision 1.43 / (download) - annotate - [select for diffs], Tue Aug 24 03:58:14 2004 UTC (19 years, 9 months ago) by tedu
Branch: MAIN
Changes since 1.42: +12 -2 lines
Diff to previous 1.42 (colored)

adapt uvm_km_pages_lowat to physmem.  thanks testers.  ok deraadt@

Revision 1.42 / (download) - annotate - [select for diffs], Tue Jul 13 14:51:29 2004 UTC (19 years, 11 months ago) by tedu
Branch: MAIN
Changes since 1.41: +8 -14 lines
Diff to previous 1.41 (colored)

#define __HAVE_PMAP_DIRECT and use it.  requested by art

Revision 1.4.4.11 / (download) - annotate - [select for diffs], Thu Jun 10 11:40:36 2004 UTC (20 years ago) by niklas
Branch: SMP
Changes since 1.4.4.10: +38 -40 lines
Diff to previous 1.4.4.10 (colored) to branchpoint 1.4 (colored) next main 1.5 (colored)

sync with head, make i386 __HAVE_CPUINFO

Revision 1.41 / (download) - annotate - [select for diffs], Wed Jun 9 20:17:23 2004 UTC (20 years ago) by tedu
Branch: MAIN
CVS Tags: SMP_SYNC_B, SMP_SYNC_A
Changes since 1.40: +39 -41 lines
Diff to previous 1.40 (colored)

rename POOLPAGE macros to pmap_map_direct
break out uvm_km_page bits for this case, no thread here
lots of testing tech@, deraadt@, naddy@, mickey@, ...

Revision 1.4.4.10 / (download) - annotate - [select for diffs], Sat Jun 5 23:13:12 2004 UTC (20 years ago) by niklas
Branch: SMP
Changes since 1.4.4.9: +161 -17 lines
Diff to previous 1.4.4.9 (colored) to branchpoint 1.4 (colored)

Merge with the trunk

Revision 1.40 / (download) - annotate - [select for diffs], Mon May 31 22:53:49 2004 UTC (20 years ago) by tedu
Branch: MAIN
Changes since 1.39: +30 -3 lines
Diff to previous 1.39 (colored)

explanatory comments for the uvm_km_page functions.

Revision 1.39 / (download) - annotate - [select for diffs], Thu May 27 04:55:28 2004 UTC (20 years ago) by tedu
Branch: MAIN
Changes since 1.38: +18 -15 lines
Diff to previous 1.38 (colored)

change uvm_km_getpage to take waitok argument and sleep if appropriate.
change both the nointr and default pool allocators to using uvm_km_getpage.
change pools to default to a maxpages value of 8, so they hoard less memory.
change mbuf pools to use default pool allocator.
pools are now more efficient, use less of kmem_map, and a bit faster.
tested mcbride, deraadt, pedro, drahn, miod to work everywhere

Revision 1.38 / (download) - annotate - [select for diffs], Wed Apr 28 02:20:58 2004 UTC (20 years, 1 month ago) by markus
Branch: MAIN
Changes since 1.37: +4 -18 lines
Diff to previous 1.37 (colored)

remove mb_object*; ok tedu

Revision 1.37 / (download) - annotate - [select for diffs], Tue Apr 20 09:39:36 2004 UTC (20 years, 1 month ago) by markus
Branch: MAIN
Changes since 1.36: +2 -2 lines
Diff to previous 1.36 (colored)

set uvm_km_pages_lowat to 128; unbreaks mbuf allocation;
tested by jmc, brad, hshoexer

Revision 1.36 / (download) - annotate - [select for diffs], Mon Apr 19 22:52:33 2004 UTC (20 years, 1 month ago) by tedu
Branch: MAIN
Changes since 1.35: +126 -1 lines
Diff to previous 1.35 (colored)

introduce a new km_page allocator that gets pages from kernel_map using
an interrupt safe thread.
use this as the new backend for mbpool and mclpool, eliminating the mb_map.
introduce a sysctl kern.maxclusters which controls the limit of clusters
allocated.
testing by many people, works everywhere but m68k.  ok deraadt@

this essentially deprecates the NMBCLUSTERS option, don't use it.
this should reduce pressure on the kmem_map and the uvm reserve of static
map entries.

Revision 1.35 / (download) - annotate - [select for diffs], Mon Feb 23 06:19:32 2004 UTC (20 years, 3 months ago) by drahn
Branch: MAIN
CVS Tags: OPENBSD_3_5_BASE, OPENBSD_3_5
Changes since 1.34: +4 -1 lines
Diff to previous 1.34 (colored)

sync of pmap_update() calls with NetBSD. pmap_update is defined away on
all architectures but arm, where it is needed.

Revision 1.4.4.9 / (download) - annotate - [select for diffs], Fri Mar 28 00:08:48 2003 UTC (21 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.4.4.8: +9 -12 lines
Diff to previous 1.4.4.8 (colored) to branchpoint 1.4 (colored)

Sync the SMP branch with 3.3

Revision 1.26.2.5 / (download) - annotate - [select for diffs], Mon Nov 4 20:11:00 2002 UTC (21 years, 7 months ago) by art
Branch: UBC
Changes since 1.26.2.4: +6 -6 lines
Diff to previous 1.26.2.4 (colored) to branchpoint 1.26 (colored) next main 1.27 (colored)

Some minor cleanups to reduce diff to netbsd.

Revision 1.26.2.4 / (download) - annotate - [select for diffs], Mon Nov 4 18:02:33 2002 UTC (21 years, 7 months ago) by art
Branch: UBC
Changes since 1.26.2.3: +13 -9 lines
Diff to previous 1.26.2.3 (colored) to branchpoint 1.26 (colored)

Huge sync to NetBSD plus lots of bugfixes.
 - uvm is as in netbsd-current minus uvm_map forward merge.
 - various locking bugfixes in nfs.
 - make sure that all specops and fifoops are correct in all vnodeop vectors.
 - make the filesystem code more like filsystem code and less like vm code.

Revision 1.34 / (download) - annotate - [select for diffs], Tue Oct 29 18:30:21 2002 UTC (21 years, 7 months ago) by art
Branch: MAIN
CVS Tags: UBC_SYNC_A, OPENBSD_3_4_BASE, OPENBSD_3_4, OPENBSD_3_3_BASE, OPENBSD_3_3
Changes since 1.33: +2 -2 lines
Diff to previous 1.33 (colored)

Since memory deallocation can't fail, remove the error return from
uvm_unmap, uvm_deallocate and a few other functions.
Simplifies some code and reduces diff to the UBC branch.

Revision 1.26.2.3 / (download) - annotate - [select for diffs], Tue Oct 29 00:36:50 2002 UTC (21 years, 7 months ago) by art
Branch: UBC
Changes since 1.26.2.2: +3 -6 lines
Diff to previous 1.26.2.2 (colored) to branchpoint 1.26 (colored)

sync to -current

Revision 1.33 / (download) - annotate - [select for diffs], Thu Sep 12 12:50:47 2002 UTC (21 years, 9 months ago) by art
Branch: MAIN
CVS Tags: UBC_SYNC_B, OPENBSD_3_2_BASE, OPENBSD_3_2
Changes since 1.32: +3 -6 lines
Diff to previous 1.32 (colored)

Change the PMAP_{MAP,UNMAP}_POOLPAGE api to take a vm_page as argument
and return a VM_PAGE. This is to allow sparc64 to cheaply record the
VAC color for those pages.

Revision 1.26.2.2 / (download) - annotate - [select for diffs], Tue Jun 11 03:33:03 2002 UTC (22 years ago) by art
Branch: UBC
Changes since 1.26.2.1: +7 -7 lines
Diff to previous 1.26.2.1 (colored) to branchpoint 1.26 (colored)

Sync UBC branch to -current

Revision 1.32 / (download) - annotate - [select for diffs], Thu May 30 06:26:10 2002 UTC (22 years ago) by deraadt
Branch: MAIN
Changes since 1.31: +4 -4 lines
Diff to previous 1.31 (colored)

spelling errors; moritz@jodeit.org

Revision 1.31 / (download) - annotate - [select for diffs], Thu Apr 25 04:36:43 2002 UTC (22 years, 1 month ago) by mickey
Branch: MAIN
Changes since 1.30: +4 -4 lines
Diff to previous 1.30 (colored)

do not map memory for malloc w/ execute perms.
this prevents i-cache preload on some archs,
but does not hurt on others anyway.
art looked all over all the pmaps,
miod and mickey tested it on all possible archs,
deraadt made a lesson out of it for the rest of the folks.

Revision 1.30 / (download) - annotate - [select for diffs], Mon Apr 22 16:25:46 2002 UTC (22 years, 1 month ago) by deraadt
Branch: MAIN
Changes since 1.29: +4 -3 lines
Diff to previous 1.29 (colored)

Uncommit.  Since this came out of the blue, without anyone else having
known of it; and since the commit message does not give the rest of us
any feeling that this was tested by anyone, this is being removed.  This
is not an area where one commits because just art agrees.  And that is
what the commit message says.

Revision 1.29 / (download) - annotate - [select for diffs], Mon Apr 22 12:50:34 2002 UTC (22 years, 1 month ago) by mickey
Branch: MAIN
Changes since 1.28: +4 -5 lines
Diff to previous 1.28 (colored)

do not map malloced memory executable (do avoid possible i-cache prefetch); art@ ok

Revision 1.4.4.8 / (download) - annotate - [select for diffs], Thu Mar 28 14:54:26 2002 UTC (22 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.4.4.7: +2 -2 lines
Diff to previous 1.4.4.7 (colored) to branchpoint 1.4 (colored)

Merge in -current from roughly a week ago

Revision 1.28 / (download) - annotate - [select for diffs], Wed Mar 6 22:05:31 2002 UTC (22 years, 3 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_3_1_BASE, OPENBSD_3_1
Changes since 1.27: +3 -3 lines
Diff to previous 1.27 (colored)

Some architectures don't allocate any memory out of the kernel_map space
before uvm_km_init (alpha). Don't uvm_map 0 space, it gives very strange
breakage on alpha.

Revision 1.4.4.7 / (download) - annotate - [select for diffs], Wed Mar 6 02:17:14 2002 UTC (22 years, 3 months ago) by niklas
Branch: SMP
Changes since 1.4.4.6: +62 -57 lines
Diff to previous 1.4.4.6 (colored) to branchpoint 1.4 (colored)

Merge in trunk

Revision 1.26.2.1 / (download) - annotate - [select for diffs], Sat Feb 2 03:28:26 2002 UTC (22 years, 4 months ago) by art
Branch: UBC
Changes since 1.26: +60 -194 lines
Diff to previous 1.26 (colored)

Merge in UBC performance changes from NetBSD.
Fix a bunch of merge errors from yesterday.

Revision 1.27 / (download) - annotate - [select for diffs], Wed Dec 19 08:58:07 2001 UTC (22 years, 5 months ago) by art
Branch: MAIN
Changes since 1.26: +63 -60 lines
Diff to previous 1.26 (colored)

UBC was a disaster. It worked very good when it worked, but on some
machines or some configurations or in some phase of the moon (we actually
don't know when or why) files disappeared. Since we've not been able to
track down the problem in two weeks intense debugging and we need -current
to be stable, back out everything to a state it had before UBC.

We apologise for the inconvenience.

Revision 1.4.4.6 / (download) - annotate - [select for diffs], Wed Dec 5 01:23:58 2001 UTC (22 years, 6 months ago) by niklas
Branch: SMP
Changes since 1.4.4.5: +57 -62 lines
Diff to previous 1.4.4.5 (colored) to branchpoint 1.4 (colored)

Merge in -current

Revision 1.26 / (download) - annotate - [select for diffs], Tue Dec 4 23:22:42 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
CVS Tags: UBC_BASE
Branch point for: UBC
Changes since 1.25: +6 -4 lines
Diff to previous 1.25 (colored)

Yet another sync to NetBSD uvm.
Today we add a pmap argument to pmap_update() and allocate map entries for
kernel_map from kmem_map instead of using the static entries. This should
get rid of MAX_KMAPENT panics. Also some uvm_loan problems are fixed.

Revision 1.25 / (download) - annotate - [select for diffs], Wed Nov 28 19:28:14 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.24: +45 -51 lines
Diff to previous 1.24 (colored)

Sync in more uvm from NetBSD. Mostly just cosmetic stuff.
Contains also support for page coloring.

Revision 1.24 / (download) - annotate - [select for diffs], Wed Nov 28 14:29:13 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.23: +7 -5 lines
Diff to previous 1.23 (colored)

more sync to netbsd. some bugfixes in uvm_km_kmemalloc, lots of fixes in uvm_loan.

Revision 1.23 / (download) - annotate - [select for diffs], Wed Nov 28 13:47:39 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.22: +11 -12 lines
Diff to previous 1.22 (colored)

Sync in more uvm changes from NetBSD.
This time we're getting rid of KERN_* and VM_PAGER_* error codes and
use errnos instead.

Revision 1.4.4.5 / (download) - annotate - [select for diffs], Tue Nov 13 23:02:31 2001 UTC (22 years, 7 months ago) by niklas
Branch: SMP
Changes since 1.4.4.4: +58 -87 lines
Diff to previous 1.4.4.4 (colored) to branchpoint 1.4 (colored)

merge in -current

Revision 1.22 / (download) - annotate - [select for diffs], Sun Nov 11 01:16:56 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.21: +11 -11 lines
Diff to previous 1.21 (colored)

Sync in more stuff from NetBSD.

Revision 1.21 / (download) - annotate - [select for diffs], Fri Nov 9 03:32:23 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.20: +12 -3 lines
Diff to previous 1.20 (colored)

minor sync to NetBSD.

Revision 1.20 / (download) - annotate - [select for diffs], Wed Nov 7 02:55:50 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.19: +24 -68 lines
Diff to previous 1.19 (colored)

Another sync of uvm to NetBSD. Just minor fiddling, no major changes.

Revision 1.19 / (download) - annotate - [select for diffs], Wed Nov 7 01:18:01 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.18: +8 -8 lines
Diff to previous 1.18 (colored)

Add an alignment argument to uvm_map that specifies an alignment hint
for the virtual address.

Revision 1.18 / (download) - annotate - [select for diffs], Tue Nov 6 13:36:52 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.17: +14 -5 lines
Diff to previous 1.17 (colored)

More sync to NetBSD.
 - Use malloc/free instead of MALLOC/FREE for variable sized allocations.
 - Move the memory inheritance code to sys/mman.h and rename from VM_* to MAP_*
 - various cleanups and simplifications.

Revision 1.17 / (download) - annotate - [select for diffs], Tue Nov 6 01:35:04 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.16: +2 -4 lines
Diff to previous 1.16 (colored)

Move the last content from vm/ to uvm/
The only thing left in vm/ are just dumb wrappers.
vm/vm.h includes uvm/uvm_extern.h
vm/pmap.h includes uvm/uvm_pmap.h
vm/vm_page.h includes uvm/uvm_page.h

Revision 1.16 / (download) - annotate - [select for diffs], Mon Nov 5 22:14:54 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.15: +2 -3 lines
Diff to previous 1.15 (colored)

Minor sync to NetBSD.

Revision 1.4.4.4 / (download) - annotate - [select for diffs], Wed Oct 31 03:32:14 2001 UTC (22 years, 7 months ago) by nate
Branch: SMP
Changes since 1.4.4.3: +32 -34 lines
Diff to previous 1.4.4.3 (colored) to branchpoint 1.4 (colored)

Sync the SMP branch to something just after 3.0

Revision 1.15 / (download) - annotate - [select for diffs], Wed Sep 19 20:50:59 2001 UTC (22 years, 8 months ago) by mickey
Branch: MAIN
CVS Tags: OPENBSD_3_0_BASE, OPENBSD_3_0
Changes since 1.14: +1 -2 lines
Diff to previous 1.14 (colored)

merge vm/vm_kern.h into uvm/uvm_extern.h; art@ ok

Revision 1.14 / (download) - annotate - [select for diffs], Sat Aug 11 10:57:22 2001 UTC (22 years, 10 months ago) by art
Branch: MAIN
Changes since 1.13: +29 -27 lines
Diff to previous 1.13 (colored)

Various random fixes from NetBSD.
Including support for zeroing pages in the idle loop (not enabled yet).

Revision 1.13 / (download) - annotate - [select for diffs], Thu Jul 26 19:37:13 2001 UTC (22 years, 10 months ago) by art
Branch: MAIN
Changes since 1.12: +3 -2 lines
Diff to previous 1.12 (colored)

Add support for disabling swap devices (swapctl -d).
Improve error handling on I/O errors to swap.
From NetBSD

Revision 1.12 / (download) - annotate - [select for diffs], Wed Jul 25 13:25:33 2001 UTC (22 years, 10 months ago) by art
Branch: MAIN
Changes since 1.11: +5 -4 lines
Diff to previous 1.11 (colored)

Change the pmap_enter interface to merge access_type and the wired boolean
and arbitrary flags into one argument.

One new flag is PMAP_CANFAIL that tells pmap_enter that it can fail if there
are not enough resources to satisfy the request. If this flag is not passed,
pmap_enter should panic as it should have done before this change (XXX - many
pmaps are still not doing that).

Only i386 and alpha implement CANFAIL for now.

Includes uvm updates from NetBSD.

Revision 1.11 / (download) - annotate - [select for diffs], Wed Jul 18 10:47:05 2001 UTC (22 years, 10 months ago) by art
Branch: MAIN
Changes since 1.10: +2 -7 lines
Diff to previous 1.10 (colored)

Get rid of the PMAP_NEW option by making it mandatory for all archs.
The archs that didn't have a proper PMAP_NEW now have a dummy implementation
with wrappers around the old functions.

Revision 1.4.4.3 / (download) - annotate - [select for diffs], Wed Jul 4 11:01:05 2001 UTC (22 years, 11 months ago) by niklas
Branch: SMP
Changes since 1.4.4.2: +7 -235 lines
Diff to previous 1.4.4.2 (colored) to branchpoint 1.4 (colored)

Merge in -current from two days ago in the SMP branch.
As usual with merges, they do not indicate progress, so do not hold
your breath for working SMP, and do not mail me and ask about the
state of it.  It has not changed.  There is work ongoing, but very, very
slowly.  The commit is done in parts as to not lock up the tree in too
big chunks at a time.

Revision 1.10 / (download) - annotate - [select for diffs], Sat Jun 23 19:24:33 2001 UTC (22 years, 11 months ago) by smart
Branch: MAIN
Changes since 1.9: +7 -235 lines
Diff to previous 1.9 (colored)

Sync with NetBSD 19990911 (just before PMAP_NEW was required)
  - thread_sleep_msg() -> uvm_sleep()
  - initialize reference count lock in uvm_anon_{init,add}()
  - add uao_flush()
  - replace boolean 'islocked' with 'lockflags'
  - in uvm_fault() change FALSE to TRUE to in 'wide' fault handling
  - get rid of uvm_km_get()
  - various bug fixes

Revision 1.4.4.2 / (download) - annotate - [select for diffs], Mon May 14 22:47:46 2001 UTC (23 years, 1 month ago) by niklas
Branch: SMP
Changes since 1.4.4.1: +6 -5 lines
Diff to previous 1.4.4.1 (colored) to branchpoint 1.4 (colored)

merge in approximately 2.9 into SMP branch

Revision 1.9 / (download) - annotate - [select for diffs], Thu Mar 22 03:05:55 2001 UTC (23 years, 2 months ago) by smart
Branch: MAIN
CVS Tags: OPENBSD_2_9_BASE, OPENBSD_2_9
Changes since 1.8: +4 -4 lines
Diff to previous 1.8 (colored)

Sync style, typo, and comments a little closer to NetBSD.  art@ ok

Revision 1.8 / (download) - annotate - [select for diffs], Thu Mar 8 15:21:36 2001 UTC (23 years, 3 months ago) by smart
Branch: MAIN
Changes since 1.7: +2 -2 lines
Diff to previous 1.7 (colored)

Replace thread_wakeup() with wakeup().  It is defined in vm_extern.h as a
wrapper, so this removes a dependence on the old VM system.  From NetBSD.
art@ ok

Revision 1.7 / (download) - annotate - [select for diffs], Mon Jan 29 02:07:45 2001 UTC (23 years, 4 months ago) by niklas
Branch: MAIN
Changes since 1.6: +1 -0 lines
Diff to previous 1.6 (colored)

$OpenBSD$

Revision 1.6 / (download) - annotate - [select for diffs], Thu Sep 7 20:15:28 2000 UTC (23 years, 9 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_2_8_BASE, OPENBSD_2_8
Changes since 1.5: +1 -1 lines
Diff to previous 1.5 (colored)

Convert bzero to memset(X, 0..) and bcopy to memcpy.
This is to match (make diffs smaller) the code in NetBSD.
new gcc inlines those functions, so this could also be a performance win.

Revision 1.4.4.1 / (download) - annotate - [select for diffs], Fri Mar 24 09:09:49 2000 UTC (24 years, 2 months ago) by niklas
Branch: SMP
Changes since 1.4: +146 -38 lines
Diff to previous 1.4 (colored)

Sync with -current

Revision 1.5 / (download) - annotate - [select for diffs], Thu Mar 16 22:11:04 2000 UTC (24 years, 3 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_2_7_BASE, OPENBSD_2_7
Changes since 1.4: +146 -38 lines
Diff to previous 1.4 (colored)

Bring in some new UVM code from NetBSD (not current).

 - Introduce a new type of map that are interrupt safe and never allow faults
   in them. mb_map and kmem_map are made intrsafe.
 - Add "access protection" to uvm_vslock (to be passed down to uvm_fault and
   later to pmap_enter).
 - madvise(2) now works.
 - various cleanups.

Revision 1.4 / (download) - annotate - [select for diffs], Fri Sep 3 18:02:22 1999 UTC (24 years, 9 months ago) by art
Branch: MAIN
CVS Tags: kame_19991208, SMP_BASE, OPENBSD_2_6_BASE, OPENBSD_2_6
Branch point for: SMP
Changes since 1.3: +8 -8 lines
Diff to previous 1.3 (colored)

Change the pmap_enter api to pass down an argument that indicates
the access type that caused this mapping. This is to simplify pmaps
with mod/ref emulation (none for the moment) and in some cases speed
up pmap_is_{referenced,modified}.
At the same time, clean up some mappings that had too high protection.

XXX - the access type is incorrect in old vm, it's only used by uvm and MD code.
The actual use of this in pmap_enter implementations is not in this commit.

Revision 1.3 / (download) - annotate - [select for diffs], Mon Aug 23 08:13:23 1999 UTC (24 years, 9 months ago) by art
Branch: MAIN
Changes since 1.2: +8 -23 lines
Diff to previous 1.2 (colored)

sync with NetBSD from 1999.05.24 (there is a reason for this date)
 Mostly cleanups, but also a few improvements to pagedaemon for better
 handling of low memory and/or low swap conditions.

Revision 1.2 / (download) - annotate - [select for diffs], Fri Feb 26 05:32:07 1999 UTC (25 years, 3 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_2_5_BASE, OPENBSD_2_5
Changes since 1.1: +1 -0 lines
Diff to previous 1.1 (colored)

add OpenBSD tags

Revision 1.1 / (download) - annotate - [select for diffs], Fri Feb 26 01:30:13 1999 UTC (25 years, 3 months ago) by art
Branch: MAIN

Import of uvm from NetBSD. Some local changes, some code disabled

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.