Commit Graph

144 Commits

Author SHA1 Message Date
skrll
5b1e7d3bd1 Remove variable in function declaration argument 2020-12-21 08:41:38 +00:00
skrll
31d27c3628 Support __HAVE_PMAP_PV_TRACK in sys/uvm/pmap based pmaps (aka common pmap) 2020-12-20 16:38:25 +00:00
skrll
5602c37d49 %#jx vs %jx consistency in UVMHIST_LOG 2020-10-08 14:02:40 +00:00
skrll
daa069ab66 Whitespace 2020-09-24 06:45:58 +00:00
rin
56973a2d13 Cast pointer arguments of UVMHIST_CALLARGS() into uintptr_t.
Appease GCC9 -Wpointer-to-int-cast on ILP32 environments.
2020-09-10 02:12:57 +00:00
skrll
504fb3492e Remove pte_zero_p and simply check against 0. 2020-08-22 15:34:51 +00:00
skrll
eea3f3e629 Remove the #if defined(__mips_n64) && PAGE_SIZE == 8192 and make the
check MI - all PTs are PAGE_SIZE aligned
2020-08-22 15:32:36 +00:00
skrll
5cda43a53e Whitespace - line continutation alignment 2020-08-22 14:51:44 +00:00
skrll
00774ed075 Trailing whitespace 2020-08-22 13:59:16 +00:00
mrg
831a27a616 fix hpcmips and evbppc builds (wrong type in panic()). 2020-08-20 23:36:45 +00:00
mrg
58e1cf785c 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.
2020-08-20 05:54:32 +00:00
simonb
bf74807839 Remove trailing \n from UVMHIST_LOG() format strings. 2020-08-19 07:29:00 +00:00
skrll
40a6ec7f3d KNF. Add some whitespace to the TLBINV_MAP macro and tlb_invalidate_op
enum.
2020-08-19 06:11:49 +00:00
skrll
57bc4fb9c6 Unwrap short line KASSERT 2020-08-19 06:08:27 +00:00
skrll
0c8273cd62 Fix inverted logic test in pmap_tlb_shootdown_process for if the victim
is onproc.
2020-08-19 06:07:03 +00:00
simonb
bc5b96679a Fix small tyop in a comment. 2020-08-18 11:48:21 +00:00
skrll
3635371f3e Improve a panic message ever so slightly 2020-08-18 07:25:46 +00:00
mrg
a152fe0b55 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
2020-08-17 08:56:27 +00:00
skrll
221a897233 s/pmaphist/maphist/ for now 2020-08-11 06:54:14 +00:00
skrll
a9bc40de8f More UVMHIST_LOG. Remove some commented output printfs. 2020-08-11 06:09:44 +00:00
skrll
37a00c7c5d Fix a comment 2020-08-11 05:43:45 +00:00
skrll
8b177c3504 Don't kcpuset_clone every pmap_tlb_shootdown_bystanders. Instead allocate
a kcpuset_t per cpu_info and use that.
2020-08-09 06:26:49 +00:00
skrll
599fa05849 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
2020-08-07 07:19:45 +00:00
skrll
77e6c61a75 Provide a TLBINFO_OWNED 2020-08-01 07:14:05 +00:00
skrll
3cf96b0176 Always call pmap_segtab_activate in pmap_activate. pmap_segtab_activate
does the right thing if called with non-curlwp.
2020-07-18 16:12:09 +00:00
skrll
9d481aafdf Comment updates 2020-07-08 12:12:16 +00:00
skrll
76cb9a0523 Fix UVMHIST bulid 2020-04-14 05:43:57 +00:00
skrll
d2599c324c Trailing whitespace 2020-04-13 08:05:22 +00:00
skrll
e4535b97c1 Use UVMHIST_CALLARGS 2020-04-12 15:36:18 +00:00
skrll
4aca4be1c8 Make a comment less MIPS specific 2020-04-09 08:55:45 +00:00
ad
cd4b207ac9 Use C99-ism to reduce ifdefs. Pointed out by christos@. 2020-03-16 20:07:44 +00:00
ad
db42bf9228 pmap_pv_track(): use PMAP_PAGE_INIT() otherwise the x86 pmap pukes. 2020-03-16 19:56:39 +00:00
rin
e2a385b1ae Fix build for ports using uvm/pmap; pmap_remove_all() returns a boolean. 2020-03-15 11:36:24 +00:00
ad
be9c6147a4 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.
2020-03-14 14:05:42 +00:00
thorpej
9d7b661e11 pmap_tlb_miss_lock needs to be globally visible. 2020-03-12 23:10:27 +00:00
thorpej
29807ee596 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())
2020-03-11 13:30:31 +00:00
rin
4ecd76e535 0x%p --> %p for non-external codes. 2020-02-24 12:20:29 +00:00
martin
3027f95766 Revert previous (include of sys/param.h) - the headers requiring this
have been fixed.
2020-01-01 16:50:41 +00:00
ad
be643866ce pg->phys_addr -> VM_PAGE_TO_PHYS(). 2019-12-30 18:28:06 +00:00
martin
9926498798 Add mising sys/param.h include (for COHERENCY_UNIT, now needed in uvm headers) 2019-12-28 08:25:33 +00:00
skrll
399141302f KNF 2019-12-18 11:27:56 +00:00
skrll
9986a0453d Remove duplicate #includes 2019-12-18 10:55:50 +00:00
skrll
85ee6e12a8 Fix a UVMHIST_LOG format 2019-12-17 13:25:50 +00:00
ad
b41bcd98f2 Use pageq.list instead of listq.list. 2019-12-14 14:46:11 +00:00
riastradh
c558d9a3e2 Convert pmap_pvt to atomic_load/store. 2019-12-09 04:39:58 +00:00
jmcneill
472bbf0ecf sys/atomic.h for membar_* 2019-12-07 17:56:08 +00:00
skrll
af0cb0a34c Define and use VM_PAGEMD_PVLIST_EMPTY_P 2019-10-20 08:29:38 +00:00
skrll
0126296dc0 Whitespace 2019-10-20 07:58:21 +00:00
skrll
5f7d8e837b Re-order _P() macros to match bit definitions. NFCI 2019-10-20 07:54:29 +00:00
skrll
b6e3ab3307 Whitespace 2019-10-20 07:22:51 +00:00