OpenBSD CVS

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


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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.91 / (download) - annotate - [select for diffs], Fri Aug 11 17:53:22 2023 UTC (10 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, HEAD
Changes since 1.90: +1 -3 lines
Diff to previous 1.90 (colored)

Kill unused variable in uvm_aio_aiodone_pages().

Revision 1.90 / (download) - annotate - [select for diffs], Sat May 13 09:24:59 2023 UTC (12 months, 4 weeks ago) by mpi
Branch: MAIN
Changes since 1.89: +54 -27 lines
Diff to previous 1.89 (colored)

Put back in the simplification of the aiodone daemon.

Previous "breakage" of the swap on arm64 has been found to be an issue
on one machine the rockpro/arm64 related to a deadlock built into the
sdmmc(4) stack interacting with swapping code both running under
KERNEL_LOCK().

This issue is easily reproducible on -current and entering swap when
building LLVM on a rockpro crashes the machine by memory corruption.

Tested by mlarkin@ on octeon & i386, by myself on amd64 & arm64 and by
sthen@ on i386 port bulk.

ok beck@ some time ago.

Previous commit message:

Simplify the aiodone daemon which is only used for async writes.

- Remove unused support for asynchronous read, including error conditions

- Grab the proper lock for each page that has been written to swap.  This
allows to enable an assertion in uvm_page_unbusy().

- Move the uvm_anon_release() call outside of uvm_page_unbusy() and
assert for the different anon cases.

ok beck@, kettenis@

Revision 1.89 / (download) - annotate - [select for diffs], Fri Aug 19 05:53:19 2022 UTC (21 months, 3 weeks ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2
Changes since 1.88: +2 -2 lines
Diff to previous 1.88 (colored)

Grab the mutex before iterating on the global list.

Prevent race reported some months ago.

ok mlarkin@, jsg@, kn@

Revision 1.88 / (download) - annotate - [select for diffs], Mon Aug 15 03:21:04 2022 UTC (21 months, 3 weeks ago) by jsg
Branch: MAIN
Changes since 1.87: +1 -3 lines
Diff to previous 1.87 (colored)

remove unused uvm_aiobuf_pool

Revision 1.87 / (download) - annotate - [select for diffs], Sun Aug 7 19:40:48 2022 UTC (22 months ago) by miod
Branch: MAIN
Changes since 1.86: +13 -7 lines
Diff to previous 1.86 (colored)

Use PMAP_PREFER_ALIGN() == 0 rather than !defined(PMAP_PREFER) to enable the
fast path in the pager code; this benefits most mips64 platforms.

ok kettenis@ mpi@

Revision 1.86 / (download) - annotate - [select for diffs], Tue Aug 2 14:04:06 2022 UTC (22 months, 1 week ago) by mpi
Branch: MAIN
Changes since 1.85: +17 -1 lines
Diff to previous 1.85 (colored)

Bring back the direct map optimization when PMAP_PREFER isn't defined.

PMAP_PREFER is checked to prevent cache aliasing issues when the physical
page is mapped at different virtual addresses.

This speeds up file-based mmap faults.

ok kettenis@

Revision 1.85 / (download) - annotate - [select for diffs], Sun Jul 24 11:00:22 2022 UTC (22 months, 2 weeks ago) by mpi
Branch: MAIN
Changes since 1.84: +27 -54 lines
Diff to previous 1.84 (colored)

Revert simplification of the aiodone daemon it breaks swap on arm64.

Found the hard way by mlarkin@ and deraadt@.

Revision 1.84 / (download) - annotate - [select for diffs], Sun Jul 17 17:59:35 2022 UTC (22 months, 3 weeks ago) by kettenis
Branch: MAIN
Changes since 1.83: +10 -20 lines
Diff to previous 1.83 (colored)

Revert the changes made in rev 1.82.  It is important to use pmap_enter(9)
and pmap_remove(9) here since we're dealing with managed pages here.  Found
out the hard way by deraadt@ on landisk where we're running into issues
with virtual cache aliases because multiple mappings exist for the
pages we're dealing with here.  The pmap_enter(9) and pmap_remove(9)
functions handle conflicting cache aliases, whereas pmap_map_direct(9) and
pmap_kenter_pa(9) assume that the pages is exclusively mapped in the kernel
pmap.

ok deraadt@

Revision 1.83 / (download) - annotate - [select for diffs], Mon Jul 11 11:33:17 2022 UTC (23 months ago) by mpi
Branch: MAIN
Changes since 1.82: +54 -27 lines
Diff to previous 1.82 (colored)

Simplify the aiodone daemon which is only used for async writes.

- Remove unused support for asynchronous read, including error conditions

- Grab the proper lock for each page that has been written to swap.  This
  allows to enable an assertion in uvm_page_unbusy().

- Move the uvm_anon_release() call outside of uvm_page_unbusy() and
  assert for the different anon cases.

ok beck@, kettenis@

Revision 1.82 / (download) - annotate - [select for diffs], Thu Jun 30 20:28:42 2022 UTC (23 months, 1 week ago) by mpi
Branch: MAIN
Changes since 1.81: +20 -10 lines
Diff to previous 1.81 (colored)

Reduce allocations and possible failures in uvm_pagermapin/out().

. If a direct map exists use it to map single-page allocations
. Use pmap_kenter_pa() instead of pmap_enter() in all other cases.

This speeds up file-based mmap up to 75% when I/O are performed and it
also reduces possible allocations failtures in the page daemon making
it more stable in OOM situations.

ok kettenis@, beck@

Revision 1.81 / (download) - annotate - [select for diffs], Tue Jun 28 19:07:40 2022 UTC (23 months, 1 week ago) by mpi
Branch: MAIN
Changes since 1.80: +9 -7 lines
Diff to previous 1.80 (colored)

Reserve a second segment for the page daemon.

This ensures uvm_swap_io() can succeeds even in OOM situations because two
uvm_pagermapin() allocations, requiring a segment each, are needed to bounce
or encrypt a swap cluster.

ok beck@, kettenis@

Revision 1.80 / (download) - annotate - [select for diffs], Tue Jun 28 12:10:37 2022 UTC (23 months, 2 weeks ago) by mpi
Branch: MAIN
Changes since 1.79: +42 -29 lines
Diff to previous 1.79 (colored)

Move the guts of uvm_aio_aiodone() into a separate function.

This will help dealing with error cases.

No functionnal changes.

Revision 1.79 / (download) - annotate - [select for diffs], Tue Jun 28 10:45:55 2022 UTC (23 months, 2 weeks ago) by mpi
Branch: MAIN
Changes since 1.78: +1 -7 lines
Diff to previous 1.78 (colored)

Do not clean PG_BUSY before calling uvm_anon_release().

Fix an assertion reported by gkoehler@.

ok kettenis@

Revision 1.78 / (download) - annotate - [select for diffs], Fri Feb 18 09:04:38 2022 UTC (2 years, 3 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.77: +7 -4 lines
Diff to previous 1.77 (colored)

Convert KVA allocation to km_alloc(9).

ok mpi@

Revision 1.77 / (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.76: +42 -2 lines
Diff to previous 1.76 (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.76 / (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_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9
Changes since 1.75: +4 -4 lines
Diff to previous 1.75 (colored)

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

No functional change.

ok mlarkin@

Revision 1.75 / (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.74: +2 -2 lines
Diff to previous 1.74 (colored)

spelling

ok mpi@

Revision 1.74 / (download) - annotate - [select for diffs], Tue Jan 19 13:21:36 2021 UTC (3 years, 4 months ago) by mpi
Branch: MAIN
Changes since 1.73: +3 -2 lines
Diff to previous 1.73 (colored)

(re)Introduce locking for amaps & anons.

A rwlock is attached to every amap and is shared with all its anon.  The
same lock will be used by multiple amaps if they have anons in common.

This should be enough to get the upper part of the fault handler out of the
KERNEL_LOCK() which seems to bring up to 20% improvements in builds.

This is based/copied/adapted from the most recent work done in NetBSD which
is an evolution of the precendent simple_lock scheme.

Tested by many, thanks!

ok kettenis@, mvs@

Revision 1.73 / (download) - annotate - [select for diffs], Wed Oct 21 09:08:14 2020 UTC (3 years, 7 months ago) by mpi
Branch: MAIN
Changes since 1.72: +2 -2 lines
Diff to previous 1.72 (colored)

Constify and use C99 initializer for "struct uvm_pagerops".

While here put some KERNEL_ASSERT_LOCKED() in the functions called from
the page fault handler.  The removal of locking of `uobj' will need to be
revisited and these are good indicator that something is missing and that
many comments are lying.

ok kettenis

Revision 1.72 / (download) - annotate - [select for diffs], Sun Dec 8 12:37:45 2019 UTC (4 years, 6 months ago) by mpi
Branch: MAIN
CVS Tags: OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7
Changes since 1.71: +2 -2 lines
Diff to previous 1.71 (colored)

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

ok visa@, jca@

Revision 1.71 / (download) - annotate - [select for diffs], Wed Dec 17 19:42:15 2014 UTC (9 years, 5 months ago) by tedu
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1, OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9, OPENBSD_5_8_BASE, OPENBSD_5_8, OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.70: +2 -2 lines
Diff to previous 1.70 (colored)

remove lock.h from uvm_extern.h. another holdover from the simpletonlock
era. fix uvm including c files to include lock.h or atomic.h as necessary.
ok deraadt

Revision 1.70 / (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.69: +4 -4 lines
Diff to previous 1.69 (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.69 / (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.68: +1 -2 lines
Diff to previous 1.68 (colored)

remove uneeded proc.h includes
ok mpi@ kspillner@

Revision 1.68 / (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.67: +1 -8 lines
Diff to previous 1.67 (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.67 / (download) - annotate - [select for diffs], Fri May 9 03:54:28 2014 UTC (10 years, 1 month ago) by tedu
Branch: MAIN
Changes since 1.66: +1 -4 lines
Diff to previous 1.66 (colored)

stop using B_AGE, it was effectively retired some time ago.

Revision 1.66 / (download) - annotate - [select for diffs], Thu May 8 20:08:50 2014 UTC (10 years, 1 month ago) by kettenis
Branch: MAIN
Changes since 1.65: +4 -3 lines
Diff to previous 1.65 (colored)

Fix some potential integer overflows caused by converting a page number into
an offset/size/address by shifting by PAGE_SHIFT.  Make uvm_objwrire/unwire
use voff_t instead of off_t.  The former is the right type here even if it is
equivalent to the latter.

Inspired by a somewhat similar changes in Bitrig.

ok deraadt@, guenther@

Revision 1.65 / (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.64: +8 -49 lines
Diff to previous 1.64 (colored)

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

Revision 1.64 / (download) - annotate - [select for diffs], Sat Nov 2 00:08:17 2013 UTC (10 years, 7 months ago) by krw
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.63: +2 -2 lines
Diff to previous 1.63 (colored)

No need to cast constants or simple variables to (daddr_t). Use
(u_int64_t) instead of (daddr_t) when casting a variable in an
expression passed to DL_SETDSIZE().

Change a variable counting open files from daddr_t to int64_t.

ok deraadt@ with the tweak to fix that pesky expression.

Revision 1.63 / (download) - annotate - [select for diffs], Tue Jun 11 16:42:19 2013 UTC (11 years ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.62: +9 -9 lines
Diff to previous 1.62 (colored)

final removal of daddr64_t.  daddr_t has been 64 bit for a long enough
test period; i think 3 years ago the last bugs fell out.
ok otto beck others

Revision 1.62 / (download) - annotate - [select for diffs], Thu May 30 16:29:46 2013 UTC (11 years ago) by tedu
Branch: MAIN
Changes since 1.61: +8 -29 lines
Diff to previous 1.61 (colored)

remove lots of comments about locking per beck's request

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

remove simple_locks from uvm code. ok beck deraadt

Revision 1.60 / (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_3_BASE, OPENBSD_5_3, OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0
Changes since 1.59: +3 -24 lines
Diff to previous 1.59 (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.59 / (download) - annotate - [select for diffs], Fri Apr 15 22:00:46 2011 UTC (13 years, 1 month ago) by oga
Branch: MAIN
Changes since 1.58: +1 -2 lines
Diff to previous 1.58 (colored)

for uvm_pager_dropcluster in the PG_RELEASED case we specifically unbusy the
page so that um_anfree will free it for us.

uvm_anfree does a pmap_page_protect(, VM_PROT_NONE) just before it frees the
page, so we don't need to do it here ourselves.

ok ariane@

Revision 1.58 / (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.57: +2 -22 lines
Diff to previous 1.57 (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.57 / (download) - annotate - [select for diffs], Sat Jul 24 15:40:39 2010 UTC (13 years, 10 months ago) by kettenis
Branch: MAIN
CVS Tags: OPENBSD_4_9_BASE, OPENBSD_4_9, OPENBSD_4_8_BASE, OPENBSD_4_8
Changes since 1.56: +9 -23 lines
Diff to previous 1.56 (colored)

Don't sleep while holding the uvm_psel_lck mutex.  Should fix "locking against
myself" panics that some people have seen over the last year-and-a-half.

Cherry picked from a more complex (and therefore scarier) diff from oga@.

ok tedu@, oga@

Revision 1.56 / (download) - annotate - [select for diffs], Sun Jun 27 20:53:31 2010 UTC (13 years, 11 months ago) by oga
Branch: MAIN
Changes since 1.55: +1 -7 lines
Diff to previous 1.55 (colored)

Kill another #ifdef UBC chunk that was annoying me while doing something
else.

ok thib@

Revision 1.55 / (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.54: +2 -2 lines
Diff to previous 1.54 (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.54 / (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.53: +18 -58 lines
Diff to previous 1.53 (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.53 / (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.52: +2 -2 lines
Diff to previous 1.52 (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.52 / (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.51: +57 -17 lines
Diff to previous 1.51 (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.51 / (download) - annotate - [select for diffs], Sat May 23 14:06:37 2009 UTC (15 years ago) by oga
Branch: MAIN
Changes since 1.50: +18 -58 lines
Diff to previous 1.50 (colored)

More PG_RELEASED cleaning.

similar to the aobj.c changes, this one does vnodes. Vnodes are more
complex because they actaully have to sync to backing store. So firstly,
convert sync to sleep instead of setting released.

Now, for  backing store, in the PGO_FREE case, if we set PG_RELEASED
*before* an async io, (nothing else will see it, the page is busy), then
we can ignore the page after the io is done. We could do something
similar for PGO_DEACTIVATE too, but that is another change. On error we
just clear the released flag, nothing else sets it for uobj pages other
than aiodoned.

ok thib@, beck@, ariane@

Revision 1.50 / (download) - annotate - [select for diffs], Mon May 4 18:08:06 2009 UTC (15 years, 1 month ago) by oga
Branch: MAIN
Changes since 1.49: +2 -2 lines
Diff to previous 1.49 (colored)

Instead of keeping two ints in the uvm structure specifically just to
sleep on them (and otherwise ignore them) sleep on the pointer to the
{aiodoned,pagedaemon}_proc members, and nuke the two extra words.

"no objections" art@, ok beck@.

Revision 1.49 / (download) - annotate - [select for diffs], Mon Apr 6 12:02:52 2009 UTC (15 years, 2 months ago) by oga
Branch: MAIN
Changes since 1.48: +3 -3 lines
Diff to previous 1.48 (colored)

Instead of doing splbio(); simple_lock(&uvm.aiodoned_lock); just replace
the simple lock with a real lock - a IPL_BIO mutex. While i'm here, make
the sleeping condition one hell of a lot simpler in the aio daemon.

some ideas from and ok art@.

Revision 1.48 / (download) - annotate - [select for diffs], Wed Mar 25 20:00:18 2009 UTC (15 years, 2 months ago) by oga
Branch: MAIN
Changes since 1.47: +35 -28 lines
Diff to previous 1.47 (colored)

Move all of the pseudo-inline functions in uvm into C files.

By pseudo-inline, I mean that if a certain macro was defined, they would
be inlined. However, no architecture defines that, and none has for a
very very long time. Therefore mainly this just makes the code a damned
sight easier to read. Some k&r -> ansi declarations while I'm in there.

"just commit it" art@. ok weingart@.

Revision 1.47 / (download) - annotate - [select for diffs], Fri Mar 20 15:19:04 2009 UTC (15 years, 2 months ago) by oga
Branch: MAIN
Changes since 1.46: +2 -2 lines
Diff to previous 1.46 (colored)

While working on some stuff in uvm I've gotten REALLY sick of reading
K&R function declarations, so switch them all over to ansi-style, in
accordance with the prophesy.

"go for it" art@

Revision 1.46 / (download) - annotate - [select for diffs], Tue Jan 27 19:21:03 2009 UTC (15 years, 4 months ago) by ariane
Branch: MAIN
CVS Tags: OPENBSD_4_5_BASE, OPENBSD_4_5
Changes since 1.45: +191 -101 lines
Diff to previous 1.45 (colored)

Simplify page-out/page-in map management; fix rare pager deadlock.

Ok: miod, tedu

Revision 1.45 / (download) - annotate - [select for diffs], Mon Nov 24 19:55:33 2008 UTC (15 years, 6 months ago) by thib
Branch: MAIN
Changes since 1.44: +1 -27 lines
Diff to previous 1.44 (colored)

garbage collect uvm_errno2vmerror();

ok miod@, art@

Revision 1.44 / (download) - annotate - [select for diffs], Mon Nov 26 22:49:08 2007 UTC (16 years, 6 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_4_4_BASE, OPENBSD_4_4, OPENBSD_4_3_BASE, OPENBSD_4_3
Changes since 1.43: +3 -2 lines
Diff to previous 1.43 (colored)

In uvm_aio_aiodone(), kill the variable-sized array on stack, and use a
fixed size array which size should match any buf; if a bogus buf is passed
to this function, the kernel will KASSERT instead of potentially running out
of stack and having an undefined behaviour.

ok deraadt@

Revision 1.43 / (download) - annotate - [select for diffs], Wed Jun 6 17:15:14 2007 UTC (17 years ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_4_2_BASE, OPENBSD_4_2
Changes since 1.42: +9 -4 lines
Diff to previous 1.42 (colored)

now that all partition size/offsets are potentially 64-bit, change the
type of all variables to daddr64_t.  this includes the APIs for XXsize()
and XXdump(), all range checks inside bio drivers, internal variables
for disklabel handling, and even uvm's swap offsets.  re-read numerous
times by otto, miod, krw, thib to look for errors

Revision 1.42 / (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.41: +24 -21 lines
Diff to previous 1.41 (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.41 / (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.40: +18 -18 lines
Diff to previous 1.40 (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.40 / (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.39: +2 -2 lines
Diff to previous 1.39 (colored)

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

Revision 1.39 / (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_1_BASE, OPENBSD_4_1, OPENBSD_4_0_BASE, OPENBSD_4_0
Changes since 1.38: +5 -5 lines
Diff to previous 1.38 (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.38 / (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.37: +4 -4 lines
Diff to previous 1.37 (colored)

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

Revision 1.37 / (download) - annotate - [select for diffs], Tue Jul 26 07:11:55 2005 UTC (18 years, 10 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_3_9_BASE, OPENBSD_3_9, OPENBSD_3_8_BASE, OPENBSD_3_8
Changes since 1.36: +1 -14 lines
Diff to previous 1.36 (colored)

 - Make a UVM_OBJ_IS_DEVICE macro.
 - Use it to skip device mappings while dumping core.
 - Ignore EFAULT errors while dumping core since they can happen
   even for valid mappings. Just skip that part of the core file and
   let it get automagically zero-filled.

This fixes the broken X core dumps that people have been seeing and also
fixes some other potential problems that could prevent core dumps (mmaps
beyond EOF, etc.).

tedu@ ok

Revision 1.36 / (download) - annotate - [select for diffs], Tue May 24 21:11:47 2005 UTC (19 years ago) by tedu
Branch: MAIN
Changes since 1.35: +2 -2 lines
Diff to previous 1.35 (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.4.4.10 / (download) - annotate - [select for diffs], Sat Jun 5 23:13:13 2004 UTC (20 years ago) by niklas
Branch: SMP
Changes since 1.4.4.9: +3 -1 lines
Diff to previous 1.4.4.9 (colored) to branchpoint 1.4 (colored) next main 1.5 (colored)

Merge with the trunk

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: SMP_SYNC_B, SMP_SYNC_A, OPENBSD_3_7_BASE, OPENBSD_3_7, OPENBSD_3_6_BASE, OPENBSD_3_6, OPENBSD_3_5_BASE, OPENBSD_3_5
Changes since 1.34: +3 -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.28.2.5 / (download) - annotate - [select for diffs], Mon May 19 22:41:30 2003 UTC (21 years ago) by tedu
Branch: UBC
Changes since 1.28.2.4: +4 -4 lines
Diff to previous 1.28.2.4 (colored) to branchpoint 1.28 (colored) next main 1.29 (colored)

sync

Revision 1.4.4.9 / (download) - annotate - [select for diffs], Tue May 13 19:36:58 2003 UTC (21 years, 1 month ago) by ho
Branch: SMP
Changes since 1.4.4.8: +6 -6 lines
Diff to previous 1.4.4.8 (colored) to branchpoint 1.4 (colored)

Sync the SMP branch to -current. This includes moving to ELF.

Revision 1.34 / (download) - annotate - [select for diffs], Sat Mar 29 01:13:57 2003 UTC (21 years, 2 months ago) by mickey
Branch: MAIN
CVS Tags: UBC_SYNC_A, OPENBSD_3_4_BASE, OPENBSD_3_4
Changes since 1.33: +6 -6 lines
Diff to previous 1.33 (colored)

ubchist is not a fully cooked kadaver and though use the other well formed pdhist one until ubc gaets back. art@ ok

Revision 1.4.4.8 / (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.7: +8 -4 lines
Diff to previous 1.4.4.7 (colored) to branchpoint 1.4 (colored)

Sync the SMP branch with 3.3

Revision 1.28.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.28.2.3: +15 -20 lines
Diff to previous 1.28.2.3 (colored) to branchpoint 1.28 (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.33 / (download) - annotate - [select for diffs], Tue Oct 29 18:30:21 2002 UTC (21 years, 7 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_3_3_BASE, OPENBSD_3_3
Changes since 1.32: +2 -2 lines
Diff to previous 1.32 (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.28.2.3 / (download) - annotate - [select for diffs], Tue Jun 11 03:33:04 2002 UTC (22 years ago) by art
Branch: UBC
Changes since 1.28.2.2: +8 -4 lines
Diff to previous 1.28.2.2 (colored) to branchpoint 1.28 (colored)

Sync UBC branch to -current

Revision 1.32 / (download) - annotate - [select for diffs], Fri May 24 13:10:53 2002 UTC (22 years ago) by art
Branch: MAIN
CVS Tags: UBC_SYNC_B, OPENBSD_3_2_BASE, OPENBSD_3_2
Changes since 1.31: +4 -4 lines
Diff to previous 1.31 (colored)

Make sure that b_iodone handlers are called at splbio (and splassert(IPL_BIO) in all known callers, just to make sure).

Revision 1.31 / (download) - annotate - [select for diffs], Wed May 22 14:29:20 2002 UTC (22 years ago) by art
Branch: MAIN
Changes since 1.30: +5 -1 lines
Diff to previous 1.30 (colored)

splassert(IPL_BIO) in the b_iodone handlers.

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: +103 -75 lines
Diff to previous 1.4.4.6 (colored) to branchpoint 1.4 (colored)

Merge in trunk

Revision 1.28.2.2 / (download) - annotate - [select for diffs], Sat Feb 2 03:28:27 2002 UTC (22 years, 4 months ago) by art
Branch: UBC
Changes since 1.28.2.1: +105 -529 lines
Diff to previous 1.28.2.1 (colored) to branchpoint 1.28 (colored)

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

Revision 1.28.2.1 / (download) - annotate - [select for diffs], Thu Jan 31 22:55:51 2002 UTC (22 years, 4 months ago) by niklas
Branch: UBC
Changes since 1.28: +18 -25 lines
Diff to previous 1.28 (colored)

Merge in -current, builds on i386, otherwise untested

Revision 1.30 / (download) - annotate - [select for diffs], Wed Jan 2 22:23:25 2002 UTC (22 years, 5 months ago) by miod
Branch: MAIN
CVS Tags: OPENBSD_3_1_BASE, OPENBSD_3_1
Changes since 1.29: +24 -26 lines
Diff to previous 1.29 (colored)

Back out a few more uvm changes, especially wrt swap usage.
This unbreaks m68k m88k sparc and perhaps others, which eventually froze
when hitting swap.
Tested by various people on various platforms.
ok art@

Revision 1.29 / (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.28: +82 -52 lines
Diff to previous 1.28 (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: +51 -81 lines
Diff to previous 1.4.4.5 (colored) to branchpoint 1.4 (colored)

Merge in -current

Revision 1.28 / (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.27: +4 -4 lines
Diff to previous 1.27 (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.27 / (download) - annotate - [select for diffs], Fri Nov 30 05:45:33 2001 UTC (22 years, 6 months ago) by csapuntz
Branch: MAIN
Changes since 1.26: +2 -2 lines
Diff to previous 1.26 (colored)

Call buf_cleanout, which handles wakeups

Revision 1.26 / (download) - annotate - [select for diffs], Thu Nov 29 01:59:19 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.25: +6 -3 lines
Diff to previous 1.25 (colored)

Correctly handle b_vp with bgetvp and brelvp in {get,put}pages.
Prevents panics caused by vnodes being recycled under our feet.

Revision 1.25 / (download) - annotate - [select for diffs], Wed Nov 28 19:28:15 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.24: +31 -32 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 13:47:40 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.23: +19 -43 lines
Diff to previous 1.23 (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.23 / (download) - annotate - [select for diffs], Tue Nov 27 05:27:12 2001 UTC (22 years, 6 months ago) by art
Branch: MAIN
Changes since 1.22: +2 -10 lines
Diff to previous 1.22 (colored)

Merge in the unified buffer cache code as found in NetBSD 2001/03/10. The
code is written mostly by Chuck Silvers <chuq@chuq.com>/<chs@netbsd.org>.

Tested for the past few weeks by many developers, should be in a pretty stable
state, but will require optimizations and additional cleanups.

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: +285 -88 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], Mon Nov 12 01:26:10 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.21: +38 -50 lines
Diff to previous 1.21 (colored)

Bring in more changes from NetBSD. Mostly pagedaemon improvements.

Revision 1.21 / (download) - annotate - [select for diffs], Sat Nov 10 18:42:31 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.20: +261 -48 lines
Diff to previous 1.20 (colored)

Merge in some parts of the ubc work that has been done in NetBSD that are not
UBC, but prerequsites for it.

- Create a daemon that processes async I/O (swap and paging in the future)
  requests that need processing in process context and that were processed
  in the pagedaemon before.
- Convert some ugly ifdef DIAGNOSTIC code to less intrusive KASSERTs.
- misc other cleanups.

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: +2 -3 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: +3 -3 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 01:35:04 2001 UTC (22 years, 7 months ago) by art
Branch: MAIN
Changes since 1.17: +2 -4 lines
Diff to previous 1.17 (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.17 / (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.16: +2 -3 lines
Diff to previous 1.16 (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: +87 -122 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.16 / (download) - annotate - [select for diffs], Thu Sep 20 17:02:32 2001 UTC (22 years, 8 months ago) by mpech
Branch: MAIN
CVS Tags: OPENBSD_3_0_BASE, OPENBSD_3_0
Changes since 1.15: +3 -3 lines
Diff to previous 1.15 (colored)

occured->occurred

idea from deraadt@ via NetBSD
millert@ ok

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
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: +22 -56 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], Mon Aug 6 14:03:05 2001 UTC (22 years, 10 months ago) by art
Branch: MAIN
Changes since 1.12: +6 -6 lines
Diff to previous 1.12 (colored)

Add a new type voff_t (right now it's typedefed as off_t) used for offsets
into objects.

Gives the possibilty to mmap beyond the size of vaddr_t.

From NetBSD.

Revision 1.12 / (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.11: +58 -56 lines
Diff to previous 1.11 (colored)

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

Revision 1.11 / (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.10: +3 -4 lines
Diff to previous 1.10 (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.10 / (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.9: +8 -9 lines
Diff to previous 1.9 (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:07 2001 UTC (22 years, 11 months ago) by niklas
Branch: SMP
Changes since 1.4.4.2: +2 -2 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.9 / (download) - annotate - [select for diffs], Fri Jun 8 08:09:40 2001 UTC (23 years ago) by art
Branch: MAIN
Changes since 1.8: +2 -2 lines
Diff to previous 1.8 (colored)

Change the paddr_t pmap_extract(struct pmap *, vaddr_t) interface to
boolean_t pmap_extract(struct pmap *, vaddr_t, paddr_t *).
Matches NetBSD. Tested by various people on various platforms.

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

merge in approximately 2.9 into SMP branch

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

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

Revision 1.7 / (download) - annotate - [select for diffs], Thu Mar 8 15:21:37 2001 UTC (23 years, 3 months ago) by smart
Branch: MAIN
Changes since 1.6: +2 -2 lines
Diff to previous 1.6 (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.6 / (download) - annotate - [select for diffs], Mon Jan 29 02:07:47 2001 UTC (23 years, 4 months ago) by niklas
Branch: MAIN
Changes since 1.5: +1 -0 lines
Diff to previous 1.5 (colored)

$OpenBSD$

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

Sync with -current

Revision 1.5 / (download) - annotate - [select for diffs], Thu Mar 16 22:11:05 2000 UTC (24 years, 3 months ago) by art
Branch: MAIN
CVS Tags: OPENBSD_2_8_BASE, OPENBSD_2_8, OPENBSD_2_7_BASE, OPENBSD_2_7
Changes since 1.4: +10 -4 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:23 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: +2 -15 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:24 1999 UTC (24 years, 9 months ago) by art
Branch: MAIN
Changes since 1.2: +1 -6 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:08 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:17 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.