History log of /src/share/man/man9/pmap.9
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 netbsd-10-0-RC1 netbsd-10-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
# 1.48 16-Aug-2020 thorpej

Be explcit that all calls to pmap_activate() and pmap_deactivate()
from MI code are made with preemption disabled and with l == curlwp.


Revision tags: phil-wifi-20200421 phil-wifi-20200411 phil-wifi-20200406
# 1.47 14-Mar-2020 ad

pmap_remove_all(): Return a boolean value to indicate the behaviour. If
true, all mappings have been removed, the pmap is totally cleared out, and
UVM can then avoid doing the work to call pmap_remove() for each map entry.
If false, either nothing has been done, or some helpful arch-specific voodoo
has taken place.


Revision tags: netbsd-9-4-RELEASE netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE is-mlppp-base netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 pgoyette-compat-20190127 pgoyette-compat-20190118
# 1.46 14-Jan-2019 wiz

Remove Pp before It, where it has no effect.


# 1.45 13-Jan-2019 mrg

add a note about pmap_activate() and pmap_deactivate() not being allow to block.


Revision tags: netbsd-8-3-RELEASE netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 netbsd-7-2-RELEASE pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 netbsd-7-1-2-RELEASE pgoyette-compat-base netbsd-7-1-1-RELEASE matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 bouyer-socketcan-base pgoyette-localcount-20170107 netbsd-7-1-RC1 pgoyette-localcount-20161104 netbsd-7-0-2-RELEASE localcount-20160914 netbsd-7-nhusb-base pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 tls-maxphys-base yamt-pagecache-base5 yamt-pagecache-base4
# 1.44 16-Feb-2012 yamt

branches: 1.44.30; 1.44.32;
fix a description of PMAP_PREFER argument.


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base cherry-xenmp-base uebayasi-xip-base7 bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 uebayasi-xip-base6 uebayasi-xip-base5 uebayasi-xip-base4 uebayasi-xip-base3 uebayasi-xip-base2
# 1.43 06-Jul-2010 cegger

branches: 1.43.6;
Turn PMAP_NOCACHE into MI flag.
Add MI flags PMAP_WRITE_COMBINE, PMAP_WRITE_BACK, PMAP_NOCACHE_OVR.
Update pmap(9) manpage.

hppa: Remove MD PMAP_NOCACHE flag as it exists as MI flag
mips: Rename MD PMAP_NOCACHE to PGC_NOCACHE.

x86: Implement new MI flags using Page-Attribute Tables.
x86: Implement BUS_SPACE_MAP_PREFETCHABLE.

Patch presented on tech-kern@:
http://mail-index.netbsd.org/tech-kern/2010/06/30/msg008458.html

No comments on this last version.


Revision tags: uebayasi-xip-base1
# 1.42 22-Mar-2010 joerg

branches: 1.42.2;
Use .In instead of .Aq Pa for header files.


Revision tags: matt-premerge-20091211
# 1.41 07-Nov-2009 wiz

Remove leading zero from Dd. New sentence, new line.


# 1.40 07-Nov-2009 cegger

Update pmap(9) manpage:
- Document new flags argument for pmap_kenter_pa
- Document new flags argument for pmap_enter as well
- Document the prot argument for pmap_kenter_pa. This is copy&pasted from
pmap_enter.
Patch showed on tech-kern@ http://mail-index.netbsd.org/tech-kern/2009/11/04/msg006436.html
Thanks to Martin Husemann for his comments to the original patch version.


# 1.39 21-Oct-2009 rmind

pmap(9): G/C pmap_collect, bump date.


# 1.38 03-Aug-2009 pooka

play the "make signature match implementation-after-churn" game


Revision tags: jym-xensuspend-nbase jym-xensuspend-base
# 1.37 09-Dec-2008 pooka

pmap_kernel() is syntactic sugar for kernel_pmap_ptr now.


Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 netbsd-5-base matt-mips64-base2 wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-base2 wrstuden-revivesa-base mjf-devfs2-base
# 1.36 30-Apr-2008 martin

Convert TNF licenses to new 2 clause variant


Revision tags: yamt-pf42-baseX yamt-pf42-base keiichi-mipv6-nbase keiichi-mipv6-base matt-armv6-nbase matt-armv6-base hpcarm-cleanup-base
# 1.35 25-Dec-2007 jmcneill

branches: 1.35.4; 1.35.6;
pmap_phys_address: the prototype for this asks for a paddr_t, not an int.


Revision tags: matt-armv6-prevmlocking cube-autoconf-base
# 1.34 08-Aug-2007 pooka

branches: 1.34.2;
boolean_t -> bool


Revision tags: matt-mips64-base
# 1.33 24-Jun-2007 rumble

TRUE -> true, FALSE -> false.


# 1.32 18-Dec-2006 simonb

Explicitly mention that pmap_extract() should deal with KSEG-style
kernel addresses.


Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base netbsd-4-base
# 1.31 24-Sep-2006 tsutsui

Sync PMAP_PREFER(9) usage with -current implemetation.


Revision tags: abandoned-netbsd-4-base chap-midi-nbase chap-midi-base
# 1.30 09-Sep-2005 wiz

Uppercase CPU. Remove a superfluous double quote. Use Dv for defined
values.


# 1.29 11-Aug-2005 yamt

document pmap_procwr.


Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
# 1.28 11-Jan-2005 wiz

Grammar improvements.


# 1.27 09-Jan-2005 yamt

document PMAP_PREFER. bump date.


# 1.26 23-Apr-2004 simonb

s/the the/the/ (only in sources that aren't regularly imported from
elsewhere).


Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
# 1.25 20-Jan-2004 pooka

pmap_{de,}activate() take struct lwp * now

+ bump date!


# 1.24 10-May-2003 thorpej

Back out the following chagne:
http://mail-index.netbsd.org/source-changes/2003/05/08/0068.html

There were some side-effects that I didn't anticipate, and fixing them
is proving to be more difficult than I thought, do just eject for now.
Maybe one day we can look at this again.

Fixes PR kern/21517.


# 1.23 08-May-2003 thorpej

Simplify the way the bounds of the managed kernel virtual address
space is advertised to UVM by making virtual_avail and virtual_end
first-class exported variables by UVM. Machine-dependent code is
responsible for initializing them before main() is called. Anything
that steals KVA must adjust these variables accordingly.

This reduces the number of instances of this info from 3 to 1, and
Simplify the way the bounds of the managed kernel virtual address
space is advertised to UVM by making virtual_avail and virtual_end
first-class exported variables by UVM. Machine-dependent code is
responsible for initializing them before main() is called. Anything
that steals KVA must adjust these variables accordingly.

This reduces the number of instances of this info from 3 to 1, and
simplifies the pmap(9) interface by removing the pmap_virtual_space()
function call, and removing two arguments from pmap_steal_memory().

Simplify the way the bounds of the managed kernel virtual address
space is advertised to UVM by making virtual_avail and virtual_end
first-class exported variables by UVM. Machine-dependent code is
responsible for initializing them before main() is called. Anything
that steals KVA must adjust these variables accordingly.

This reduces the number of instances of this info from 3 to 1, and
simplifies the pmap(9) interface by removing the pmap_virtual_space()
function call, and removing two arguments from pmap_steal_memory().

This also eliminates some kludges such as having to burn kernel_map
entries on space used by the kernel and stolen KVA.

This also eliminates use of VM_{MIN,MAX}_KERNEL_ADDRESS from MI code,
this giving MD code greater flexibility over the bounds of the managed
kernel virtual address space if a given port's specific platforms can
vary in this regard (this is especially true of the evb* ports).


# 1.22 16-Apr-2003 wiz

Use
.In header.h
instead of
.Fd #include \*[Lt]header.h\*[Gt]
Much easier to read and write, and supported by groff for ages.
Okayed by ross.


# 1.21 07-Apr-2003 wiz

More e.g. cleanup. Igor Sobrado, PR 19692.


# 1.20 14-Feb-2003 grant

The correct capitalisation of 'NetBSD.org' is (you
guessed it) 'NetBSD.org'.

some mdoc fixes.


# 1.19 04-Feb-2003 perry

"Utilize" has exactly the same meaning as "use," but it is more
difficult to read and understand. Most manuals of English style
therefore say that you should use "use".


Revision tags: fvdl_fs64_base
# 1.18 27-Sep-2002 wiz

Bump date for pmap_remove addition.
Begin new sentences on new lines.
Use .Aq as much as possible instead of \*[Lt]foo\*[Gt].


# 1.17 22-Sep-2002 chs

document new stuff:
UVM_KMF_CANFAIL, uvm_uarea_alloc(), uvm_uarea_free(), pmap_remove_all().


# 1.16 14-Aug-2002 wiz

Mdoc nits unrelated to last commit, and bump date for last commit.


# 1.15 14-Aug-2002 thorpej

* Document the existing requirement that machine-independent code
not pmap_kenter_pa() a mapping at a virtual address for which a
valid mapping already exists.
* Document the new requirement that machine-independent code not
not pmap_kenter_pa() a mapping with VM_PROT_EXEC.


Revision tags: netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
# 1.14 01-Apr-2002 chs

branches: 1.14.2;
correct and clarify the previous revision.


# 1.13 28-Mar-2002 eeh

Explicitly document previously undocumented (and changed) semantics
of pmap_clear_reference and pmap_clear_modify.


# 1.12 13-Feb-2002 ross

Generate <>& symbolically. I'm avoiding .../dist/... directories for now.


# 1.11 07-Feb-2002 ross

Edit -mdoc usage.

* There is no -indent option to .Bd or .Bl, although you would
never know that from its frequent use in this tree. There is a
"-offset indent" combination that makes sense, and you can certainly
say "-width indent".

* Also, you can't markup the -width option argument, tho you CAN
use a callable macro. So "-width Ar filename" doesn't make sense,
but either "-width Ar" or "-width filename" does, as might something
like "-width xxfilename" for a little extra space.

* There are a lot of needlessly complex hanging tag macros in man4 used
to create simple item lists. Those should be simplified one of these
days before someone copies and edits yet another man4 page.


# 1.10 26-Dec-2001 wiz

Sort sections.


# 1.9 10-Sep-2001 wiz

Use standard section headers.


# 1.8 10-Sep-2001 chris

Update man page with pmap_update change.


# 1.7 04-Sep-2001 wiz

Boring whitespace fixes.


# 1.6 11-Aug-2001 matt

In the summary, fix pmap_steal_memory return type from void to vaddr_t.


# 1.5 28-Jul-2001 chs

vm_page_t -> struct vm_page *.


Revision tags: kqueue-base
# 1.4 25-Apr-2001 kleink

Tyop poleece.


# 1.3 25-Apr-2001 bjh21

Fix typo: maching -> machine


# 1.2 24-Apr-2001 gmcgarry

Minor punctuation corrections.


# 1.1 24-Apr-2001 thorpej

Add a manual page that describes the pmap(9) API and the requirements
of a pmap module.

Many thanks to Bill Sommerfeld for reviewing the document for me.