Home | History | Annotate | Download | only in pmap
History log of /src/sys/uvm/pmap/pmap.h
RevisionDateAuthorComments
 1.28  25-Nov-2024  skrll Sprinkle #ifdef _KERNEL
 1.27  18-Apr-2024  skrll Fix types in pmap_page_clear_attributes so that the top bits of
the u_long mdpg_attrs aren't dropped giving atomic_cas_ulong no
chance of completing if any of the top bits is set.

Update pmap_page_set_attributes for consistency.

An ATF test run completed for me with this fix.

port-riscv/58006: ATF tests no longer complete on riscv-riscv64
 1.26  03-Nov-2022  skrll branches: 1.26.2;
_KERNEL_OPT protection
 1.25  03-Nov-2022  skrll Provide MI PMAP support on AARCH64
 1.24  27-Oct-2022  skrll Rename pm_count to pm_refcnt
 1.23  27-Oct-2022  skrll Fix the crash(1) build for mips platforms
 1.22  26-Oct-2022  skrll MI PMAP hardware page table walker support.

This is based on code given to me by Matt Thomas a long time ago with
many updates and bugs fixes from me.
 1.21  07-May-2022  rin Introduce PMAP_PV_TRACK_ONLY_STUBS option, by which only empty stubs for
global functions in pmap_pvt.h are provided, instead of real support for
PV tracking.

Necessary for powerpc: Only one sub-arch (oea) has PV tracking support.
Others (booke/ibm4xx) do not at the moment (probably never for ibm4xx),
but __HAVE_PMAP_PV_TRACK is necessary, so that modules can be shared by
all of sub-archs.
 1.20  19-Mar-2021  skrll Support pmap_growkernel and KASAN shadow mapping of the new KVA.

Neither mips nor ppc booke actually use pmap_growkernel (at present).

Thanks to rin@ for testing a similar patch on ppc booke.
 1.19  21-Dec-2020  skrll Remove variable in function declaration argument
 1.18  20-Dec-2020  skrll Support __HAVE_PMAP_PV_TRACK in sys/uvm/pmap based pmaps (aka common pmap)
 1.17  20-Aug-2020  mrg branches: 1.17.2;
move pmap segtab history into a new history of only 1000 entries,
but will overflow much slower than the main pmap history.

move various debug info into kernhist. make pte array checker
into an array and use it in pmap_segtab_release() and
pmap_pte_reserve(). move check before MD callback(), incase it
wants to change ptes for some reason (they're passed in, but
this callback is currently always NULL.)

clean up some history logs to reduce the number of lines required.
 1.16  07-Aug-2020  skrll Provide a pmap_segtab_deactivate for symmetry with pmap_segtab_activate
and use it in pmap_deactivate

Call pmap_md_xtab_{,de}activate from pmap_segtab_{,de}activate to be used
for PMAP_HWPAGEWALKER and any caches ops that might be required.

Provide empty (for now) pmap_md_xtab_{,de}activate functions on the
platforms that use sys/uvm/pmap
 1.15  08-Jul-2020  skrll Comment updates
 1.14  15-Mar-2020  rin Fix build for ports using uvm/pmap; pmap_remove_all() returns a boolean.
 1.13  11-Mar-2020  thorpej With DEBUG defined, it's possible to execute a TLB-vs-segmap consistency
check from a (soft) interrupt handler. But if a platform does not otherwise
require the pmap_tlb_miss_lock, then where will be a brief window of
inconsistency that, while harmless, will still fire an assertion in the
consistency check.

Fix this with the following changes:
1- Refactor the pmap_tlb_miss_lock into MI code and rename it from
pmap_tlb_miss_lock_{enter,exit}() to pmap_tlb_miss_lock_{enter,exit}().
MD code can still define the "md" hooks as necessary, and if so, will
override the common implementation.
2- Provde a pmap_bootstrap_common() function to perform common pmap bootstrap
operations, namely initializing the pmap_tlb_miss_lock if it's needed.
If MD code overrides the implementation, it's responsible for initializing
its own lock.
3- Call pmap_bootstrap_common() from the mips, powerpc booke, and riscv
pmap_bootstrap() routines. (This required adding one for riscv.)
4- Switch powerpc booke to the common pmap_tlb_miss_lock.
5- Enable pmap_tlb_miss_lock if DEBUG is defined, even if it's not otherwise
required.

PR port-mips/55062 (Failed assertion in pmap_md_tlb_check_entry())
 1.12  01-Jun-2019  maxv Misc changes in RISC-V. Start changing the memory layout, too.
 1.11  20-May-2019  skrll Usee __BIT()
 1.10  20-May-2019  skrll Trailing whitespace
 1.9  24-Jun-2017  skrll branches: 1.9.4; 1.9.8;
Trailing whitespace
 1.8  24-Jun-2017  skrll Multiple inclusion protection define consistency
 1.7  11-Jul-2016  matt Changes so that MIPS can use the common pmap.
Change/augment the virtual cache alias callbacks.
 1.6  07-Jul-2016  msaitoh KNF. Remove extra spaces. No functional change.
 1.5  11-Jun-2015  matt Add virtual_start to pmap_limits. This allows MD to steal address space
before pmap_bootstrap.
 1.4  18-Mar-2014  riastradh branches: 1.4.6;
Merge riastradh-drm2 to HEAD.
 1.3  17-Jul-2013  matt Make this kcpuset_t instead of the private __cpuset_t
Add improvements for single TLB implementation (PPC, ARM).
 1.2  02-Jul-2013  matt branches: 1.2.2;
Split tlb related stuff into pmap_tlb.h so that can be used for ASID mgmt
for non-soft TLB pmaps.
 1.1  03-Oct-2012  christos branches: 1.1.2; 1.1.4;
move from common/pmap/tlb -> uvm/pmap
 1.1.4.1  28-Aug-2013  rmind sync with head
 1.1.2.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.2.2  30-Oct-2012  yamt sync with head
 1.1.2.1  03-Oct-2012  yamt file pmap.h was added on branch yamt-pagecache on 2012-10-30 17:23:03 +0000
 1.2.2.1  23-Jul-2013  riastradh sync with HEAD
 1.4.6.4  28-Aug-2017  skrll Sync with HEAD
 1.4.6.3  05-Oct-2016  skrll Sync with HEAD
 1.4.6.2  09-Jul-2016  skrll Sync with HEAD
 1.4.6.1  22-Sep-2015  skrll Sync with HEAD
 1.9.8.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.9.8.1  10-Jun-2019  christos Sync with HEAD
 1.9.4.2  03-Dec-2017  jdolecek update from HEAD
 1.9.4.1  24-Jun-2017  jdolecek file pmap.h was added on branch tls-maxphys on 2017-12-03 11:39:23 +0000
 1.17.2.2  03-Apr-2021  thorpej Sync with HEAD.
 1.17.2.1  03-Jan-2021  thorpej Sync w/ HEAD.
 1.26.2.1  19-Apr-2024  martin Pull up following revision(s) (requested by skrll in ticket #671):

sys/uvm/pmap/pmap.c: revision 1.78
sys/uvm/pmap/pmap.h: revision 1.27

Fix types in pmap_page_clear_attributes so that the top bits of
the u_long mdpg_attrs aren't dropped giving atomic_cas_ulong no
chance of completing if any of the top bits is set.

Update pmap_page_set_attributes for consistency.

An ATF test run completed for me with this fix.

port-riscv/58006: ATF tests no longer complete on riscv-riscv64

RSS XML Feed