History log of /src/sys/uvm/pmap |
Revision | Date | Author | Comments |
1.80 | 06-May-2024 |
skrll | Fix 32bit UVMHIST builds
|
1.79 | 03-May-2024 |
skrll | More debug.
|
1.78 | 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.77 | 23-Mar-2024 |
skrll | Default pmap_stealdebug to false
|
1.76 | 05-Mar-2024 |
skrll | Change the PMAP_STEAL_MEMORY debug output from aprint_debug.
The new printfs are conditional on pmap_stealdebug and the DEBUG compile option. The former defaults to true, but can be changed at a boot -d ddb prompt.
|
1.75 | 26-Feb-2023 |
skrll | ci_data.cpu_kcpuset -> ci_kcpuset
NFCI.
|
1.74 | 03-Nov-2022 |
skrll | branches: 1.74.2; Provide MI PMAP support on AARCH64
|
1.73 | 02-Nov-2022 |
skrll | KNF
|
1.72 | 28-Oct-2022 |
skrll | MI PMAP EFI_RUNTIME support
|
1.71 | 27-Oct-2022 |
skrll | No need to hold the pmap_tlb_miss_lock when calling pmap_segtab_destroy
|
1.70 | 27-Oct-2022 |
skrll | Rename pm_count to pm_refcnt
|
1.69 | 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.68 | 23-Oct-2022 |
skrll | Correct the pmap_kstart_segtab entry in pmap_kern_segtab
|
1.67 | 15-Sep-2022 |
skrll | whitespace - remove spaces before tabs
|
1.66 | 12-Sep-2022 |
skrll | A simplification and some minor whitespace
|
1.65 | 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.64 | 09-Apr-2022 |
riastradh | sys: Use membar_release/acquire around reference drop.
This just goes through my recent reference count membar audit and changes membar_exit to membar_release and membar_enter to membar_acquire -- this should make everything cheaper on most CPUs without hurting correctness, because membar_acquire is generally cheaper than membar_enter.
|
1.63 | 12-Mar-2022 |
riastradh | sys: Membar audit around reference count releases.
If two threads are using an object that is freed when the reference count goes to zero, we need to ensure that all memory operations related to the object happen before freeing the object.
Using an atomic_dec_uint_nv(&refcnt) == 0 ensures that only one thread takes responsibility for freeing, but it's not enough to ensure that the other thread's memory operations happen before the freeing.
Consider:
Thread A Thread B obj->foo = 42; obj->baz = 73; mumble(&obj->bar); grumble(&obj->quux); /* membar_exit(); */ /* membar_exit(); */ atomic_dec -- not last atomic_dec -- last /* membar_enter(); */ KASSERT(invariant(obj->foo, obj->bar)); free_stuff(obj);
The memory barriers ensure that
obj->foo = 42; mumble(&obj->bar);
in thread A happens before
KASSERT(invariant(obj->foo, obj->bar)); free_stuff(obj);
in thread B. Without them, this ordering is not guaranteed.
So in general it is necessary to do
membar_exit(); if (atomic_dec_uint_nv(&obj->refcnt) != 0) return; membar_enter();
to release a reference, for the `last one out hit the lights' style of reference counting. (This is in contrast to the style where one thread blocks new references and then waits under a lock for existing ones to drain with a condvar -- no membar needed thanks to mutex(9).)
I searched for atomic_dec to find all these. Obviously we ought to have a better abstraction for this because there's so much copypasta. This is a stop-gap measure to fix actual bugs until we have that. It would be nice if an abstraction could gracefully handle the different styles of reference counting in use -- some years ago I drafted an API for this, but making it cover everything got a little out of hand (particularly with struct vnode::v_usecount) and I ended up setting it aside to work on psref/localcount instead for better scalability.
I got bored of adding #ifdef __HAVE_ATOMIC_AS_MEMBAR everywhere, so I only put it on things that look performance-critical on 5sec review. We should really adopt membar_enter_preatomic/membar_exit_postatomic or something (except they are applicable only to atomic r/m/w, not to atomic_load/store_*, making the naming annoying) and get rid of all the ifdefs.
|
1.62 | 17-Apr-2021 |
mrg | remove KERNHIST_INIT_STATIC(). it stradles the line between usable early in boot and broken early in boot by requiring a partly static structure with another structure that must be present by the time any uses are performed. theoretically platform code could allocate a chunk while seting up memory and assign it here, giving a dynamic sizing for the entry list, but the reality is that all users have a statically allocated entry list as well.
the existing KERNHIST_LINK_STATIC() is used in conjunction with KERNHIST_INITIALIZER() instead.
this stops a NULL pointer deref when the _LOG() macro is called before the storage is linked in, which happens with GCC 10 on OCTEON with UVMHIST enabled, crashing in very early kernel init.
|
1.61 | 19-Mar-2021 |
skrll | branches: 1.61.2; 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.60 | 13-Mar-2021 |
skrll | s/pfi_faultpte/&p/ for consistency with arm / other uses of ptep
|
1.59 | 13-Mar-2021 |
skrll | Don't use %jx for 0 or 1 - just use %jd in UVMHIST_LOG format.
|
1.58 | 20-Dec-2020 |
skrll | Support __HAVE_PMAP_PV_TRACK in sys/uvm/pmap based pmaps (aka common pmap)
|
1.57 | 08-Oct-2020 |
skrll | branches: 1.57.2; %#jx vs %jx consistency in UVMHIST_LOG
|
1.56 | 24-Sep-2020 |
skrll | Whitespace
|
1.55 | 20-Aug-2020 |
mrg | 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.54 | 19-Aug-2020 |
simonb | Remove trailing \n from UVMHIST_LOG() format strings.
|
1.53 | 11-Aug-2020 |
skrll | More UVMHIST_LOG. Remove some commented output printfs.
|
1.52 | 11-Aug-2020 |
skrll | Fix a comment
|
1.51 | 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.50 | 18-Jul-2020 |
skrll | Always call pmap_segtab_activate in pmap_activate. pmap_segtab_activate does the right thing if called with non-curlwp.
|
1.49 | 12-Apr-2020 |
skrll | Use UVMHIST_CALLARGS
|
1.48 | 14-Mar-2020 |
ad | branches: 1.48.2; 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.
|
1.47 | 12-Mar-2020 |
thorpej | pmap_tlb_miss_lock needs to be globally visible.
|
1.46 | 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.45 | 18-Dec-2019 |
skrll | Remove duplicate #includes
|
1.44 | 20-Oct-2019 |
skrll | Define and use VM_PAGEMD_PVLIST_EMPTY_P
|
1.43 | 20-Oct-2019 |
skrll | Remove KASSERT(!VM_PAGEMD_PVLIST_LOCKED_P(mdpg)) - can only assert that it is owned
|
1.42 | 12-Jul-2019 |
skrll | Provide and use PV_ISKENTER_P. NFCI.
|
1.41 | 19-Jun-2019 |
skrll | Make a comment generic and not MIPS specific
|
1.40 | 30-Oct-2017 |
pgoyette | branches: 1.40.2; 1.40.6; Remove unneeded casts to (uintptr_t). This is already taken care of in the xxxHIST_LOG() macros.
No need to pull-up to -8 - the extra cast really won't hurt anything.
|
1.39 | 30-Oct-2017 |
pgoyette | And replace an instance of "%p" conversion with "%#jx"
|
1.38 | 30-Oct-2017 |
kre | Remove a stray '"' (obvious typo) and add a couple of casts that are probably needed.
|
1.37 | 28-Oct-2017 |
pgoyette | Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
1.36 | 07-Sep-2017 |
skrll | There's no need to call pmap_tlb_invalidate_addr if pmap_remove_all was called and PMAP_DEFERRED_ACTIVATE is set.
|
1.35 | 24-Jun-2017 |
skrll | Use pte_set
|
1.34 | 12-May-2017 |
skrll | branches: 1.34.2; Sprinkle some KASSERTs
|
1.33 | 07-May-2017 |
skrll | Fix a comment
|
1.32 | 28-Apr-2017 |
skrll | Remove unused LNAME macro
|
1.31 | 28-Apr-2017 |
skrll | Fix a UVMHIST_LOG after the "%s" removal
|
1.30 | 22-Apr-2017 |
skrll | branches: 1.30.2; Improve a comment
|
1.29 | 22-Apr-2017 |
skrll | Trailing whitespace
|
1.28 | 02-Mar-2017 |
mrg | avoid using %s in UVMHIST.
|
1.27 | 23-Dec-2016 |
skrll | branches: 1.27.2; PHYSMEM -> PHYSSEG to fix build
|
1.26 | 23-Dec-2016 |
cherry | "Make NetBSD great again!"
Introduce uvm_hotplug(9) to the kernel.
Many thanks, in no particular order to:
TNF, for funding the project.
Chuck Silvers - for multiple API reviews and feedback. Nick Hudson - for testing on multiple architectures and bugfix patches. Everyone who helped with boot testing.
KeK (http://www.kek.org.in) for hosting the primary developers.
|
1.25 | 01-Dec-2016 |
mrg | extend the pmap_activate/pmap_deactivate UVMHIST logs to include the pid, lid, and either l_name or p_comm.
|
1.24 | 05-Oct-2016 |
skrll | Move some code before pmap_enter_pv in pmap_enter so that when we are re-mapping a VA to a new PA the old mapping is removed first. This means the cache alias code need to do less work and works better with the last va tracking.
|
1.23 | 30-Sep-2016 |
skrll | Increment resident_count if we're remapping onto new PA as pmap_remove -> pmap_pte_remote will decrement it
|
1.22 | 16-Sep-2016 |
matt | When removing a page, make sure to clear its execness regardless of whether the page is clean or dirty. This fixes the problem of execpages leaking into the freepage lists.
|
1.21 | 20-Aug-2016 |
mrg | put a variable under the #ifdef it's only used in.
|
1.20 | 18-Aug-2016 |
matt | Don't track kenter_pa/kremove PVs unless we are worrying about cache aliasing.
|
1.19 | 05-Aug-2016 |
jakllsch | Only include `static inline pmap_asid_check()` if it might be used.
Should fix HEAD-llvm evbppc autobuild.
|
1.18 | 14-Jul-2016 |
skrll | branches: 1.18.2; Spell PMAP_TLB_NEED_SHOOTDOWN correctly
|
1.17 | 14-Jul-2016 |
skrll | Trailing whitespace
|
1.16 | 11-Jul-2016 |
maya | Fix build by removing accidential duplicate line.
|
1.15 | 11-Jul-2016 |
matt | Changes so that MIPS can use the common pmap. Change/augment the virtual cache alias callbacks.
|
1.14 | 07-Jul-2016 |
msaitoh | KNF. Remove extra spaces. No functional change.
|
1.13 | 05-Nov-2015 |
pgoyette | Remove unnecessary #include for sys/shm.h - there's nothing here that needs anything from there.
|
1.12 | 11-Jun-2015 |
matt | Add virtual_start to pmap_limits. This allows MD to steal address space before pmap_bootstrap.
|
1.11 | 03-Feb-2015 |
nonaka | Disable pmap_md_tlb_check_entry, when MP.
|
1.10 | 26-Jan-2015 |
nonaka | Avoid race condition between PTE update and TLB miss walk.
|
1.9 | 05-Jan-2015 |
nonaka | Use PMAP_TLB_MAX instead of MAXCPUS.
|
1.8 | 25-Dec-2014 |
nonaka | fix build failure when UVMHIST is defined.
|
1.7 | 24-Dec-2014 |
nonaka | fix compile failure.
|
1.6 | 22-Dec-2014 |
nonaka | pmap->pm_active and pmap->pm_onproc must be destroyed.
|
1.5 | 19-Dec-2014 |
nonaka | Initialize pmap->pm_active and pmap->pm_onproc. Avoid "panic: kernel diagnostic assertion "!pmap_tlb_intersecting_onproc_p(pm, ti)" failed: file "/usr/src/sys/uvm/pmap/pmap_tlb.c", line 762".
|
1.4 | 25-Feb-2014 |
martin | branches: 1.4.6; Mark a potentially unused variable
|
1.3 | 22-Jul-2013 |
matt | In the non-MP case, just initialize onproc to NULL.
|
1.2 | 17-Jul-2013 |
matt | Make this kcpuset_t instead of the private __cpuset_t Add improvements for single TLB implementation (PPC, ARM).
|
1.1 | 03-Oct-2012 |
christos | branches: 1.1.2; 1.1.4; 1.1.10; move from common/pmap/tlb -> uvm/pmap
|
1.1.10.1 | 23-Jul-2013 |
riastradh | sync with HEAD
|
1.1.4.2 | 18-May-2014 |
rmind | sync with head
|
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.c was added on branch yamt-pagecache on 2012-10-30 17:23:03 +0000
|
1.4.6.7 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.4.6.6 | 05-Feb-2017 |
skrll | Sync with HEAD
|
1.4.6.5 | 05-Dec-2016 |
skrll | Sync with HEAD
|
1.4.6.4 | 05-Oct-2016 |
skrll | Sync with HEAD
|
1.4.6.3 | 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.4.6.2 | 22-Sep-2015 |
skrll | Sync with HEAD
|
1.4.6.1 | 06-Apr-2015 |
skrll | Sync with HEAD
|
1.18.2.5 | 26-Apr-2017 |
pgoyette | Sync with HEAD
|
1.18.2.4 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.18.2.3 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.18.2.2 | 04-Nov-2016 |
pgoyette | Sync with HEAD
|
1.18.2.1 | 06-Aug-2016 |
pgoyette | Sync with HEAD
|
1.27.2.1 | 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.30.2.3 | 19-May-2017 |
pgoyette | Resolve conflicts from previous merge (all resulting from $NetBSD keywork expansion)
|
1.30.2.2 | 11-May-2017 |
pgoyette | Sync with HEAD
|
1.30.2.1 | 02-May-2017 |
pgoyette | Sync with HEAD - tag prg-localcount2-base1
|
1.34.2.1 | 02-Nov-2017 |
snj | Pull up following revision(s) (requested by pgoyette in ticket #335): share/man/man9/kernhist.9: 1.5-1.8 sys/arch/acorn26/acorn26/pmap.c: 1.39 sys/arch/arm/arm32/fault.c: 1.105 via patch sys/arch/arm/arm32/pmap.c: 1.350, 1.359 sys/arch/arm/broadcom/bcm2835_bsc.c: 1.7 sys/arch/arm/omap/if_cpsw.c: 1.20 sys/arch/arm/omap/tiotg.c: 1.7 sys/arch/evbarm/conf/RPI2_INSTALL: 1.3 sys/dev/ic/sl811hs.c: 1.98 sys/dev/usb/ehci.c: 1.256 sys/dev/usb/if_axe.c: 1.83 sys/dev/usb/motg.c: 1.18 sys/dev/usb/ohci.c: 1.274 sys/dev/usb/ucom.c: 1.119 sys/dev/usb/uhci.c: 1.277 sys/dev/usb/uhub.c: 1.137 sys/dev/usb/umass.c: 1.160-1.162 sys/dev/usb/umass_quirks.c: 1.100 sys/dev/usb/umass_scsipi.c: 1.55 sys/dev/usb/usb.c: 1.168 sys/dev/usb/usb_mem.c: 1.70 sys/dev/usb/usb_subr.c: 1.221 sys/dev/usb/usbdi.c: 1.175 sys/dev/usb/usbdi_util.c: 1.67-1.70 sys/dev/usb/usbroothub.c: 1.3 sys/dev/usb/xhci.c: 1.75 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.34 sys/kern/kern_history.c: 1.15 sys/kern/kern_xxx.c: 1.74 sys/kern/vfs_bio.c: 1.275-1.276 sys/miscfs/genfs/genfs_io.c: 1.71 sys/sys/kernhist.h: 1.21 sys/ufs/ffs/ffs_balloc.c: 1.63 sys/ufs/lfs/lfs_vfsops.c: 1.361 sys/ufs/lfs/ulfs_inode.c: 1.21 sys/ufs/lfs/ulfs_vnops.c: 1.52 sys/ufs/ufs/ufs_inode.c: 1.102 sys/ufs/ufs/ufs_vnops.c: 1.239 sys/uvm/pmap/pmap.c: 1.37-1.39 sys/uvm/pmap/pmap_tlb.c: 1.22 sys/uvm/uvm_amap.c: 1.108 sys/uvm/uvm_anon.c: 1.64 sys/uvm/uvm_aobj.c: 1.126 sys/uvm/uvm_bio.c: 1.91 sys/uvm/uvm_device.c: 1.66 sys/uvm/uvm_fault.c: 1.201 sys/uvm/uvm_km.c: 1.144 sys/uvm/uvm_loan.c: 1.85 sys/uvm/uvm_map.c: 1.353 sys/uvm/uvm_page.c: 1.194 sys/uvm/uvm_pager.c: 1.111 sys/uvm/uvm_pdaemon.c: 1.109 sys/uvm/uvm_swap.c: 1.175 sys/uvm/uvm_vnode.c: 1.103 usr.bin/vmstat/vmstat.c: 1.219 Reorder to test for null before null deref in debug code -- Reorder to test for null before null deref in debug code -- KNF -- No need for '\n' in UVMHIST_LOG -- normalise a BIOHIST log message -- Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up... (As proposed on tech-kern@ with additional changes and enhancements.) Details of changes: * All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.) * Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments. * All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t. * All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size." * All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed. * vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9). * vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed). * vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built. * The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements. [1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju". [2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies. -- For some reason this single kernel seems to have outgrown its declared size as a result of the kernhist(9) changes. Bump the size. XXX The amount of increase may be excessive - anyone with more detailed XXX knowledge please feel free to further adjust the value appropriately. -- Misssed one cast of pointer --> uintptr_t in previous kernhist(9) commit -- And yet another one. :( -- Use correct mark-up for NetBSD version. -- More improvements in grammar and readability. -- Remove a stray '"' (obvious typo) and add a couple of casts that are probably needed. -- And replace an instance of "%p" conversion with "%#jx" -- Whitespace fix. Give Bl tag table a width. Fix Xr.
|
1.40.6.3 | 21-Apr-2020 |
martin | Sync with HEAD
|
1.40.6.2 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.40.6.1 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.40.2.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.40.2.1 | 30-Oct-2017 |
jdolecek | file pmap.c was added on branch tls-maxphys on 2017-12-03 11:39:23 +0000
|
1.48.2.1 | 20-Apr-2020 |
bouyer | Sync with HEAD
|
1.57.2.2 | 03-Apr-2021 |
thorpej | Sync with HEAD.
|
1.57.2.1 | 03-Jan-2021 |
thorpej | Sync w/ HEAD.
|
1.61.2.1 | 17-Apr-2021 |
thorpej | Sync with HEAD.
|
1.74.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
|
1.28 | 25-Nov-2024 |
skrll | Sprinkle #ifdef _KERNEL
|
1.27 | 18-Apr-2024 |
skrll | branches: 1.27.2; 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
|
1.27.2.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
1.2 | 27-Apr-2023 |
skrll | Correct a type.
|
1.1 | 20-Apr-2023 |
skrll | Provide a shared pmap_devmap implementation and convert all pmap_devmap arrays to use DEVMAP_ENTRY{,_END}
|
1.2 | 25-Nov-2024 |
skrll | Sprinkle #ifdef _KERNEL
|
1.1 | 20-Apr-2023 |
skrll | branches: 1.1.6; Provide a shared pmap_devmap implementation and convert all pmap_devmap arrays to use DEVMAP_ENTRY{,_END}
|
1.1.6.1 | 02-Aug-2025 |
perseant | Sync with HEAD
|
1.15 | 08-May-2022 |
rin | Oops, correct misleading #endif comment.
It seems I need a cup of coffee...
|
1.14 | 08-May-2022 |
rin | Improve wording a bit in a comment for the previous.
|
1.13 | 08-May-2022 |
rin | For PMAP_PV_TRACK_ONLY_STUBS, comment out pmap_pv_{,un}track().
If modules call these functions, the result should be an inconsistent state.
Such modules require real PV-tracking support, anyway.
The best we can do should be to make two symbols undefined, and prevent these modules from loaded.
|
1.12 | 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.11 | 21-Jul-2021 |
skrll | need <sys/param.h> for COHERENCY_UNIT
Minor KNF along the way.
|
1.10 | 16-Mar-2020 |
ad | branches: 1.10.8; Use C99-ism to reduce ifdefs. Pointed out by christos@.
|
1.9 | 16-Mar-2020 |
ad | pmap_pv_track(): use PMAP_PAGE_INIT() otherwise the x86 pmap pukes.
|
1.8 | 01-Jan-2020 |
martin | Revert previous (include of sys/param.h) - the headers requiring this have been fixed.
|
1.7 | 28-Dec-2019 |
martin | Add mising sys/param.h include (for COHERENCY_UNIT, now needed in uvm headers)
|
1.6 | 18-Dec-2019 |
skrll | KNF
|
1.5 | 09-Dec-2019 |
riastradh | Convert pmap_pvt to atomic_load/store.
|
1.4 | 07-Dec-2019 |
jmcneill | sys/atomic.h for membar_*
|
1.3 | 07-Feb-2016 |
riastradh | branches: 1.3.16; 1.3.20; Use IPL_NONE for pserialized lock. Assert sleepable. (OOPS.)
|
1.2 | 11-Nov-2015 |
skrll | branches: 1.2.2; Remove #if 0 / #endif includes
|
1.1 | 11-Nov-2015 |
skrll | Split out the pmap_pv_track stuff for use by others.
Discussed with riastradh@
|
1.2.2.3 | 19-Mar-2016 |
skrll | Sync with HEAD
|
1.2.2.2 | 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.2.2.1 | 11-Nov-2015 |
skrll | file pmap_pvt.c was added on branch nick-nhusb on 2015-12-27 12:10:19 +0000
|
1.3.20.1 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.3.16.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.3.16.1 | 07-Feb-2016 |
jdolecek | file pmap_pvt.c was added on branch tls-maxphys on 2017-12-03 11:39:23 +0000
|
1.10.8.1 | 01-Aug-2021 |
thorpej | Sync with HEAD.
|
1.3 | 16-Feb-2022 |
riastradh | pmap_pvt.h: Fix bogus include.
|
1.2 | 24-Jun-2017 |
skrll | branches: 1.2.4; Multiple inclusion protection define consistency
|
1.1 | 11-Nov-2015 |
skrll | branches: 1.1.2; Split out the pmap_pv_track stuff for use by others.
Discussed with riastradh@
|
1.1.2.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.2.2 | 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.1.2.1 | 11-Nov-2015 |
skrll | file pmap_pvt.h was added on branch nick-nhusb on 2015-12-27 12:10:19 +0000
|
1.2.4.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.2.4.1 | 24-Jun-2017 |
jdolecek | file pmap_pvt.h was added on branch tls-maxphys on 2017-12-03 11:39:23 +0000
|
1.33 | 23-Jul-2023 |
skrll | KASSERT -> KASSERTMSG
|
1.32 | 01-Jul-2023 |
skrll | Fix build when KERNHIST defined, but not UVMHIST
|
1.31 | 21-Dec-2022 |
skrll | Rename pmap_md_pdetab_destroy to pmap_md_pdetab_fini to match pmap_md_pdetab_init.
Call pmap_md_pdetab_fini from pmap_segtab_destroy.
|
1.30 | 27-Oct-2022 |
skrll | In pmap_pte_reserve ensure we're atomically swapping out an invalid entry otherwise concurrent updates might both think they've updated the entry.
|
1.29 | 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.28 | 25-Sep-2022 |
skrll | Rename pmap_segtab_t *stp to stb for consistency with a future pmap_pdetab_t *ptb. pmap_pdetab_t *ptp would be far too confusing.
NFC. Same code before and after.
|
1.27 | 13-Mar-2021 |
skrll | Consistently use %#jx instead of 0x%jx or just %jx in UVMHIST_LOG formats
|
1.26 | 08-Oct-2020 |
skrll | branches: 1.26.2; %#jx vs %jx consistency in UVMHIST_LOG
|
1.25 | 24-Sep-2020 |
skrll | Whitespace
|
1.24 | 10-Sep-2020 |
rin | Cast pointer arguments of UVMHIST_CALLARGS() into uintptr_t.
Appease GCC9 -Wpointer-to-int-cast on ILP32 environments.
|
1.23 | 22-Aug-2020 |
skrll | Remove pte_zero_p and simply check against 0.
|
1.22 | 22-Aug-2020 |
skrll | Remove the #if defined(__mips_n64) && PAGE_SIZE == 8192 and make the check MI - all PTs are PAGE_SIZE aligned
|
1.21 | 22-Aug-2020 |
skrll | Trailing whitespace
|
1.20 | 20-Aug-2020 |
mrg | fix hpcmips and evbppc builds (wrong type in panic()).
|
1.19 | 20-Aug-2020 |
mrg | 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.18 | 18-Aug-2020 |
simonb | Fix small tyop in a comment.
|
1.17 | 18-Aug-2020 |
skrll | Improve a panic message ever so slightly
|
1.16 | 17-Aug-2020 |
mrg | add pmaphist calls around seg_tab[] manipulation. hopefully will help find what causes this:
panic: pmap_segtab_alloc: pm_segtab.seg_tab[1010] != 0 (0x980000004eeb6068): from free list
|
1.15 | 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.14 | 24-Feb-2020 |
rin | 0x%p --> %p for non-external codes.
|
1.13 | 18-Dec-2019 |
skrll | branches: 1.13.2; KNF
|
1.12 | 14-Dec-2019 |
ad | Use pageq.list instead of listq.list.
|
1.11 | 20-Oct-2019 |
skrll | Whitespace
|
1.10 | 23-Sep-2019 |
skrll | Use "segmap" for uvm_wait message in pmap_segtab_alloc
|
1.9 | 18-Sep-2019 |
skrll | s/pte/ptep/ in pmap_pte_process for consistency with other code. NFCI.
|
1.8 | 18-Sep-2019 |
skrll | Whitespace
|
1.7 | 08-Mar-2019 |
msaitoh | s/ the the / the /
|
1.6 | 12-May-2017 |
skrll | branches: 1.6.8; 1.6.12; KASSERT -> KASSERTMSG
|
1.5 | 12-May-2017 |
skrll | Trailing whitespace
|
1.4 | 23-Nov-2016 |
mrg | branches: 1.4.6; fix the start index generation in pmap_segtab_release() to ensure it fits in the actual array. fixes N64 binaries from triggering later panic. move the panic check itself into a common function that is called from a couple of new places too.
|
1.3 | 11-Jul-2016 |
matt | branches: 1.3.2; Changes so that MIPS can use the common pmap. Change/augment the virtual cache alias callbacks.
|
1.2 | 11-Jun-2015 |
matt | Use PMAP_MAP_POOLPAGE instead of POOL_PHYSTOV since we use PMAP_UNMAP_POOLPAGE. Use PMAP_ALLOC_POOLPAGE instead of pmap_md_alloc_poolpage. Cleanup some panic messages.
|
1.1 | 03-Oct-2012 |
christos | branches: 1.1.2; 1.1.14; 1.1.16; 1.1.18; 1.1.20; move from common/pmap/tlb -> uvm/pmap
|
1.1.20.1 | 18-Jan-2017 |
skrll | Sync with netbsd-5
|
1.1.18.1 | 03-Dec-2016 |
martin | Pull up following revision(s) (requested by mrg in ticket #1275): sys/arch/mips/include/vmparam.h: revision 1.57 sys/uvm/pmap/pmap_segtab.c: revision 1.4 1TB is enough UVA for anyone... plus not all cpus can support more. fix the start index generation in pmap_segtab_release() to ensure it fits in the actual array. fixes N64 binaries from triggering later panic. move the panic check itself into a common function that is called from a couple of new places too.
|
1.1.16.4 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.16.3 | 05-Dec-2016 |
skrll | Sync with HEAD
|
1.1.16.2 | 05-Oct-2016 |
skrll | Sync with HEAD
|
1.1.16.1 | 22-Sep-2015 |
skrll | Sync with HEAD
|
1.1.14.1 | 03-Dec-2016 |
martin | Pull up following revision(s) (requested by mrg in ticket #1275): sys/arch/mips/include/vmparam.h: revision 1.57 sys/uvm/pmap/pmap_segtab.c: revision 1.4 1TB is enough UVA for anyone... plus not all cpus can support more. fix the start index generation in pmap_segtab_release() to ensure it fits in the actual array. fixes N64 binaries from triggering later panic. move the panic check itself into a common function that is called from a couple of new places too.
|
1.1.2.2 | 30-Oct-2012 |
yamt | sync with head
|
1.1.2.1 | 03-Oct-2012 |
yamt | file pmap_segtab.c was added on branch yamt-pagecache on 2012-10-30 17:23:03 +0000
|
1.3.2.1 | 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.4.6.1 | 19-May-2017 |
pgoyette | Resolve conflicts from previous merge (all resulting from $NetBSD keywork expansion)
|
1.6.12.2 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.6.12.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.6.8.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.6.8.1 | 12-May-2017 |
jdolecek | file pmap_segtab.c was added on branch tls-maxphys on 2017-12-03 11:39:23 +0000
|
1.13.2.1 | 29-Feb-2020 |
ad | Sync with head.
|
1.26.2.1 | 03-Apr-2021 |
thorpej | Sync with HEAD.
|
1.5 | 13-Apr-2020 |
skrll | Trailing whitespace
|
1.4 | 18-Dec-2019 |
skrll | branches: 1.4.6; KNF
|
1.3 | 11-Jul-2016 |
matt | branches: 1.3.16; 1.3.20; Changes so that MIPS can use the common pmap. Change/augment the virtual cache alias callbacks.
|
1.2 | 02-Jul-2013 |
matt | branches: 1.2.8; 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_synci.c was added on branch yamt-pagecache on 2012-10-30 17:23:03 +0000
|
1.2.8.1 | 05-Oct-2016 |
skrll | Sync with HEAD
|
1.3.20.2 | 21-Apr-2020 |
martin | Sync with HEAD
|
1.3.20.1 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.3.16.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.3.16.1 | 11-Jul-2016 |
jdolecek | file pmap_synci.c was added on branch tls-maxphys on 2017-12-03 11:39:23 +0000
|
1.4.6.1 | 20-Apr-2020 |
bouyer | Sync with HEAD
|
1.1 | 11-Jul-2016 |
matt | branches: 1.1.4; 1.1.18; Changes so that MIPS can use the common pmap. Change/augment the virtual cache alias callbacks.
|
1.1.18.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.1.18.1 | 11-Jul-2016 |
jdolecek | file pmap_synci.h was added on branch tls-maxphys on 2017-12-03 11:39:23 +0000
|
1.1.4.2 | 05-Oct-2016 |
skrll | Sync with HEAD
|
1.1.4.1 | 11-Jul-2016 |
skrll | file pmap_synci.h was added on branch nick-nhusb on 2016-10-05 20:56:12 +0000
|
1.63 | 02-Sep-2025 |
skrll | Don't log anything when !DIAGNOSTIC in pmap_tlb_pai_check as it's a no-op.
|
1.62 | 01-Jan-2024 |
skrll | Appease KASSERTs for zero ASID CPUs (I mean harts)
|
1.61 | 06-Oct-2023 |
skrll | Support CPUs that might not have ASIDs in the common pmap.
|
1.60 | 01-Aug-2023 |
skrll | Improve debug
|
1.59 | 12-Jun-2023 |
skrll | Fix compile for non-MULTIPROCESSOR and PMAP_TLB_MAX > 1 builds
|
1.58 | 12-Jun-2023 |
skrll | Fixup UVMHIST builds
|
1.57 | 22-Apr-2023 |
skrll | KASSERT(kpreempt_disabled()) before accessing curcpu()
|
1.56 | 19-Feb-2023 |
skrll | Spaces to TABs. NFCI.
|
1.55 | 07-Nov-2022 |
skrll | Fix UVMHIST build
|
1.54 | 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.53 | 20-Oct-2022 |
skrll | Add a KASSERT to check that tlb_asid_t is a large enough type.
|
1.52 | 04-Mar-2022 |
skrll | Rmmove an incorrect KASSERT.
|
1.51 | 02-Jan-2022 |
christos | fix KASSERTMSG issue
|
1.50 | 29-Dec-2021 |
skrll | Remove duplicate KASSERT
|
1.49 | 27-Oct-2021 |
simonb | TAB police.
|
1.48 | 27-Oct-2021 |
simonb | When adjusting the max ASID count, check if ti->ti_asid_max == 0 as well. This defaults to 0 for the non-PMAP_TLB_NUM_PIDS case, so would skip the updated test.
Fix for port-pmax/56466 (which affects all MIPS).
ok srkll@
|
1.47 | 08-Oct-2021 |
skrll | Fix a logic botch to actually apply the ASID limit returned by pmap_md_tlb_asid_max.
|
1.46 | 02-Oct-2021 |
skrll | Pass the pmap in tlb_set_asid for the benefit of aarch64.
|
1.45 | 12-Sep-2021 |
skrll | comment whitespace
|
1.44 | 04-May-2021 |
skrll | Always expose pmap_tlb_update_addr now that all current PMAP_HWPAGEWALKERs (arm) users provide the required functions.
|
1.43 | 01-May-2021 |
skrll | Revert previous
|
1.42 | 01-May-2021 |
skrll | Expose pmap_tlb_update_addr to the PMAP_HWPAGEWALKER platforms
|
1.41 | 24-Sep-2020 |
skrll | branches: 1.41.6; Whitespace
|
1.40 | 22-Aug-2020 |
skrll | Whitespace - line continutation alignment
|
1.39 | 19-Aug-2020 |
skrll | KNF. Add some whitespace to the TLBINV_MAP macro and tlb_invalidate_op enum.
|
1.38 | 19-Aug-2020 |
skrll | Unwrap short line KASSERT
|
1.37 | 19-Aug-2020 |
skrll | Fix inverted logic test in pmap_tlb_shootdown_process for if the victim is onproc.
|
1.36 | 11-Aug-2020 |
skrll | s/pmaphist/maphist/ for now
|
1.35 | 11-Aug-2020 |
skrll | More UVMHIST_LOG. Remove some commented output printfs.
|
1.34 | 09-Aug-2020 |
skrll | Don't kcpuset_clone every pmap_tlb_shootdown_bystanders. Instead allocate a kcpuset_t per cpu_info and use that.
|
1.33 | 14-Apr-2020 |
skrll | Fix UVMHIST bulid
|
1.32 | 12-Apr-2020 |
skrll | Use UVMHIST_CALLARGS
|
1.31 | 09-Apr-2020 |
skrll | Make a comment less MIPS specific
|
1.30 | 18-Dec-2019 |
skrll | branches: 1.30.6; KNF
|
1.29 | 17-Dec-2019 |
skrll | Fix a UVMHIST_LOG format
|
1.28 | 25-Feb-2018 |
jdolecek | branches: 1.28.4; fix the DIAGNOSTIC function pmap_tlb_asid_count() to not expect that TLBINFO_ASID_INUSE_P() returns just 0 or 1; the underlying __BITMAP_ISSET() actually returns the matching bit nowadays, which caused miscounting
fixes PR kern/53054 by Sevan Janiyan
|
1.27 | 25-Feb-2018 |
jdolecek | adjust KASSERT() triggered in PR port-cobalt/53054 to provide more info
|
1.26 | 21-Feb-2018 |
jdolecek | KERNEL_PID is > 0 on powerpc/ibm4xx, need to mask all bits <0, KERNEL_PID> to avoid triggering KASSERT() checking allocated asid is bigger than KERNEL_PID; adjust also TLBINFO_ASID_INITIAL_FREE() accordingly
discussed with Nick
|
1.25 | 19-Feb-2018 |
jdolecek | convert to use actual __BITMAP_*() macros from <sys/bitops.h>, and make it possible to override the ASID bitmap length; default to 256 ASIDs as before
XXX NFCI; compile tested only on evbpcc and evbmips, unfortunately didn't find any combination of port using the MI pmap_tlb.c and working in QEMU
|
1.24 | 19-Feb-2018 |
jdolecek | a bit of DRY - add macro for initial free ASID count
|
1.23 | 19-Feb-2018 |
jdolecek | make it possible to not use the icache evcnts
|
1.22 | 28-Oct-2017 |
pgoyette | branches: 1.22.2; Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up...
(As proposed on tech-kern@ with additional changes and enhancements.)
Details of changes:
* All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.)
* Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments.
* All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t.
* All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size."
* All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed.
* vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9).
* vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed).
* vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built.
* The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements.
[1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju".
[2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies.
|
1.21 | 26-May-2017 |
skrll | branches: 1.21.2; Remove incorrect __diagused
|
1.20 | 26-May-2017 |
skrll | Use the define name PMAP_HWPAGEWALKER and not PMAP_TLB_HWPAGEWALKER
|
1.19 | 09-Oct-2016 |
christos | PR/51540: Henning Petersen: replace , with ;
|
1.18 | 23-Jul-2016 |
matt | Lock the tlbinfo if it wasn't when doing a pmap_tlb_pai_check
|
1.17 | 14-Jul-2016 |
skrll | branches: 1.17.2; Use KERNEL_PID instead of 0
|
1.16 | 14-Jul-2016 |
skrll | Fix some comments.
|
1.15 | 14-Jul-2016 |
skrll | Trailing whitespace
|
1.14 | 12-Jul-2016 |
skrll | Fix typo for build check
|
1.13 | 11-Jul-2016 |
matt | Changes so that MIPS can use the common pmap. Change/augment the virtual cache alias callbacks.
|
1.12 | 11-Jun-2015 |
matt | Don't call kcpuset_intersecting_p and then kcpuset_ffs_intersecting since that the last will tell use what we need to know.
|
1.11 | 18-Apr-2015 |
joerg | pmap_tlb_intersecting_active_p is not used in some combinations of platform options as seen by recent ARM changes.
|
1.10 | 29-Oct-2014 |
skrll | branches: 1.10.2; s/0/KERNEL_PID/ for correctness
|
1.9 | 18-Oct-2014 |
skrll | Minor comment update.
|
1.8 | 03-Apr-2014 |
matt | branches: 1.8.4; Change cpu_tlb_info definition based on PMAP_TLB_MAX instead of MULTIPROCESSOR
|
1.7 | 03-Apr-2014 |
matt | Compare ASIDs, not pmaps.
|
1.6 | 03-Apr-2014 |
matt | Make this compile on booke again.
|
1.5 | 30-Mar-2014 |
matt | Allow this to handle H/W tlbs. Some ARM allow for a cheap way to flush all entries using an ASID from the TLB. Add support for taking advantage of it. Most ARMs don't have an easy way to find out what's in the TLB so make record_asids can just say all ASIDs are in use. Fix some off by 1 errors.
|
1.4 | 18-Mar-2014 |
riastradh | 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.2 | 18-May-2014 |
rmind | sync with head
|
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_tlb.c 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.8.4.1 | 09-Nov-2014 |
martin | Pull up following revision(s) (requested by skrll in ticket #188): sys/arch/arm/include/arm32/pmap.h: revision 1.136 sys/arch/arm/include/armreg.h: revision 1.100 sys/arch/arm/cortex/gic.c: revision 1.11 sys/arch/arm/arm32/db_interface.c: revision 1.54 sys/arch/arm/include/armreg.h: revision 1.101 sys/arch/arm/cortex/gic.c: revision 1.12 sys/arch/arm/arm32/arm32_machdep.c: revision 1.107 sys/arch/arm/arm/cpufunc_asm_armv7.S: revision 1.19 sys/arch/arm/cortex/a9_mpsubr.S: revision 1.20 sys/arch/evbarm/conf/BPI: revision 1.5 sys/arch/arm/cortex/a9_mpsubr.S: revision 1.21 sys/arch/arm/arm32/pmap.c: revision 1.306 sys/arch/arm/arm32/db_machdep.c: revision 1.22 sys/arch/arm/arm32/arm32_tlb.c: revision 1.3 sys/arch/arm/arm/undefined.c: revision 1.55 sys/arch/arm/cortex/a9_mpsubr.S: revision 1.22 sys/arch/arm/arm32/pmap.c: revision 1.307 sys/arch/arm/arm32/arm32_tlb.c: revision 1.4 sys/arch/arm/cortex/a9_mpsubr.S: revision 1.23 sys/arch/arm/arm32/arm32_tlb.c: revision 1.5 sys/arch/evbarm/conf/BPI: revision 1.8 sys/arch/arm/cortex/a9_mpsubr.S: revision 1.24 sys/arch/arm/arm32/arm32_tlb.c: revision 1.6 sys/arch/arm/arm32/arm32_tlb.c: revision 1.7 sys/arch/evbarm/conf/CUBIETRUCK: revision 1.5 sys/arch/arm/pic/pic.c: revision 1.23 sys/arch/arm/pic/pic.c: revision 1.24 sys/arch/arm/pic/picvar.h: revision 1.11 sys/arch/arm/arm/cpufunc_asm_armv7.S: revision 1.20 sys/arch/arm/mainbus/cpu_mainbus.c: revision 1.16 sys/arch/arm/arm32/pmap.c: revision 1.298 sys/arch/arm/arm/cpufunc_asm_arm11.S: revision 1.17 sys/arch/arm/arm/cpufunc_asm_pj4b.S: revision 1.5 sys/arch/arm/arm32/pmap.c: revision 1.310 sys/arch/arm/arm32/pmap.c: revision 1.311 sys/arch/arm/arm32/arm32_kvminit.c: revision 1.32 sys/arch/arm/cortex/a9_mpsubr.S: revision 1.19 sys/arch/arm/arm32/arm32_boot.c: revision 1.10 sys/arch/arm/arm/ast.c: revision 1.25 sys/arch/arm/include/armreg.h: revision 1.98 sys/uvm/pmap/pmap_tlb.c: revision 1.10 sys/arch/arm/arm32/arm32_boot.c: revision 1.8 sys/arch/arm/arm32/arm32_boot.c: revision 1.9 sys/arch/arm/arm/arm_machdep.c: revision 1.43 Various ARM MP fixes.
|
1.10.2.5 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.10.2.4 | 05-Dec-2016 |
skrll | Sync with HEAD
|
1.10.2.3 | 05-Oct-2016 |
skrll | Sync with HEAD
|
1.10.2.2 | 22-Sep-2015 |
skrll | Sync with HEAD
|
1.10.2.1 | 06-Jun-2015 |
skrll | Sync with HEAD
|
1.17.2.2 | 04-Nov-2016 |
pgoyette | Sync with HEAD
|
1.17.2.1 | 26-Jul-2016 |
pgoyette | Sync with HEAD
|
1.21.2.1 | 02-Nov-2017 |
snj | Pull up following revision(s) (requested by pgoyette in ticket #335): share/man/man9/kernhist.9: 1.5-1.8 sys/arch/acorn26/acorn26/pmap.c: 1.39 sys/arch/arm/arm32/fault.c: 1.105 via patch sys/arch/arm/arm32/pmap.c: 1.350, 1.359 sys/arch/arm/broadcom/bcm2835_bsc.c: 1.7 sys/arch/arm/omap/if_cpsw.c: 1.20 sys/arch/arm/omap/tiotg.c: 1.7 sys/arch/evbarm/conf/RPI2_INSTALL: 1.3 sys/dev/ic/sl811hs.c: 1.98 sys/dev/usb/ehci.c: 1.256 sys/dev/usb/if_axe.c: 1.83 sys/dev/usb/motg.c: 1.18 sys/dev/usb/ohci.c: 1.274 sys/dev/usb/ucom.c: 1.119 sys/dev/usb/uhci.c: 1.277 sys/dev/usb/uhub.c: 1.137 sys/dev/usb/umass.c: 1.160-1.162 sys/dev/usb/umass_quirks.c: 1.100 sys/dev/usb/umass_scsipi.c: 1.55 sys/dev/usb/usb.c: 1.168 sys/dev/usb/usb_mem.c: 1.70 sys/dev/usb/usb_subr.c: 1.221 sys/dev/usb/usbdi.c: 1.175 sys/dev/usb/usbdi_util.c: 1.67-1.70 sys/dev/usb/usbroothub.c: 1.3 sys/dev/usb/xhci.c: 1.75 sys/external/bsd/drm2/dist/drm/i915/i915_gem.c: 1.34 sys/kern/kern_history.c: 1.15 sys/kern/kern_xxx.c: 1.74 sys/kern/vfs_bio.c: 1.275-1.276 sys/miscfs/genfs/genfs_io.c: 1.71 sys/sys/kernhist.h: 1.21 sys/ufs/ffs/ffs_balloc.c: 1.63 sys/ufs/lfs/lfs_vfsops.c: 1.361 sys/ufs/lfs/ulfs_inode.c: 1.21 sys/ufs/lfs/ulfs_vnops.c: 1.52 sys/ufs/ufs/ufs_inode.c: 1.102 sys/ufs/ufs/ufs_vnops.c: 1.239 sys/uvm/pmap/pmap.c: 1.37-1.39 sys/uvm/pmap/pmap_tlb.c: 1.22 sys/uvm/uvm_amap.c: 1.108 sys/uvm/uvm_anon.c: 1.64 sys/uvm/uvm_aobj.c: 1.126 sys/uvm/uvm_bio.c: 1.91 sys/uvm/uvm_device.c: 1.66 sys/uvm/uvm_fault.c: 1.201 sys/uvm/uvm_km.c: 1.144 sys/uvm/uvm_loan.c: 1.85 sys/uvm/uvm_map.c: 1.353 sys/uvm/uvm_page.c: 1.194 sys/uvm/uvm_pager.c: 1.111 sys/uvm/uvm_pdaemon.c: 1.109 sys/uvm/uvm_swap.c: 1.175 sys/uvm/uvm_vnode.c: 1.103 usr.bin/vmstat/vmstat.c: 1.219 Reorder to test for null before null deref in debug code -- Reorder to test for null before null deref in debug code -- KNF -- No need for '\n' in UVMHIST_LOG -- normalise a BIOHIST log message -- Update the kernhist(9) kernel history code to address issues identified in PR kern/52639, as well as some general cleaning-up... (As proposed on tech-kern@ with additional changes and enhancements.) Details of changes: * All history arguments are now stored as uintmax_t values[1], both in the kernel and in the structures used for exporting the history data to userland via sysctl(9). This avoids problems on some architectures where passing a 64-bit (or larger) value to printf(3) can cause it to process the value as multiple arguments. (This can be particularly problematic when printf()'s format string is not a literal, since in that case the compiler cannot know how large each argument should be.) * Update the data structures used for exporting kernel history data to include a version number as well as the length of history arguments. * All [2] existing users of kernhist(9) have had their format strings updated. Each format specifier now includes an explicit length modifier 'j' to refer to numeric values of the size of uintmax_t. * All [2] existing users of kernhist(9) have had their format strings updated to replace uses of "%p" with "%#jx", and the pointer arguments are now cast to (uintptr_t) before being subsequently cast to (uintmax_t). This is needed to avoid compiler warnings about casting "pointer to integer of a different size." * All [2] existing users of kernhist(9) have had instances of "%s" or "%c" format strings replaced with numeric formats; several instances of mis-match between format string and argument list have been fixed. * vmstat(1) has been modified to handle the new size of arguments in the history data as exported by sysctl(9). * vmstat(1) now provides a warning message if the history requested with the -u option does not exist (previously, this condition was silently ignored, with only a single blank line being printed). * vmstat(1) now checks the version and argument length included in the data exported via sysctl(9) and exits if they do not match the values with which vmstat was built. * The kernhist(9) man-page has been updated to note the additional requirements imposed on the format strings, along with several other minor changes and enhancements. [1] It would have been possible to use an explicit length (for example, uint64_t) for the history arguments. But that would require another "rototill" of all the users in the future when we add support for an architecture that supports a larger size. Also, the printf(3) format specifiers for explicitly-sized values, such as "%"PRIu64, are much more verbose (and less aesthetically appealing, IMHO) than simply using "%ju". [2] I've tried very hard to find "all [the] existing users of kernhist(9)" but it is possible that I've missed some of them. I would be glad to update any stragglers that anyone identifies. -- For some reason this single kernel seems to have outgrown its declared size as a result of the kernhist(9) changes. Bump the size. XXX The amount of increase may be excessive - anyone with more detailed XXX knowledge please feel free to further adjust the value appropriately. -- Misssed one cast of pointer --> uintptr_t in previous kernhist(9) commit -- And yet another one. :( -- Use correct mark-up for NetBSD version. -- More improvements in grammar and readability. -- Remove a stray '"' (obvious typo) and add a couple of casts that are probably needed. -- And replace an instance of "%p" conversion with "%#jx" -- Whitespace fix. Give Bl tag table a width. Fix Xr.
|
1.22.2.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.22.2.1 | 28-Oct-2017 |
jdolecek | file pmap_tlb.c was added on branch tls-maxphys on 2017-12-03 11:39:23 +0000
|
1.28.4.3 | 21-Apr-2020 |
martin | Sync with HEAD
|
1.28.4.2 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.28.4.1 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.30.6.1 | 20-Apr-2020 |
bouyer | Sync with HEAD
|
1.41.6.1 | 13-May-2021 |
thorpej | Sync with HEAD.
|
1.17 | 06-Oct-2023 |
skrll | Support CPUs that might not have ASIDs in the common pmap.
|
1.16 | 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.15 | 19-Aug-2020 |
skrll | KNF. Add some whitespace to the TLBINV_MAP macro and tlb_invalidate_op enum.
|
1.14 | 01-Aug-2020 |
skrll | Provide a TLBINFO_OWNED
|
1.13 | 19-Feb-2018 |
jdolecek | convert to use actual __BITMAP_*() macros from <sys/bitops.h>, and make it possible to override the ASID bitmap length; default to 256 ASIDs as before
XXX NFCI; compile tested only on evbpcc and evbmips, unfortunately didn't find any combination of port using the MI pmap_tlb.c and working in QEMU
|
1.12 | 19-Feb-2018 |
jdolecek | make it possible to not use the icache evcnts
|
1.11 | 24-Jun-2017 |
skrll | Multiple inclusion protection define consistency
|
1.10 | 26-May-2017 |
skrll | Whitespace
|
1.9 | 11-Jul-2016 |
matt | Changes so that MIPS can use the common pmap. Change/augment the virtual cache alias callbacks.
|
1.8 | 02-Apr-2015 |
matt | include <sys/evcnt.h>
|
1.7 | 05-Jan-2015 |
nonaka | Use PMAP_TLB_MAX instead of MAXCPUS.
|
1.6 | 03-Apr-2014 |
matt | branches: 1.6.4; 1.6.8; 1.6.10; Change cpu_tlb_info definition based on PMAP_TLB_MAX instead of MULTIPROCESSOR
|
1.5 | 30-Mar-2014 |
matt | Allow this to handle H/W tlbs. Some ARM allow for a cheap way to flush all entries using an ASID from the TLB. Add support for taking advantage of it. Most ARMs don't have an easy way to find out what's in the TLB so make record_asids can just say all ASIDs are in use. Fix some off by 1 errors.
|
1.4 | 18-Mar-2014 |
riastradh | Merge riastradh-drm2 to HEAD.
|
1.3 | 22-Jul-2013 |
matt | branches: 1.3.2; If not MULTIPROCESSOR, just make cpu_tlb_info(ci) return &pmap_tlb0_info
|
1.2 | 17-Jul-2013 |
matt | Make this kcpuset_t instead of the private __cpuset_t Add improvements for single TLB implementation (PPC, ARM).
|
1.1 | 02-Jul-2013 |
matt | branches: 1.1.2; Split tlb related stuff into pmap_tlb.h so that can be used for ASID mgmt for non-soft TLB pmaps.
|
1.1.2.1 | 23-Jul-2013 |
riastradh | sync with HEAD
|
1.3.2.3 | 18-May-2014 |
rmind | sync with head
|
1.3.2.2 | 28-Aug-2013 |
rmind | sync with head
|
1.3.2.1 | 22-Jul-2013 |
rmind | file pmap_tlb.h was added on branch rmind-smpnet on 2013-08-28 23:59:38 +0000
|
1.6.10.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.6.10.2 | 05-Oct-2016 |
skrll | Sync with HEAD
|
1.6.10.1 | 06-Apr-2015 |
skrll | Sync with HEAD
|
1.6.8.3 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.6.8.2 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.6.8.1 | 03-Apr-2014 |
tls | file pmap_tlb.h was added on branch tls-maxphys on 2014-08-20 00:04:45 +0000
|
1.6.4.2 | 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.6.4.1 | 03-Apr-2014 |
yamt | file pmap_tlb.h was added on branch yamt-pagecache on 2014-05-22 11:41:19 +0000
|
1.5 | 02-Oct-2021 |
skrll | Pass the pmap in tlb_set_asid for the benefit of aarch64.
|
1.4 | 24-Jun-2017 |
skrll | branches: 1.4.4; Multiple inclusion protection define consistency
|
1.3 | 11-Jul-2016 |
matt | Changes so that MIPS can use the common pmap. Change/augment the virtual cache alias callbacks.
|
1.2 | 21-Sep-2015 |
matt | Update multiple inclusion macro
|
1.1 | 03-Oct-2012 |
christos | branches: 1.1.2; 1.1.16; move from common/pmap/tlb -> uvm/pmap
|
1.1.16.3 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.1.16.2 | 05-Oct-2016 |
skrll | Sync with HEAD
|
1.1.16.1 | 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.1.2.2 | 30-Oct-2012 |
yamt | sync with head
|
1.1.2.1 | 03-Oct-2012 |
yamt | file tlb.h was added on branch yamt-pagecache on 2012-10-30 17:23:03 +0000
|
1.4.4.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.4.1 | 24-Jun-2017 |
jdolecek | file tlb.h was added on branch tls-maxphys on 2017-12-03 11:39:23 +0000
|
1.17 | 20-Dec-2020 |
skrll | Support __HAVE_PMAP_PV_TRACK in sys/uvm/pmap based pmaps (aka common pmap)
|
1.16 | 30-Dec-2019 |
ad | branches: 1.16.8; pg->phys_addr -> VM_PAGE_TO_PHYS().
|
1.15 | 20-Oct-2019 |
skrll | Define and use VM_PAGEMD_PVLIST_EMPTY_P
|
1.14 | 20-Oct-2019 |
skrll | Whitespace
|
1.13 | 20-Oct-2019 |
skrll | Re-order _P() macros to match bit definitions. NFCI
|
1.12 | 12-Jul-2019 |
skrll | Provide and use PV_ISKENTER_P. NFCI.
|
1.11 | 19-Jun-2019 |
christos | use __nothing
|
1.10 | 19-Jun-2019 |
skrll | Once more short line to unwrap
|
1.9 | 19-Jun-2019 |
skrll | Unwrap short lines. NFCI.
|
1.8 | 19-Apr-2018 |
christos | branches: 1.8.2; s/static inline/static __inline/g for consistency.
|
1.7 | 24-Jun-2017 |
skrll | branches: 1.7.4; 1.7.6; Use __BIT(0) for PV_KENTER. NFC.
|
1.6 | 24-Jun-2017 |
skrll | Whitespace - comment alignment.
|
1.5 | 24-Jun-2017 |
skrll | Multiple inclusion protection define consistency
|
1.4 | 07-Jun-2017 |
skrll | Use __BIT(). No functional change.
|
1.3 | 11-Jul-2016 |
matt | Changes so that MIPS can use the common pmap. Change/augment the virtual cache alias callbacks.
|
1.2 | 04-Mar-2014 |
matt | branches: 1.2.6; use _KERNEL_OPT around #include
|
1.1 | 03-Oct-2012 |
christos | branches: 1.1.2; 1.1.4; move from common/pmap/tlb -> uvm/pmap
|
1.1.4.1 | 18-May-2014 |
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 vmpagemd.h was added on branch yamt-pagecache on 2012-10-30 17:23:03 +0000
|
1.2.6.2 | 28-Aug-2017 |
skrll | Sync with HEAD
|
1.2.6.1 | 05-Oct-2016 |
skrll | Sync with HEAD
|
1.7.6.1 | 22-Apr-2018 |
pgoyette | Sync with HEAD
|
1.7.4.2 | 03-Dec-2017 |
jdolecek | update from HEAD
|
1.7.4.1 | 24-Jun-2017 |
jdolecek | file vmpagemd.h was added on branch tls-maxphys on 2017-12-03 11:39:23 +0000
|
1.8.2.2 | 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.8.2.1 | 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.16.8.1 | 03-Jan-2021 |
thorpej | Sync w/ HEAD.
|