Up to [cvs.NetBSD.org] / src / sys / arch / aarch64 / aarch64
Request diff between arbitrary revisions
Default branch: MAIN
Revision 1.151 / (download) - annotate - [select for diffs], Fri Feb 16 21:32:17 2024 UTC (2 months ago) by andvar
Branch: MAIN
CVS Tags: HEAD
Changes since 1.150: +3 -3
lines
Diff to previous 1.150 (colored) to selected 1.8 (colored)
Replace obsolete pv_dump() call with pmap_db_mdpg_print(). It was rewritten on rev 1.107, but not replaced with new implementation in PMAP_PV_DEBUG guarded block.
Revision 1.150 / (download) - annotate - [select for diffs], Wed Feb 7 04:20:26 2024 UTC (2 months, 1 week ago) by msaitoh
Branch: MAIN
Changes since 1.149: +3 -3
lines
Diff to previous 1.149 (colored) to selected 1.8 (colored)
Remove ryo@'s mail addresses.
Revision 1.149 / (download) - annotate - [select for diffs], Thu Apr 20 08:28:02 2023 UTC (11 months, 4 weeks ago) by skrll
Branch: MAIN
CVS Tags: thorpej-ifq-base,
thorpej-ifq,
thorpej-altq-separation-base,
thorpej-altq-separation
Changes since 1.148: +4 -115
lines
Diff to previous 1.148 (colored) to selected 1.8 (colored)
Provide a shared pmap_devmap implementation and convert all pmap_devmap arrays to use DEVMAP_ENTRY{,_END}
Revision 1.148 / (download) - annotate - [select for diffs], Sun Apr 16 14:01:51 2023 UTC (12 months ago) by skrll
Branch: MAIN
Changes since 1.147: +4 -4
lines
Diff to previous 1.147 (colored) to selected 1.8 (colored)
Rename VM_KERNEL_IO_ADDRESS to VM_KERNEL_IO_BASE to match RISC-V It's less letters, matches other similar variables and will help with sharing code between the two architectures. NFCI.
Revision 1.147 / (download) - annotate - [select for diffs], Sun Oct 30 14:08:09 2022 UTC (17 months, 2 weeks ago) by riastradh
Branch: MAIN
CVS Tags: netbsd-10-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
Changes since 1.146: +3 -3
lines
Diff to previous 1.146 (colored) to selected 1.8 (colored)
aarch64/pmap: Fix criterion in previous. Use the pte bit that says whether this is a PMAP_WIRED page, not the bit that says whether this is a non-global page. (Forgot to git commit --amend before exporting to CVS, sorry!)
Revision 1.146 / (download) - annotate - [select for diffs], Sun Oct 30 10:26:48 2022 UTC (17 months, 2 weeks ago) by riastradh
Branch: MAIN
Changes since 1.145: +20 -16
lines
Diff to previous 1.145 (colored) to selected 1.8 (colored)
aarch64/pmap(9): Teach pmap_protect about pmap_kenter_pa mappings. Pages mapped with pmap_kenter_pa are necessarily unmanaged, so there are no P->V records, and pmap_kenter_pa leaves pp->pp_pv.pv_va zero with no modified/referenced state. However, pmap_protect erroneously examined pp->pp_pv.pv_va to ascertain the modified/referenced state -- and if the page was not marked referenced, pmap_protect would clear the LX_BLKPAG_AF bit (Access Flag), with the effect that subsequent uses of the page fault and require a detour through pmap_fault_fixup. This caused problems for the kernel module loader: - When loading the text section, kobj_load first allocates kva with uvm_km_alloc(UVM_KMF_WIRED|UVM_KMF_EXEC), which creates ptes with pmap_kenter_pa. These ptes are writable, so we can copy the text section into them, and have LX_BLKPAG_AF set so there will be no fault when they are used by the kernel. - But then kobj_affix makes the text section read/execute-only (and nonwritable) with uvm_km_protect(VM_PROT_READ|VM_PROT_EXECUTE), which updates the ptes with pmap_protect. This _should_ leave LX_BLKPAG_AF set, but by inadvertently treating the page as managed when it should be unmanaged, pmap_protect cleared it instead. - Most of the time, clearing LX_BLKPAG_AF caused no problem, because pmap_fault_fixup would silently resolve it. But if a hard interrupt handler tried to use any page in the module's text (or rodata, I suspect) that was not yet fixed up, the CPU would fault and enter pmap_fault_fixup -- which would promptly crash (or hang) by trying to take the pmap lock in interrupt context, which is forbidden. I observed this by loading dtrace.kmod early at boot and trying to dtrace hard interrupt handlers. With this change, pmap_protect now recognizes wired mappings (as created by pmap_kenter_pa) before consulting pp->pp_pv.pv_va, and preserves then LX_BLKPAG_AF bit in that case. ok skrll
Revision 1.145 / (download) - annotate - [select for diffs], Sat Oct 29 07:21:41 2022 UTC (17 months, 2 weeks ago) by skrll
Branch: MAIN
Changes since 1.144: +3 -3
lines
Diff to previous 1.144 (colored) to selected 1.8 (colored)
fix a spello in a comment
Revision 1.144 / (download) - annotate - [select for diffs], Fri Oct 28 06:22:26 2022 UTC (17 months, 2 weeks ago) by skrll
Branch: MAIN
Changes since 1.143: +2 -5
lines
Diff to previous 1.143 (colored) to selected 1.8 (colored)
Remove some empty lines
Revision 1.143 / (download) - annotate - [select for diffs], Sun Oct 23 07:04:44 2022 UTC (17 months, 3 weeks ago) by skrll
Branch: MAIN
Changes since 1.142: +4 -3
lines
Diff to previous 1.142 (colored) to selected 1.8 (colored)
Use UVMHIST_CALLARGS in pmap_bootstrap
Revision 1.142 / (download) - annotate - [select for diffs], Sun Oct 23 07:02:26 2022 UTC (17 months, 3 weeks ago) by skrll
Branch: MAIN
Changes since 1.141: +6 -3
lines
Diff to previous 1.141 (colored) to selected 1.8 (colored)
Only define the EFI variable if EFI_RUNTIME
Revision 1.141 / (download) - annotate - [select for diffs], Thu Oct 20 06:47:29 2022 UTC (17 months, 4 weeks ago) by skrll
Branch: MAIN
Changes since 1.140: +15 -15
lines
Diff to previous 1.140 (colored) to selected 1.8 (colored)
KNF
Revision 1.140 / (download) - annotate - [select for diffs], Sat Oct 15 11:07:38 2022 UTC (18 months ago) by jmcneill
Branch: MAIN
Changes since 1.139: +5 -5
lines
Diff to previous 1.139 (colored) to selected 1.8 (colored)
Use "non-posted" instead of "strongly ordered" to describe nGnRnE mappings Rename the following defines: - _ARM_BUS_SPACE_MAP_STRONGLY_ORDERED to BUS_SPACE_MAP_NONPOSTED - PMAP_DEV_SO to PMAP_DEV_NP - LX_BLKPAG_ATTR_DEVICE_MEM_SO to LX_BLKPAG_ATTR_DEVICE_MEM_NP Rename the following option: - AARCH64_DEVICE_MEM_STRONGLY_ORDERED to AARCH64_DEVICE_MEM_NONPOSTED
Revision 1.139 / (download) - annotate - [select for diffs], Fri Aug 19 08:17:32 2022 UTC (19 months, 4 weeks ago) by ryo
Branch: MAIN
CVS Tags: bouyer-sunxi-drm-base,
bouyer-sunxi-drm
Changes since 1.138: +3 -2
lines
Diff to previous 1.138 (colored) to selected 1.8 (colored)
Fixed a bug that pte's __BIT(63,48) could be set when accessing addresses above 0x0001000000000000 in /dev/mem with mmap().
Revision 1.138 / (download) - annotate - [select for diffs], Fri Aug 19 07:45:50 2022 UTC (19 months, 4 weeks ago) by ryo
Branch: MAIN
Changes since 1.137: +3 -3
lines
Diff to previous 1.137 (colored) to selected 1.8 (colored)
When accessed in mmap by the device pager, pmap_enter() may be called with prot == PROT_WRITE.
Revision 1.137 / (download) - annotate - [select for diffs], Tue May 3 20:09:54 2022 UTC (23 months, 2 weeks ago) by skrll
Branch: MAIN
Changes since 1.136: +9 -2
lines
Diff to previous 1.136 (colored) to selected 1.8 (colored)
Sprinkle some KASSERT(kpreempt_disabled());
Revision 1.136 / (download) - annotate - [select for diffs], Wed Apr 27 23:38:31 2022 UTC (23 months, 3 weeks ago) by ryo
Branch: MAIN
Changes since 1.135: +2 -6
lines
Diff to previous 1.135 (colored) to selected 1.8 (colored)
since pmap_activate_efirt() rewrites TTBR0, it is necessary to pmap_activate() again after pmap_deactivate_efirt() to restore the original TTBR0. - Fix to do pmap_{de,}activate() before/after pmap_{,de}activate_efirt(). - moved kpreempt_{disable,enable}() to the caller since everything between arm_efirt_md_enter() and arm_efirt_md_exit() should be kpreempt disabled. ok skrll@
Revision 1.135 / (download) - annotate - [select for diffs], Sun Apr 17 15:20:36 2022 UTC (2 years ago) by skrll
Branch: MAIN
Changes since 1.134: +4 -2
lines
Diff to previous 1.134 (colored) to selected 1.8 (colored)
Add the missing kpreempt_enable to pmap_deactivate_efirt
Revision 1.134 / (download) - annotate - [select for diffs], Sun Apr 10 10:01:15 2022 UTC (2 years ago) by skrll
Branch: MAIN
Changes since 1.133: +3 -3
lines
Diff to previous 1.133 (colored) to selected 1.8 (colored)
No need to flush icache for EFI RT mappings as bootaa64.efi flushed the full icache for us. (Also this avoids traps)
Revision 1.133 / (download) - annotate - [select for diffs], Sat Apr 9 23:38:31 2022 UTC (2 years ago) by riastradh
Branch: MAIN
Changes since 1.132: +4 -4
lines
Diff to previous 1.132 (colored) to selected 1.8 (colored)
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.
Revision 1.132 / (download) - annotate - [select for diffs], Sat Apr 2 11:16:06 2022 UTC (2 years ago) by skrll
Branch: MAIN
Changes since 1.131: +117 -8
lines
Diff to previous 1.131 (colored) to selected 1.8 (colored)
Update to support EFI runtime outside the kernel virtual address space by creating an EFI RT pmap that can be activated / deactivated when required. Adds support for EFI RT to ARM_MMU_EXTENDED (ASID) 32-bit Arm machines. On Arm64 the usage of pmapboot_enter is reduced and the mappings are created much later in the boot process -- now in cpu_startup_hook. Backward compatiblity for KVA mapped RT from old bootaa64.efi is maintained. Adding support to other platforms should be easier as a result.
Revision 1.131 / (download) - annotate - [select for diffs], Sat Mar 19 09:53:18 2022 UTC (2 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.130: +31 -28
lines
Diff to previous 1.130 (colored) to selected 1.8 (colored)
Slight code re-organisation. NFCI.
Revision 1.130 / (download) - annotate - [select for diffs], Sat Mar 12 15:32:30 2022 UTC (2 years, 1 month ago) by riastradh
Branch: MAIN
Changes since 1.129: +4 -2
lines
Diff to previous 1.129 (colored) to selected 1.8 (colored)
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.
Revision 1.129 / (download) - annotate - [select for diffs], Sat Mar 5 16:53:24 2022 UTC (2 years, 1 month ago) by skrll
Branch: MAIN
Changes since 1.128: +4 -4
lines
Diff to previous 1.128 (colored) to selected 1.8 (colored)
Slight comment improvement.
Revision 1.128 / (download) - annotate - [select for diffs], Wed Feb 16 22:00:55 2022 UTC (2 years, 2 months ago) by andvar
Branch: MAIN
Changes since 1.127: +3 -3
lines
Diff to previous 1.127 (colored) to selected 1.8 (colored)
fix various typos, mainly in comments.
Revision 1.127 / (download) - annotate - [select for diffs], Mon Jan 31 09:16:09 2022 UTC (2 years, 2 months ago) by ryo
Branch: MAIN
Changes since 1.126: +170 -50
lines
Diff to previous 1.126 (colored) to selected 1.8 (colored)
add support Hardware updates to Access flag and Dirty state (FEAT_HAFDBS) - The DBM bit of the PTE is now used to determine if it is writable, and the AF bit is treated entirely as a reference bit. A valid PTE is always treated as readable. There can be no valid PTE that is not readable. - LX_BLKPAG_OS_{READ,WRITE} are used only for debugging purposes, and has been superseded by LX_BLKPAG_AF and LX_BLKPAG_DBM. - Improve comment The need for reference/modify emulation has been eliminated, and access/permission faults have been reduced, however, there has been little change in overall performance.
Revision 1.126 / (download) - annotate - [select for diffs], Mon Jan 31 08:43:05 2022 UTC (2 years, 2 months ago) by ryo
Branch: MAIN
Changes since 1.125: +6 -2
lines
Diff to previous 1.125 (colored) to selected 1.8 (colored)
Skip unnecessary PTE operations and TLB invalidation.
Revision 1.125 / (download) - annotate - [select for diffs], Sun Jan 16 10:50:02 2022 UTC (2 years, 3 months ago) by rillig
Branch: MAIN
Changes since 1.124: +3 -3
lines
Diff to previous 1.124 (colored) to selected 1.8 (colored)
aarch64/pmap: remove stray semicolon No binary change.
Revision 1.124 / (download) - annotate - [select for diffs], Sat Jan 15 07:39:04 2022 UTC (2 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.123: +34 -49
lines
Diff to previous 1.123 (colored) to selected 1.8 (colored)
The translations that need invalidation are always last level so remove the (dubious) logic around tracking the level. The "any level" TLB invalidation maintenance operation are used, but this may change after further testing. before ====== 1661.0u 420.2s 2:53.82 1197.3% 231+29k 10+33918io 102pf+0w 1646.8u 425.2s 2:52.96 1198.0% 232+29k 1+33937io 49pf+0w 1647.9u 425.7s 2:52.58 1201.6% 232+29k 0+33940io 32pf+0w After ===== 1602.5u 420.8s 2:49.09 1196.6% 238+30k 24+33893io 54pf+0w 1600.7u 421.3s 2:51.53 1178.8% 238+30k 1+33914io 33pf+0w 1597.5u 424.3s 2:50.46 1186.1% 238+30k 0+33915io 17pf+0w LGTM from ryo@
Revision 1.123 / (download) - annotate - [select for diffs], Fri Jan 14 07:21:53 2022 UTC (2 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.122: +7 -63
lines
Diff to previous 1.122 (colored) to selected 1.8 (colored)
Restore the previous pmap_remove_all behaviour as the new method meant the n1sdp couldn't complete a build. No noticeable change in kernel build performance.
Revision 1.122 / (download) - annotate - [select for diffs], Tue Jan 4 05:55:45 2022 UTC (2 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.121: +3 -3
lines
Diff to previous 1.121 (colored) to selected 1.8 (colored)
KNF
Revision 1.121 / (download) - annotate - [select for diffs], Fri Dec 10 20:36:02 2021 UTC (2 years, 4 months ago) by andvar
Branch: MAIN
Changes since 1.120: +3 -3
lines
Diff to previous 1.120 (colored) to selected 1.8 (colored)
s/occured/occurred/ in comments, log messages and man pages.
Revision 1.120 / (download) - annotate - [select for diffs], Tue Dec 7 21:37:36 2021 UTC (2 years, 4 months ago) by andvar
Branch: MAIN
Changes since 1.119: +3 -3
lines
Diff to previous 1.119 (colored) to selected 1.8 (colored)
fix various typos, mainly in comments.
Revision 1.119 / (download) - annotate - [select for diffs], Sat Oct 23 06:49:46 2021 UTC (2 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.118: +8 -13
lines
Diff to previous 1.118 (colored) to selected 1.8 (colored)
Fix non-UVMHIST build
Revision 1.118 / (download) - annotate - [select for diffs], Sat Oct 16 06:34:30 2021 UTC (2 years, 6 months ago) by ryo
Branch: MAIN
Changes since 1.117: +4 -2
lines
Diff to previous 1.117 (colored) to selected 1.8 (colored)
fix non-MULTIPROCESSOR build
Revision 1.117 / (download) - annotate - [select for diffs], Sun Oct 10 07:15:25 2021 UTC (2 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.116: +178 -83
lines
Diff to previous 1.116 (colored) to selected 1.8 (colored)
Use sys/uvm/pmap/pmap_tlb.c on Aarch64 in the same way that some Arm, MIPS, and some PPC kernels do. This removes the limitation of 256 processes on CPUs with 8bit ASID field, e.g. Apple M1. Additionally the following changes have been made - removed a couple of unnecessary aarch64_tlbi_all calls - removed any invalidation after freeing page tables due to _pmap_sweep_pdp. This was never necessary afaict. - all kernel mappings are marked global and userland mapping not-global. Performance testing hasn't show a significant difference. The data here is from building a kernel on an lx2k system with nvme. before 1489.6u 400.4s 2:40.65 1176.5% 228+224k 0+32289io 57pf+0w 1482.6u 403.2s 2:38.49 1189.9% 228+222k 0+32274io 46pf+0w 1485.4u 402.2s 2:37.27 1200.2% 228+222k 0+32275io 12pf+0w after 1493.9u 404.6s 2:37.50 1205.4% 227+221k 0+32265io 48pf+0w 1485.0u 408.0s 2:38.54 1194.0% 227+222k 0+32272io 36pf+0w 1484.3u 407.0s 2:35.88 1213.3% 228+224k 0+32268io 14pf+0w >>> stats.ttest_ind([160.65,158.49,157.27], [157.5,158.54,155.88]) Ttest_indResult(statistic=1.1923622711296888, pvalue=0.2990182944606766) >>>
Revision 1.116 / (download) - annotate - [select for diffs], Thu Sep 30 21:19:16 2021 UTC (2 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.115: +4 -2
lines
Diff to previous 1.115 (colored) to selected 1.8 (colored)
Ensure TCR_EPD0 is set on entry to pmap_activate and ensure it is set as early as possible for APs.
Revision 1.115 / (download) - annotate - [select for diffs], Sun Sep 26 09:58:13 2021 UTC (2 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.114: +26 -60
lines
Diff to previous 1.114 (colored) to selected 1.8 (colored)
Use UVMHIST_CALLARGS
Revision 1.114 / (download) - annotate - [select for diffs], Sun Sep 26 08:04:35 2021 UTC (2 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.113: +8 -8
lines
Diff to previous 1.113 (colored) to selected 1.8 (colored)
'\n' is not required in KASSERTMSG either.
Revision 1.113 / (download) - annotate - [select for diffs], Sun Sep 26 08:02:48 2021 UTC (2 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.112: +3 -3
lines
Diff to previous 1.112 (colored) to selected 1.8 (colored)
"\n" is not required in KERNHIST
Revision 1.112 / (download) - annotate - [select for diffs], Wed Sep 15 07:49:54 2021 UTC (2 years, 7 months ago) by skrll
Branch: MAIN
Changes since 1.111: +5 -3
lines
Diff to previous 1.111 (colored) to selected 1.8 (colored)
Use __SHIFTIN. Same code before and after.
Revision 1.111 / (download) - annotate - [select for diffs], Sun Sep 12 08:23:57 2021 UTC (2 years, 7 months ago) by skrll
Branch: MAIN
Changes since 1.110: +8 -8
lines
Diff to previous 1.110 (colored) to selected 1.8 (colored)
pmap_page_remove: simply and reduce the code size slightly.
Revision 1.110 / (download) - annotate - [select for diffs], Thu Sep 9 08:12:27 2021 UTC (2 years, 7 months ago) by skrll
Branch: MAIN
Changes since 1.109: +19 -18
lines
Diff to previous 1.109 (colored) to selected 1.8 (colored)
In pmap_icache_sync_range change for (...) { ... if (condition) { // do stuff } } to for (...) { ... if (!conditional) continue; // do stuff } to save on indentation. Same code (modulo register usage) before and after.
Revision 1.109 / (download) - annotate - [select for diffs], Thu Sep 9 08:09:44 2021 UTC (2 years, 7 months ago) by skrll
Branch: MAIN
Changes since 1.108: +5 -4
lines
Diff to previous 1.108 (colored) to selected 1.8 (colored)
KNF
Revision 1.105.2.2 / (download) - annotate - [select for diffs], Thu Jun 17 04:46:16 2021 UTC (2 years, 10 months ago) by thorpej
Branch: thorpej-i2c-spi-conf
Changes since 1.105.2.1: +6 -8
lines
Diff to previous 1.105.2.1 (colored) next main 1.106 (colored) to selected 1.8 (colored)
Sync w/ HEAD.
Revision 1.107.2.1 / (download) - annotate - [select for diffs], Mon May 31 22:15:09 2021 UTC (2 years, 10 months ago) by cjep
Branch: cjep_staticlib_x
Changes since 1.107: +6 -8
lines
Diff to previous 1.107 (colored) next main 1.108 (colored) to selected 1.8 (colored)
sync with head
Revision 1.108 / (download) - annotate - [select for diffs], Sat May 29 06:54:20 2021 UTC (2 years, 10 months ago) by skrll
Branch: MAIN
CVS Tags: thorpej-i2c-spi-conf2-base,
thorpej-i2c-spi-conf2,
thorpej-i2c-spi-conf-base,
thorpej-futex2-base,
thorpej-futex2,
thorpej-cfargs2-base,
thorpej-cfargs2,
cjep_sun2x-base1,
cjep_sun2x-base,
cjep_sun2x,
cjep_staticlib_x-base1
Changes since 1.107: +6 -8
lines
Diff to previous 1.107 (colored) to selected 1.8 (colored)
Deal with the pmap limitation of maxproc in a more complete way and recognise CPUs with only 8bit ASIDs.
Revision 1.105.2.1 / (download) - annotate - [select for diffs], Thu May 13 00:47:20 2021 UTC (2 years, 11 months ago) by thorpej
Branch: thorpej-i2c-spi-conf
Changes since 1.105: +18 -363
lines
Diff to previous 1.105 (colored) to selected 1.8 (colored)
Sync with HEAD.
Revision 1.107 / (download) - annotate - [select for diffs], Fri Apr 30 20:07:22 2021 UTC (2 years, 11 months ago) by skrll
Branch: MAIN
CVS Tags: cjep_staticlib_x-base
Branch point for: cjep_staticlib_x
Changes since 1.106: +18 -362
lines
Diff to previous 1.106 (colored) to selected 1.8 (colored)
Make the ddb for pmap / pte information pmap agnostic
Revision 1.106 / (download) - annotate - [select for diffs], Thu Apr 29 09:27:29 2021 UTC (2 years, 11 months ago) by skrll
Branch: MAIN
Changes since 1.105: +2 -3
lines
Diff to previous 1.105 (colored) to selected 1.8 (colored)
Remove some unnecessary tlb invalidate in pmap_growkernel and ASAN shadow map. Ensure the shadow map mappings are visible to the TLB walkers.
Revision 1.105 / (download) - annotate - [select for diffs], Wed Apr 21 09:52:20 2021 UTC (2 years, 11 months ago) by ryo
Branch: MAIN
Branch point for: thorpej-i2c-spi-conf
Changes since 1.104: +8 -2
lines
Diff to previous 1.104 (colored) to selected 1.8 (colored)
added more attributes of PTE displayed by "ddb>machine pte"
Revision 1.103.2.1 / (download) - annotate - [select for diffs], Sat Apr 17 17:26:12 2021 UTC (3 years ago) by thorpej
Branch: thorpej-cfargs
Changes since 1.103: +4 -4
lines
Diff to previous 1.103 (colored) next main 1.104 (colored) to selected 1.8 (colored)
Sync with HEAD.
Revision 1.104 / (download) - annotate - [select for diffs], Sat Apr 17 01:53:58 2021 UTC (3 years ago) by mrg
Branch: MAIN
CVS Tags: thorpej-cfargs-base
Changes since 1.103: +4 -4
lines
Diff to previous 1.103 (colored) to selected 1.8 (colored)
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.
Revision 1.94.2.3 / (download) - annotate - [select for diffs], Sat Apr 3 22:28:13 2021 UTC (3 years ago) by thorpej
Branch: thorpej-futex
Changes since 1.94.2.2: +89 -19
lines
Diff to previous 1.94.2.2 (colored) next main 1.95 (colored) to selected 1.8 (colored)
Sync with HEAD.
Revision 1.103 / (download) - annotate - [select for diffs], Tue Mar 9 16:40:59 2021 UTC (3 years, 1 month ago) by ryo
Branch: MAIN
CVS Tags: thorpej-futex-base
Branch point for: thorpej-cfargs
Changes since 1.102: +4 -4
lines
Diff to previous 1.102 (colored) to selected 1.8 (colored)
fix build error without options DDB. kvtopte() is referenced from arm/acpi/acpi_machdep.c
Revision 1.102 / (download) - annotate - [select for diffs], Sat Feb 13 18:13:53 2021 UTC (3 years, 2 months ago) by ryo
Branch: MAIN
Changes since 1.101: +3 -3
lines
Diff to previous 1.101 (colored) to selected 1.8 (colored)
No assignment is needed here. the loop in pmap_page_remove() always removes the first pv, and since the list is managed by _pmap_remove_pv(), pp->pp_pv.pv_next always points to the first.
Revision 1.101 / (download) - annotate - [select for diffs], Mon Feb 1 18:12:11 2021 UTC (3 years, 2 months ago) by ryo
Branch: MAIN
Changes since 1.100: +6 -9
lines
Diff to previous 1.100 (colored) to selected 1.8 (colored)
It is enough to make a page accessible instead of writable. same fix as r1.76
Revision 1.100 / (download) - annotate - [select for diffs], Sun Jan 31 04:51:29 2021 UTC (3 years, 2 months ago) by ryo
Branch: MAIN
Changes since 1.99: +82 -9
lines
Diff to previous 1.99 (colored) to selected 1.8 (colored)
implement pmap_remove_all(). The size of struct pv_entry has increased, but speed of kernel build has improved by about 1% exec and exit should have been improved.
Revision 1.94.2.2 / (download) - annotate - [select for diffs], Sun Jan 3 16:34:50 2021 UTC (3 years, 3 months ago) by thorpej
Branch: thorpej-futex
Changes since 1.94.2.1: +3 -3
lines
Diff to previous 1.94.2.1 (colored) to selected 1.8 (colored)
Sync w/ HEAD.
Revision 1.41.2.8 / (download) - annotate - [select for diffs], Fri Jan 1 12:54:07 2021 UTC (3 years, 3 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-3-RELEASE,
netbsd-9-2-RELEASE
Changes since 1.41.2.7: +20 -6
lines
Diff to previous 1.41.2.7 (colored) to branchpoint 1.41 (colored) next main 1.42 (colored) to selected 1.8 (colored)
Pull up following revision(s) (requested by rin in ticket #1171): sys/arch/aarch64/aarch64/pmap.c: revision 1.82 sys/arch/aarch64/aarch64/pmap.c: revision 1.83 pmap_procwr(): sync icache even if p != curproc. This fixes applications like GDB for arm32, that rewrite text of other process. Thanks to ryo@ for discussion. Use tlen for temporary length variable instead of l, which is usually used for struct lwp *. No binary changes.
Revision 1.41.2.7 / (download) - annotate - [select for diffs], Fri Jan 1 12:38:49 2021 UTC (3 years, 3 months ago) by martin
Branch: netbsd-9
Changes since 1.41.2.6: +2 -5
lines
Diff to previous 1.41.2.6 (colored) to branchpoint 1.41 (colored) to selected 1.8 (colored)
Pull up following revision(s) (requested by rin in ticket #1170): sys/arch/aarch64/aarch64/cpufunc.c: revision 1.22 (patch) sys/arch/aarch64/aarch64/cpufunc.c: revision 1.23 (patch) sys/arch/aarch64/aarch64/pmap.c: revision 1.81 Set uvmexp.ncolors appropriately, which is required for some CPU models with VIPT icache. Otherwise, alias in virtual address results in inconsistent results, at least for applications that rewrite text of other process, e.g., GDB for arm32. Also, this hopefully fixes other unexpected failures due to alias. Confirmed that there's no observable regression in performance; difference in ``time make -j8'' for GENERIC64 kernel on BCM2837 with and without setting uvmexp.ncolors is within 0.1%. Thanks to ryo@ for discussion. Fix uvmexp.ncolors for some big.LITTLE configuration; it is uncertain which CPU is used as primary, and as a result, secondary CPUs can require larger number of colors. In order to solve this problem, update uvmexp.ncolors via uvm_page_recolor(9) when secondary CPUs are attached, as done for other ports like x86. Pointed out by jmcneill@, and discussed on port-arm@: http://mail-index.netbsd.org/port-arm/2020/07/03/msg006837.html Tested and OK'd by ryo@. Fix previous; add missing <uvm/uvm.h> include.
Revision 1.99 / (download) - annotate - [select for diffs], Sun Dec 20 08:26:32 2020 UTC (3 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.98: +3 -3
lines
Diff to previous 1.98 (colored) to selected 1.8 (colored)
Improve the English in the previous comment fix.
Revision 1.98 / (download) - annotate - [select for diffs], Sat Dec 19 09:02:32 2020 UTC (3 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.97: +3 -3
lines
Diff to previous 1.97 (colored) to selected 1.8 (colored)
Tweak a comment
Revision 1.94.2.1 / (download) - annotate - [select for diffs], Mon Dec 14 14:37:44 2020 UTC (3 years, 4 months ago) by thorpej
Branch: thorpej-futex
Changes since 1.94: +19 -15
lines
Diff to previous 1.94 (colored) to selected 1.8 (colored)
Sync w/ HEAD.
Revision 1.97 / (download) - annotate - [select for diffs], Fri Dec 11 18:03:33 2020 UTC (3 years, 4 months ago) by skrll
Branch: MAIN
Changes since 1.96: +4 -3
lines
Diff to previous 1.96 (colored) to selected 1.8 (colored)
s:aarch64/cpufunc.h:arm/cpufunc.h: a baby step in the grand arm header unification challenge
Revision 1.96 / (download) - annotate - [select for diffs], Tue Nov 10 07:51:19 2020 UTC (3 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.95: +13 -13
lines
Diff to previous 1.95 (colored) to selected 1.8 (colored)
AA64 is not MIPS. Change all KSEG references to directmap
Revision 1.95 / (download) - annotate - [select for diffs], Sat Nov 7 08:33:50 2020 UTC (3 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.94: +6 -3
lines
Diff to previous 1.94 (colored) to selected 1.8 (colored)
In pmap_devmap_bootstrap only set pmap_devmap_bootstrap_done if there is an entry and ALL of the entries have been done. The entry required for EARLYCONS might not be the first/only one...
Revision 1.94 / (download) - annotate - [select for diffs], Sun Nov 1 10:58:59 2020 UTC (3 years, 5 months ago) by jmcneill
Branch: MAIN
Branch point for: thorpej-futex
Changes since 1.93: +2 -7
lines
Diff to previous 1.93 (colored) to selected 1.8 (colored)
No need to disable translation table walks in pmap_activate().
Revision 1.93 / (download) - annotate - [select for diffs], Thu Oct 22 07:34:18 2020 UTC (3 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.92: +3 -3
lines
Diff to previous 1.92 (colored) to selected 1.8 (colored)
Use the isb macro - missed in previous commit
Revision 1.92 / (download) - annotate - [select for diffs], Thu Oct 22 07:31:15 2020 UTC (3 years, 5 months ago) by skrll
Branch: MAIN
Changes since 1.91: +7 -5
lines
Diff to previous 1.91 (colored) to selected 1.8 (colored)
Use the dmb/dsb/isb macros... if nothing else they're all now consistent about the "memory" assembler contraint. No binary change
Revision 1.91 / (download) - annotate - [select for diffs], Mon Sep 28 12:04:19 2020 UTC (3 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.90: +3 -4
lines
Diff to previous 1.90 (colored) to selected 1.8 (colored)
Only set pmap_devmap_bootstrap_done if something gets mapped. Think acpi_platform_devmap
Revision 1.90 / (download) - annotate - [select for diffs], Sat Sep 19 13:33:08 2020 UTC (3 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.89: +3 -3
lines
Diff to previous 1.89 (colored) to selected 1.8 (colored)
Make __md_palloc pmap agnostic (think sys/uvm/pmap)
Revision 1.89 / (download) - annotate - [select for diffs], Mon Sep 14 10:06:35 2020 UTC (3 years, 7 months ago) by ryo
Branch: MAIN
Changes since 1.88: +10 -4
lines
Diff to previous 1.88 (colored) to selected 1.8 (colored)
PID_MAX is just an initial value (soft maximum). Don't use it for CTASSERT. defined __HAVE_CPU_MAXPROC to use function cpu_maxproc(). pointed out by mrg@, thanks.
Revision 1.88 / (download) - annotate - [select for diffs], Sun Sep 6 17:38:10 2020 UTC (3 years, 7 months ago) by ryo
Branch: MAIN
Changes since 1.87: +12 -5
lines
Diff to previous 1.87 (colored) to selected 1.8 (colored)
Fix panic caused by modload. http://mail-index.netbsd.org/port-arm/2020/08/30/msg006960.html The address space reserved for modules may not be mapped in L1-L3.
Revision 1.87 / (download) - annotate - [select for diffs], Fri Aug 14 08:19:26 2020 UTC (3 years, 8 months ago) by skrll
Branch: MAIN
Changes since 1.86: +3 -3
lines
Diff to previous 1.86 (colored) to selected 1.8 (colored)
Whitespace
Revision 1.86 / (download) - annotate - [select for diffs], Wed Aug 12 13:36:36 2020 UTC (3 years, 8 months ago) by skrll
Branch: MAIN
Changes since 1.85: +193 -141
lines
Diff to previous 1.85 (colored) to selected 1.8 (colored)
Part IV of ad's performance improvements for aarch64 - Implement pmap_growkernel(), and update kernel pmap's stats with atomics. - Then, pmap_kenter_pa() and pmap_kremove() no longer need to allocate memory nor take pm_lock, because they only modify L3 PTEs. - Then, pm_lock and pp_lock can be adaptive mutexes at IPL_NONE which are cheaper than spin mutexes. - Take the pmap's lock in pmap_extract() if not the kernel's pmap, otherwise pmap_extract() might see inconsistent state.
Revision 1.85 / (download) - annotate - [select for diffs], Sun Aug 9 09:11:41 2020 UTC (3 years, 8 months ago) by skrll
Branch: MAIN
Changes since 1.84: +4 -5
lines
Diff to previous 1.84 (colored) to selected 1.8 (colored)
Fix another UVMHIST so it doesn't use %s
Revision 1.84 / (download) - annotate - [select for diffs], Thu Jul 16 11:36:35 2020 UTC (3 years, 9 months ago) by skrll
Branch: MAIN
Changes since 1.83: +3 -4
lines
Diff to previous 1.83 (colored) to selected 1.8 (colored)
pmapboot_enter simplication - bootpage_alloc in asm becomes pmapboot_pagealloc in C - PMAPBOOT_ENTER_NOBLOCK is removed as it's not used - PMAPBOOT_ENTER_NOOVERWRITE is removed as it's now always on - physpage_allocator argument is removed as it's always pmapboot_pagealloc - Support for EARLYCONS without CONSADDR is removed so that the identity map for CONSADDR is always known. For the assembly files: 2 files changed, 40 insertions(+), 89 deletions(-) LGTM ryo
Revision 1.83 / (download) - annotate - [select for diffs], Sat Jul 4 16:58:11 2020 UTC (3 years, 9 months ago) by rin
Branch: MAIN
Changes since 1.82: +6 -6
lines
Diff to previous 1.82 (colored) to selected 1.8 (colored)
Use tlen for temporary length variable instead of l, which is usually used for struct lwp *. No binary changes.
Revision 1.82 / (download) - annotate - [select for diffs], Thu Jul 2 13:01:11 2020 UTC (3 years, 9 months ago) by rin
Branch: MAIN
Changes since 1.81: +20 -6
lines
Diff to previous 1.81 (colored) to selected 1.8 (colored)
pmap_procwr(): sync icache even if p != curproc. This fixes applications like GDB for arm32, that rewrite text of other process. Thanks to ryo@ for discussion.
Revision 1.81 / (download) - annotate - [select for diffs], Thu Jul 2 12:59:31 2020 UTC (3 years, 9 months ago) by rin
Branch: MAIN
Changes since 1.80: +2 -5
lines
Diff to previous 1.80 (colored) to selected 1.8 (colored)
Set uvmexp.ncolors appropriately, which is required for some CPU models with VIPT icache. Otherwise, alias in virtual address results in inconsistent results, at least for applications that rewrite text of other process, e.g., GDB for arm32. Also, this hopefully fixes other unexpected failures due to alias. Confirmed that there's no observable regression in performance; difference in ``time make -j8'' for GENERIC64 kernel on BCM2837 with and without setting uvmexp.ncolors is within 0.1%. Thanks to ryo@ for discussion.
Revision 1.41.2.6 / (download) - annotate - [select for diffs], Tue Jun 30 18:39:37 2020 UTC (3 years, 9 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-1-RELEASE
Changes since 1.41.2.5: +3 -3
lines
Diff to previous 1.41.2.5 (colored) to branchpoint 1.41 (colored) to selected 1.8 (colored)
Pull up following revision(s) (requested by ryo in ticket #976): sys/arch/aarch64/aarch64/pmap.c: revision 1.79 Fix bug with incorrect range calculation when doing icache sync. This is called by sysarch(ARM_SYNC_ICACHE) from aarch32 (compat_netbsd32) emul process. pointed out by rin@, thanks. XXX pullup-9
Revision 1.80 / (download) - annotate - [select for diffs], Sat Jun 27 00:46:37 2020 UTC (3 years, 9 months ago) by rin
Branch: MAIN
Changes since 1.79: +3 -3
lines
Diff to previous 1.79 (colored) to selected 1.8 (colored)
Fix typo in name of evcnt(4) counter.
Revision 1.79 / (download) - annotate - [select for diffs], Wed Jun 24 08:27:47 2020 UTC (3 years, 9 months ago) by ryo
Branch: MAIN
Changes since 1.78: +3 -3
lines
Diff to previous 1.78 (colored) to selected 1.8 (colored)
Fix bug with incorrect range calculation when doing icache sync. This is called by sysarch(ARM_SYNC_ICACHE) from aarch32 (compat_netbsd32) emul process. pointed out by rin@, thanks. XXX pullup-9
Revision 1.78 / (download) - annotate - [select for diffs], Sun Jun 14 21:47:14 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.77: +235 -147
lines
Diff to previous 1.77 (colored) to selected 1.8 (colored)
- Fix a lock order reversal in pmap_page_protect(). - Make sure pmap is always locked when updating stats; atomics no longer needed to do that. - Remove unneeded traversal of pv list in pmap_enter_pv(). - Shrink struct vm_page from 136 to 128 bytes (cache line sized) and struct pv_entry from 48 to 32 bytes (power of 2 sized). - Embed a pv_entry in each vm_page. This means PV entries don't need to be allocated for private anonymous memory / COW pages / most UBC mappings. Dynamic PV entries are then used only for stuff like shared libraries and shared memory. Proposed on port-arm@.
Revision 1.77 / (download) - annotate - [select for diffs], Wed Jun 10 22:24:22 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.76: +9 -9
lines
Diff to previous 1.76 (colored) to selected 1.8 (colored)
- Wired/resident stats shouldn't covered by PMAPCOUNTERS. - Rename need_update_pv -> need_enter_pv. Ok ryo@
Revision 1.76 / (download) - annotate - [select for diffs], Mon Jun 1 02:42:24 2020 UTC (3 years, 10 months ago) by ryo
Branch: MAIN
Changes since 1.75: +7 -11
lines
Diff to previous 1.75 (colored) to selected 1.8 (colored)
no need to make the PTE writable to do icache_sync, enough to accessible.
Revision 1.75 / (download) - annotate - [select for diffs], Fri May 15 05:39:15 2020 UTC (3 years, 11 months ago) by skrll
Branch: MAIN
Changes since 1.74: +3 -5
lines
Diff to previous 1.74 (colored) to selected 1.8 (colored)
Use __diagused
Revision 1.74 / (download) - annotate - [select for diffs], Fri May 15 01:43:47 2020 UTC (3 years, 11 months ago) by tnn
Branch: MAIN
Changes since 1.73: +4 -2
lines
Diff to previous 1.73 (colored) to selected 1.8 (colored)
fix non-diag build
Revision 1.73 / (download) - annotate - [select for diffs], Thu May 14 07:59:03 2020 UTC (3 years, 11 months ago) by skrll
Branch: MAIN
Changes since 1.72: +8 -23
lines
Diff to previous 1.72 (colored) to selected 1.8 (colored)
Use MUTEX_NODEBUG for PV locks as is commonly done. OK ryo.
Revision 1.72 / (download) - annotate - [select for diffs], Wed May 13 10:13:29 2020 UTC (3 years, 11 months ago) by jmcneill
Branch: MAIN
Changes since 1.71: +19 -8
lines
Diff to previous 1.71 (colored) to selected 1.8 (colored)
Implement pmap_extract_coherency
Revision 1.7.2.3 / (download) - annotate - [select for diffs], Tue Apr 21 18:42:02 2020 UTC (3 years, 11 months ago) by martin
Branch: phil-wifi
Changes since 1.7.2.2: +2 -1
lines
Diff to previous 1.7.2.2 (colored) to branchpoint 1.7 (colored) next main 1.8 (colored)
Sync with HEAD
Revision 1.69.2.1 / (download) - annotate - [select for diffs], Mon Apr 20 11:28:50 2020 UTC (3 years, 11 months ago) by bouyer
Branch: bouyer-xenpvh
Changes since 1.69: +4 -3
lines
Diff to previous 1.69 (colored) next main 1.70 (colored) to selected 1.8 (colored)
Sync with HEAD
Revision 1.71 / (download) - annotate - [select for diffs], Sat Apr 18 11:00:37 2020 UTC (4 years ago) by skrll
Branch: MAIN
CVS Tags: phil-wifi-20200421,
bouyer-xenpvh-base2,
bouyer-xenpvh-base1
Changes since 1.70: +2 -3
lines
Diff to previous 1.70 (colored) to selected 1.8 (colored)
PMAP_DEBUG has been deleted on arm
Revision 1.7.2.2 / (download) - annotate - [select for diffs], Mon Apr 13 08:03:27 2020 UTC (4 years ago) by martin
Branch: phil-wifi
Changes since 1.7.2.1: +380 -229
lines
Diff to previous 1.7.2.1 (colored) to branchpoint 1.7 (colored) to selected 1.8 (colored)
Mostly merge changes from HEAD upto 20200411
Revision 1.70 / (download) - annotate - [select for diffs], Mon Apr 13 05:40:25 2020 UTC (4 years ago) by maxv
Branch: MAIN
Changes since 1.69: +4 -2
lines
Diff to previous 1.69 (colored) to selected 1.8 (colored)
Add support for Branch Target Identification (BTI). On the executable pages that have the GP (Guarded Page) bit, the semantic of the "br" and "blr" instructions is changed: the CPU expects the first instruction of the jump/call target to be "bti", and faults if it isn't. We add the GP bit on the kernel .text pages (and incidentally the .rodata pages, but we don't care). The compiler adds a "bti c" instruction at the beginning of each C function. We modify the ENTRY() macros to manually add "bti c" in the asm functions. cpuswitch.S needs a specific change: with "br x27" the CPU expects "bti j", which is bad because the functions begin with "bti c"; switch to "br x16", for the CPU to accept "bti c". BTI helps defend against JOP/COP. Tested on Qemu.
Revision 1.69 / (download) - annotate - [select for diffs], Wed Apr 8 00:13:40 2020 UTC (4 years ago) by ryo
Branch: MAIN
CVS Tags: phil-wifi-20200411,
bouyer-xenpvh-base
Branch point for: bouyer-xenpvh
Changes since 1.68: +4 -16
lines
Diff to previous 1.68 (colored) to selected 1.8 (colored)
use PMAP_PAGE_INIT() to initialize mutex in pmap_page. VM_MDPAGE_INIT() in pmap_free_pdp() had initialized pp_flags, so it unintentionally cleared PMAP_PAGE_FLAGS_PV_TRACKED. use PMAP_PAGE_INIT to avoid using PMAP_PAGE_FLAGS_PV_TRACKED. pointed out by tnn@, thanks
Revision 1.68 / (download) - annotate - [select for diffs], Sat Mar 14 14:05:42 2020 UTC (4 years, 1 month ago) by ad
Branch: MAIN
CVS Tags: phil-wifi-20200406
Changes since 1.67: +4 -3
lines
Diff to previous 1.67 (colored) to selected 1.8 (colored)
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 1.67 / (download) - annotate - [select for diffs], Mon Mar 2 08:39:36 2020 UTC (4 years, 1 month ago) by ryo
Branch: MAIN
CVS Tags: is-mlppp-base,
is-mlppp
Changes since 1.66: +3 -3
lines
Diff to previous 1.66 (colored) to selected 1.8 (colored)
oops, fix incorrect usage of daif_enable() in my previous commit.
Revision 1.66 / (download) - annotate - [select for diffs], Sat Feb 29 21:34:37 2020 UTC (4 years, 1 month ago) by ryo
Branch: MAIN
Changes since 1.65: +72 -25
lines
Diff to previous 1.65 (colored) to selected 1.8 (colored)
Fix pmap to work correctly with tagged addresses - when fault, untag from address before passing to uvm/pmap functions - pmap_extract() checks more strictly and consider the address tag
Revision 1.65 / (download) - annotate - [select for diffs], Sat Feb 29 21:10:09 2020 UTC (4 years, 1 month ago) by ryo
Branch: MAIN
Changes since 1.64: +8 -42
lines
Diff to previous 1.64 (colored) to selected 1.8 (colored)
use pmapboot_enter_range()
Revision 1.60.2.2 / (download) - annotate - [select for diffs], Sat Feb 29 20:18:15 2020 UTC (4 years, 1 month ago) by ad
Branch: ad-namecache
Changes since 1.60.2.1: +242 -149
lines
Diff to previous 1.60.2.1 (colored) to branchpoint 1.60 (colored) next main 1.61 (colored) to selected 1.8 (colored)
Sync with head.
Revision 1.64 / (download) - annotate - [select for diffs], Mon Feb 10 19:04:01 2020 UTC (4 years, 2 months ago) by ryo
Branch: MAIN
CVS Tags: ad-namecache-base3
Changes since 1.63: +21 -21
lines
Diff to previous 1.63 (colored) to selected 1.8 (colored)
use LIST(3) instead of TAILQ(3) to save one word in struct vm_page and struct pmap. pointed out by riastradh@. thanks
Revision 1.63 / (download) - annotate - [select for diffs], Mon Feb 3 13:37:01 2020 UTC (4 years, 2 months ago) by ryo
Branch: MAIN
Changes since 1.62: +87 -19
lines
Diff to previous 1.62 (colored) to selected 1.8 (colored)
add support pmap_pv(9) Patch originally from jmcneill@. thanks
Revision 1.62 / (download) - annotate - [select for diffs], Mon Feb 3 13:35:44 2020 UTC (4 years, 2 months ago) by ryo
Branch: MAIN
Changes since 1.61: +153 -128
lines
Diff to previous 1.61 (colored) to selected 1.8 (colored)
separate struct vm_page_md into vm_page_md and pmap_page for preparation pmap_pv(9)
Revision 1.41.2.5 / (download) - annotate - [select for diffs], Tue Jan 21 11:15:52 2020 UTC (4 years, 2 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-0-RELEASE,
netbsd-9-0-RC2
Changes since 1.41.2.4: +10 -2
lines
Diff to previous 1.41.2.4 (colored) to branchpoint 1.41 (colored) to selected 1.8 (colored)
Pull up following revision(s) (requested by ryo in ticket #618): sys/arch/aarch64/aarch64/fault.c: revision 1.11 sys/arch/aarch64/aarch64/pmap.c: revision 1.61 fix behaviour mmap()/mprotect() when passed only PROT_EXEC. when mmap()/mprotect() with only PROT_EXEC, syscall will be successful, but the page actually hadn't been mapped. it should be mapped with PROT_READ|PROT_EXEC implicitly. (r-x)
Revision 1.60.2.1 / (download) - annotate - [select for diffs], Fri Jan 17 21:47:22 2020 UTC (4 years, 3 months ago) by ad
Branch: ad-namecache
Changes since 1.60: +10 -2
lines
Diff to previous 1.60 (colored) to selected 1.8 (colored)
Sync with head.
Revision 1.61 / (download) - annotate - [select for diffs], Thu Jan 9 01:38:34 2020 UTC (4 years, 3 months ago) by ryo
Branch: MAIN
CVS Tags: ad-namecache-base2,
ad-namecache-base1
Changes since 1.60: +10 -2
lines
Diff to previous 1.60 (colored) to selected 1.8 (colored)
fix behaviour mmap()/mprotect() when passed only PROT_EXEC. when mmap()/mprotect() with only PROT_EXEC, syscall will be successful, but the page actually hadn't been mapped. it should be mapped with PROT_READ|PROT_EXEC implicitly. (r-x)
Revision 1.60 / (download) - annotate - [select for diffs], Mon Dec 30 16:03:48 2019 UTC (4 years, 3 months ago) by skrll
Branch: MAIN
CVS Tags: ad-namecache-base
Branch point for: ad-namecache
Changes since 1.59: +38 -17
lines
Diff to previous 1.59 (colored) to selected 1.8 (colored)
Update pmap_map_chunk to allow L[12] block mappings and L3 page mappings
Revision 1.59 / (download) - annotate - [select for diffs], Mon Dec 30 15:42:39 2019 UTC (4 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.58: +4 -5
lines
Diff to previous 1.58 (colored) to selected 1.8 (colored)
Remove unnecessary brackets and unwrap a conditional. Same code before and after.
Revision 1.41.2.4 / (download) - annotate - [select for diffs], Sun Dec 29 09:27:09 2019 UTC (4 years, 3 months ago) by martin
Branch: netbsd-9
Changes since 1.41.2.3: +7 -4
lines
Diff to previous 1.41.2.3 (colored) to branchpoint 1.41 (colored) to selected 1.8 (colored)
Pull up following revision(s) (requested by jmcneill in ticket #586): sys/arch/arm/nvidia/tegra_pcie.c: revision 1.27 sys/arch/aarch64/aarch64/pmap.c: revision 1.57 sys/arch/aarch64/aarch64/locore.S: revision 1.48 sys/arch/aarch64/include/armreg.h: revision 1.29 sys/arch/aarch64/aarch64/pmap.c: revision 1.58 sys/arch/aarch64/aarch64/locore.S: revision 1.49 sys/arch/arm/acpi/acpipchb.c: revision 1.14 sys/arch/aarch64/aarch64/genassym.cf: revision 1.16 sys/arch/arm/acpi/acpi_machdep.c: revision 1.13 sys/arch/aarch64/include/pmap.h: revision 1.27 sys/arch/aarch64/aarch64/genassym.cf: revision 1.17 sys/arch/aarch64/include/pmap.h: revision 1.28 sys/arch/arm/fdt/pcihost_fdtvar.h: revision 1.3 sys/arch/arm/include/bus_defs.h: revision 1.14 sys/arch/aarch64/aarch64/bus_space.c: revision 1.9 sys/arch/arm/fdt/pcihost_fdt.c: revision 1.12 sys/arch/aarch64/conf/files.aarch64: revision 1.15 sys/arch/aarch64/conf/files.aarch64: revision 1.16 sys/arch/arm/rockchip/rk3399_pcie.c: revision 1.9 Enable early write acknowledge for device memory mappings. Do not use Early Write Acknowledge for PCIe I/O and config space.
Revision 1.58 / (download) - annotate - [select for diffs], Sat Dec 28 17:19:43 2019 UTC (4 years, 3 months ago) by jmcneill
Branch: MAIN
Changes since 1.57: +6 -3
lines
Diff to previous 1.57 (colored) to selected 1.8 (colored)
Do not use Early Write Acknowledge for PCIe I/O and config space.
Revision 1.57 / (download) - annotate - [select for diffs], Fri Dec 27 18:56:47 2019 UTC (4 years, 3 months ago) by jmcneill
Branch: MAIN
Changes since 1.56: +3 -3
lines
Diff to previous 1.56 (colored) to selected 1.8 (colored)
Enable early write acknowledge for device memory mappings.
Revision 1.56 / (download) - annotate - [select for diffs], Thu Dec 19 07:44:56 2019 UTC (4 years, 4 months ago) by skrll
Branch: MAIN
Changes since 1.55: +2 -6
lines
Diff to previous 1.55 (colored) to selected 1.8 (colored)
G/C kasan_shadow_map call in pmap_enter pmap_growkernel calls kasan_shadow_map for KVA
Revision 1.55 / (download) - annotate - [select for diffs], Wed Dec 18 11:10:24 2019 UTC (4 years, 4 months ago) by ryo
Branch: MAIN
Changes since 1.54: +2 -5
lines
Diff to previous 1.54 (colored) to selected 1.8 (colored)
atomic_add_16() is not used in pmap.c anymore. no need decl here.
Revision 1.54 / (download) - annotate - [select for diffs], Wed Dec 18 11:06:42 2019 UTC (4 years, 4 months ago) by ryo
Branch: MAIN
Changes since 1.53: +4 -4
lines
Diff to previous 1.53 (colored) to selected 1.8 (colored)
space to tab
Revision 1.53 / (download) - annotate - [select for diffs], Sat Dec 14 13:48:09 2019 UTC (4 years, 4 months ago) by skrll
Branch: MAIN
Changes since 1.52: +9 -9
lines
Diff to previous 1.52 (colored) to selected 1.8 (colored)
Fix build... wire_count probably doesn't need atomics
Revision 1.52 / (download) - annotate - [select for diffs], Fri Dec 13 08:11:12 2019 UTC (4 years, 4 months ago) by skrll
Branch: MAIN
Changes since 1.51: +5 -2
lines
Diff to previous 1.51 (colored) to selected 1.8 (colored)
Fix KASAN support by calling kasan_shadow_map in pmap_growkernel
Revision 1.51 / (download) - annotate - [select for diffs], Tue Dec 10 18:08:32 2019 UTC (4 years, 4 months ago) by ad
Branch: MAIN
Changes since 1.50: +3 -3
lines
Diff to previous 1.50 (colored) to selected 1.8 (colored)
pg->phys_addr -> VM_PAGE_TO_PHYS(pg)
Revision 1.50 / (download) - annotate - [select for diffs], Thu Nov 14 17:09:22 2019 UTC (4 years, 5 months ago) by maxv
Branch: MAIN
CVS Tags: phil-wifi-20191119
Changes since 1.49: +2 -4
lines
Diff to previous 1.49 (colored) to selected 1.8 (colored)
Mark several kASan functions with __nothing, to avoid annoying #ifdefs. Same as kCSan and kMSan.
Revision 1.49 / (download) - annotate - [select for diffs], Thu Nov 14 16:48:51 2019 UTC (4 years, 5 months ago) by maxv
Branch: MAIN
Changes since 1.48: +2 -3
lines
Diff to previous 1.48 (colored) to selected 1.8 (colored)
Don't include "opt_kasan.h" when there's already <sys/asan.h> included.
Revision 1.41.2.3 / (download) - annotate - [select for diffs], Mon Nov 4 14:08:18 2019 UTC (4 years, 5 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-0-RC1
Changes since 1.41.2.2: +18 -2
lines
Diff to previous 1.41.2.2 (colored) to branchpoint 1.41 (colored) to selected 1.8 (colored)
Pull up following revision(s) (requested by maya in ticket #393): sys/arch/aarch64/include/pmap.h: revision 1.26 sys/arch/aarch64/aarch64/pmap.c: revision 1.48 Define PMAP_NEED_PROCWR, providing strategically placed i-cache synchronization where just-changed memory is about to be executed. Fixes SIGILLs seen when running Mono 6 on QEMU Cortex-A57. ok ryo
Revision 1.48 / (download) - annotate - [select for diffs], Tue Oct 29 20:01:22 2019 UTC (4 years, 5 months ago) by maya
Branch: MAIN
Changes since 1.47: +18 -2
lines
Diff to previous 1.47 (colored) to selected 1.8 (colored)
Define PMAP_NEED_PROCWR, providing strategically placed i-cache synchronization where just-changed memory is about to be executed. Fixes SIGILLs seen when running Mono 6 on QEMU Cortex-A57. ok ryo
Revision 1.41.2.2 / (download) - annotate - [select for diffs], Mon Sep 23 07:00:35 2019 UTC (4 years, 6 months ago) by martin
Branch: netbsd-9
Changes since 1.41.2.1: +19 -3
lines
Diff to previous 1.41.2.1 (colored) to branchpoint 1.41 (colored) to selected 1.8 (colored)
Pull up following revision(s) (requested by jmcneill in ticket #229): sys/arch/aarch64/aarch64/pmap.c: revision 1.47 Disable translation table walks using TTBR0 while changing its value and when deactivating a pmap. Fixes stability issues on Ampere eMAG CPUs.
Revision 1.47 / (download) - annotate - [select for diffs], Sun Sep 22 13:57:55 2019 UTC (4 years, 6 months ago) by jmcneill
Branch: MAIN
Changes since 1.46: +19 -3
lines
Diff to previous 1.46 (colored) to selected 1.8 (colored)
Disable translation table walks using TTBR0 while changing its value and when deactivating a pmap. Fixes stability issues on Ampere eMAG CPUs.
Revision 1.41.2.1 / (download) - annotate - [select for diffs], Sun Sep 22 10:32:38 2019 UTC (4 years, 6 months ago) by martin
Branch: netbsd-9
Changes since 1.41: +5 -6
lines
Diff to previous 1.41 (colored) to selected 1.8 (colored)
Pull up following revision(s) (requested by ryo in ticket #214): sys/arch/aarch64/aarch64/pmap.c: revision 1.44 sys/arch/aarch64/aarch64/pmap.c: revision 1.46 - remove incorrect KASSERT. mmap(2) with prot=PROT_WRITE calls pmap_enter(..., PROT_WRITE) internally. - fix to update page reference flags when only PROT_WRITE or PROT_EXECUTE specified ref/mod bit should be set according to 'flags' argument, not 'prot'. r1.44 was incomplete.
Revision 1.46 / (download) - annotate - [select for diffs], Fri Sep 20 05:35:27 2019 UTC (4 years, 6 months ago) by ryo
Branch: MAIN
Changes since 1.45: +5 -3
lines
Diff to previous 1.45 (colored) to selected 1.8 (colored)
ref/mod bit should be set according to 'flags' argument, not 'prot'. r1.44 was incomplete.
Revision 1.45 / (download) - annotate - [select for diffs], Fri Sep 13 18:07:30 2019 UTC (4 years, 7 months ago) by ryo
Branch: MAIN
Changes since 1.44: +5 -2
lines
Diff to previous 1.44 (colored) to selected 1.8 (colored)
In pmap_devmap_bootstrap(), cpu_earlydevice_va_p() must not return true until *all* devmap tables have been enabled. console mapping may be present in the last table.
Revision 1.44 / (download) - annotate - [select for diffs], Sat Sep 7 09:57:37 2019 UTC (4 years, 7 months ago) by ryo
Branch: MAIN
Changes since 1.43: +4 -7
lines
Diff to previous 1.43 (colored) to selected 1.8 (colored)
- remove incorrect KASSERT. mmap(2) with prot=PROT_WRITE calls pmap_enter(..., PROT_WRITE) internally. - fix to update page reference flags when only PROT_WRITE or PROT_EXECUTE specified
Revision 1.43 / (download) - annotate - [select for diffs], Thu Aug 15 10:24:26 2019 UTC (4 years, 8 months ago) by skrll
Branch: MAIN
Changes since 1.42: +8 -10
lines
Diff to previous 1.42 (colored) to selected 1.8 (colored)
Make pmap_db_pte_print more terse so it's quicker on serial consoles
Revision 1.42 / (download) - annotate - [select for diffs], Mon Aug 12 10:28:04 2019 UTC (4 years, 8 months ago) by skrll
Branch: MAIN
Changes since 1.41: +3 -3
lines
Diff to previous 1.41 (colored) to selected 1.8 (colored)
Use PMAP_DEV in DEVMAP_ENTRY rather than pmap_map_chunk. It's clearer and means pmap_map_chunk can be made to map other memory types.
Revision 1.7.2.1 / (download) - annotate - [select for diffs], Mon Jun 10 22:05:43 2019 UTC (4 years, 10 months ago) by christos
Branch: phil-wifi
Changes since 1.7: +1092 -577
lines
Diff to previous 1.7 (colored) to selected 1.8 (colored)
Sync with HEAD
Revision 1.41 / (download) - annotate - [select for diffs], Fri May 17 06:05:07 2019 UTC (4 years, 11 months ago) by mrg
Branch: MAIN
CVS Tags: phil-wifi-20190609,
netbsd-9-base
Branch point for: netbsd-9
Changes since 1.40: +5 -5
lines
Diff to previous 1.40 (colored) to selected 1.8 (colored)
apply some __diagused.
Revision 1.40 / (download) - annotate - [select for diffs], Mon Apr 8 21:18:22 2019 UTC (5 years ago) by ryo
Branch: MAIN
CVS Tags: isaki-audio2-base,
isaki-audio2
Changes since 1.39: +114 -23
lines
Diff to previous 1.39 (colored) to selected 1.8 (colored)
- free empty page tables pages if reach a certain usage. - need to lock at removing an old pg (_pmap_remove_pv) in _pmap_enter()
Revision 1.39 / (download) - annotate - [select for diffs], Sat Apr 6 18:30:20 2019 UTC (5 years ago) by ryo
Branch: MAIN
Changes since 1.38: +72 -68
lines
Diff to previous 1.38 (colored) to selected 1.8 (colored)
Fix race conditions about pmap_page_protect() and pmap_enter(). while handling same PTE by these functions in same time, there is a critical path that the number of valid PTEs and wire_count are inconsistent, and it caused KASSERT. Need to hold a pv_lock while modifying them.
Revision 1.38 / (download) - annotate - [select for diffs], Wed Mar 20 07:05:06 2019 UTC (5 years, 1 month ago) by ryo
Branch: MAIN
Changes since 1.37: +17 -15
lines
Diff to previous 1.37 (colored) to selected 1.8 (colored)
spinkle __printflike(), and use PRIxxx
Revision 1.37 / (download) - annotate - [select for diffs], Tue Mar 19 16:45:28 2019 UTC (5 years, 1 month ago) by ryo
Branch: MAIN
Changes since 1.36: +127 -10
lines
Diff to previous 1.36 (colored) to selected 1.8 (colored)
- add ddb command "machine ttbr" to dump MMU tables. - tidy up descriptions, usages and messages.
Revision 1.36 / (download) - annotate - [select for diffs], Tue Mar 19 16:05:49 2019 UTC (5 years, 1 month ago) by ryo
Branch: MAIN
Changes since 1.35: +254 -50
lines
Diff to previous 1.35 (colored) to selected 1.8 (colored)
- free L1-L3 pages that has been emptied by pmap_remove(). - if no memories, pmap_enter will return correctly ENOMEM if PMAP_CANFAIL, or wait until available any memories if !PMAP_CANFAIL. These changes improves the stability when we use a huge virtual memory spaces with mmap.
Revision 1.35 / (download) - annotate - [select for diffs], Wed Feb 6 05:33:41 2019 UTC (5 years, 2 months ago) by ryo
Branch: MAIN
Changes since 1.34: +102 -89
lines
Diff to previous 1.34 (colored) to selected 1.8 (colored)
improve pmap_remove - don't lock/unlock per page in pmap_remove() - speedup pte lookup for continuous addresses - bring out pool_cache_put(&_pmap_pv_pool, pv) from lock/unlock section
Revision 1.1.28.9 / (download) - annotate - [select for diffs], Wed Dec 26 14:01:30 2018 UTC (5 years, 3 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.1.28.8: +3 -3
lines
Diff to previous 1.1.28.8 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.8 (colored)
Sync with HEAD, resolve a few conflicts
Revision 1.34 / (download) - annotate - [select for diffs], Fri Dec 21 08:01:01 2018 UTC (5 years, 3 months ago) by ryo
Branch: MAIN
CVS Tags: pgoyette-compat-20190127,
pgoyette-compat-20190118,
pgoyette-compat-1226
Changes since 1.33: +3 -3
lines
Diff to previous 1.33 (colored) to selected 1.8 (colored)
- add workaround for Cavium ThunderX errata 27456. - add cpufuncs table in cpu_info. each cpu clusters may have different erratum. (e.g. big.LITTLE)
Revision 1.1.28.8 / (download) - annotate - [select for diffs], Mon Nov 26 01:52:16 2018 UTC (5 years, 4 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.7: +18 -6
lines
Diff to previous 1.1.28.7 (colored) to branchpoint 1.1 (colored) to selected 1.8 (colored)
Sync with HEAD, resolve a couple of conflicts
Revision 1.33 / (download) - annotate - [select for diffs], Thu Nov 1 20:34:49 2018 UTC (5 years, 5 months ago) by maxv
Branch: MAIN
CVS Tags: pgoyette-compat-1126
Changes since 1.32: +10 -2
lines
Diff to previous 1.32 (colored) to selected 1.8 (colored)
Add kASan support for aarch64. Stack tracking needs more investigation and will come in a separate commit. Reviewed by ryo@ jmcneill@ skrll@.
Revision 1.32 / (download) - annotate - [select for diffs], Wed Oct 31 06:36:19 2018 UTC (5 years, 5 months ago) by ryo
Branch: MAIN
Changes since 1.31: +10 -6
lines
Diff to previous 1.31 (colored) to selected 1.8 (colored)
invalidate icache correctly. l3pte_executable() should be used for only valid pte.
Revision 1.1.28.7 / (download) - annotate - [select for diffs], Sat Oct 20 06:58:23 2018 UTC (5 years, 5 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.6: +257 -346
lines
Diff to previous 1.1.28.6 (colored) to branchpoint 1.1 (colored) to selected 1.8 (colored)
Sync with head
Revision 1.31 / (download) - annotate - [select for diffs], Thu Oct 18 09:01:51 2018 UTC (5 years, 6 months ago) by skrll
Branch: MAIN
CVS Tags: pgoyette-compat-1020
Changes since 1.30: +3 -3
lines
Diff to previous 1.30 (colored) to selected 1.8 (colored)
Provide generic start code that assumes the MMU is off and caches are disabled as per the linux booting protocol for ARMv6 and ARMv7 boards. u-boot image type should be changed to 'linux' for correct behaviour. The new start code builds a minimal "bootstrap" L1PT with cached access disabled and uses the same table for all processors. AP startup is performed in less steps and more code is written in C. The bootstrap tables and stack are placed into an (orphaned) section "_init_memory" which is given to uvm when it is no longer used. Various kernels have been converted to use this code and tested. Some boards were provided by TNF. Thanks! The GENERIC kernel now boots on boards using the TEGRA, SUNXI and EXYNOS kernels. The GENERIC kernel will also work on RPI2 using u-boot. Thanks to martin@ and aymeric@ for testing on parallella and nanosoc respectively
Revision 1.30 / (download) - annotate - [select for diffs], Sun Oct 14 14:31:05 2018 UTC (5 years, 6 months ago) by skrll
Branch: MAIN
Changes since 1.29: +3 -3
lines
Diff to previous 1.29 (colored) to selected 1.8 (colored)
Use __nothing
Revision 1.29 / (download) - annotate - [select for diffs], Fri Oct 12 01:28:57 2018 UTC (5 years, 6 months ago) by ryo
Branch: MAIN
Changes since 1.28: +43 -2
lines
Diff to previous 1.28 (colored) to selected 1.8 (colored)
add initial support of COMPAT_NETBSD32 on AArch64. arm ELF32 EABI binaries could be execute in AArch32 state on AArch64. A32 THUMB mode is not supported yet.
Revision 1.28 / (download) - annotate - [select for diffs], Fri Oct 12 01:13:51 2018 UTC (5 years, 6 months ago) by ryo
Branch: MAIN
Changes since 1.27: +54 -58
lines
Diff to previous 1.27 (colored) to selected 1.8 (colored)
- cleanup checking address ranges with IN_RANGE macro - change PM_ADDR_CHECK macro to KASSERTMSG - restore fast lookup cases with IN_RANGE macro for pmap_extract changed in my previous commit.
Revision 1.27 / (download) - annotate - [select for diffs], Fri Oct 12 00:57:17 2018 UTC (5 years, 6 months ago) by ryo
Branch: MAIN
Changes since 1.26: +88 -163
lines
Diff to previous 1.26 (colored) to selected 1.8 (colored)
rewrite pmap_pte_lookup() to share similar code.
Revision 1.26 / (download) - annotate - [select for diffs], Thu Oct 4 23:53:13 2018 UTC (5 years, 6 months ago) by ryo
Branch: MAIN
Changes since 1.25: +83 -121
lines
Diff to previous 1.25 (colored) to selected 1.8 (colored)
cleanup locore, and changed the way to map memories during boot. - add functions bootpage_enter() and bootpage_alloc() to adapt various layout of physical memory map. especially for 64bit physical memory layout. pmapboot_alloc() allocates pagetable pages from _end[]. - changed to map only the required amount for PA=VA identity mapping (kernel image, UART device, and FDT blob) with L2_BLOCK(2Mbyte). - changing page permission for kernel image, and making KSEG mapping are done at cpu_kernel_vm_init() instead of at locore. - optimize PTE entries with PTE Contiguous bit. it is enabled on devmap only for now. reviewed by skrll@, thanks.
Revision 1.25 / (download) - annotate - [select for diffs], Thu Oct 4 09:09:29 2018 UTC (5 years, 6 months ago) by ryo
Branch: MAIN
Changes since 1.24: +2 -15
lines
Diff to previous 1.24 (colored) to selected 1.8 (colored)
* define LX_BLKPAG_{OS,ATTR}_* for OS dependent PTE attributes in pmap.h * cleanup macros
Revision 1.1.28.6 / (download) - annotate - [select for diffs], Sun Sep 30 01:45:35 2018 UTC (5 years, 6 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.5: +20 -26
lines
Diff to previous 1.1.28.5 (colored) to branchpoint 1.1 (colored) to selected 1.8 (colored)
Ssync with HEAD
Revision 1.24 / (download) - annotate - [select for diffs], Mon Sep 17 00:15:55 2018 UTC (5 years, 7 months ago) by ryo
Branch: MAIN
CVS Tags: pgoyette-compat-0930
Changes since 1.23: +4 -18
lines
Diff to previous 1.23 (colored) to selected 1.8 (colored)
delete debug printf and KASSERT.
Revision 1.23 / (download) - annotate - [select for diffs], Mon Sep 10 16:43:24 2018 UTC (5 years, 7 months ago) by maxv
Branch: MAIN
Changes since 1.22: +5 -3
lines
Diff to previous 1.22 (colored) to selected 1.8 (colored)
Replace KDASSERT by panic.
Revision 1.22 / (download) - annotate - [select for diffs], Mon Sep 10 15:14:50 2018 UTC (5 years, 7 months ago) by maxv
Branch: MAIN
Changes since 1.21: +8 -8
lines
Diff to previous 1.21 (colored) to selected 1.8 (colored)
Rename _pmap_alloc_pdp -> pmap_alloc_pdp, and make it public.
Revision 1.21 / (download) - annotate - [select for diffs], Mon Sep 10 11:05:12 2018 UTC (5 years, 7 months ago) by ryo
Branch: MAIN
Changes since 1.20: +9 -3
lines
Diff to previous 1.20 (colored) to selected 1.8 (colored)
cleanup aarch64 mpstart and fdt bootstrap * arm_cpu_hatch_arg is a bad idea. avoid serializing CPU startup, and eliminate arm_cpu_hatch_arg. in mpstart, resolve own cpu index using array of cpu_mpidr[] (aarch64) * add support fdt enable-method "spin-table" * add support fdt enable-method "brcm,bcm2836-smp" (for 32bit RaspberryPi) * use arm_fdt_cpu_bootstrap() instead of psci_fdt_bootstrap() * rename "arm/fdt/psci_fdt.h" to "arm/fdt/psci_fdtvar.h" because of conflict of include file for needs-flag * add devmap for cpu spin-table of raspberrypi3/aarch64 * no need to force hatch APs for raspberrypi3/arm32 ifndef MULTIPROCESSOR. * fix to work pmap_extract(kerneltext/data/bss) even if before calling pmap_bootstrap idea to use cpu_mpidr[] by jmcneill@. reviewd by skrll@. thanks.
Revision 1.1.28.5 / (download) - annotate - [select for diffs], Thu Sep 6 06:55:22 2018 UTC (5 years, 7 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.4: +195 -99
lines
Diff to previous 1.1.28.4 (colored) to branchpoint 1.1 (colored) to selected 1.8 (colored)
Sync with HEAD Resolve a couple of conflicts (result of the uimin/uimax changes)
Revision 1.20 / (download) - annotate - [select for diffs], Mon Aug 27 15:43:37 2018 UTC (5 years, 7 months ago) by ryo
Branch: MAIN
CVS Tags: pgoyette-compat-0906
Changes since 1.19: +10 -4
lines
Diff to previous 1.19 (colored) to selected 1.8 (colored)
need to add VM_PROT_READ when pmap_kenter_pa(va, pa, VM_PROT_WRITE, 0) or pmap_kenter_pa(va, pa, VM_PROT_EXECUTE, 0). VM_PROT_READ is treated as an access permission inernally.
Revision 1.19 / (download) - annotate - [select for diffs], Sat Aug 11 12:16:34 2018 UTC (5 years, 8 months ago) by ryo
Branch: MAIN
Changes since 1.18: +68 -75
lines
Diff to previous 1.18 (colored) to selected 1.8 (colored)
change to minimum invalidation of TLB. specifying not only va but also asid, and not invalidate L0-L2 entry using tlbi_*_ll() if needed.
Revision 1.18 / (download) - annotate - [select for diffs], Fri Aug 10 21:06:42 2018 UTC (5 years, 8 months ago) by ryo
Branch: MAIN
Changes since 1.17: +32 -20
lines
Diff to previous 1.17 (colored) to selected 1.8 (colored)
treat kernel-exec attr and user-exec attr separately. kernel cannot execute userland exec page, and user cannot execute kernel page.
Revision 1.17 / (download) - annotate - [select for diffs], Mon Aug 6 12:50:56 2018 UTC (5 years, 8 months ago) by ryo
Branch: MAIN
Changes since 1.16: +86 -2
lines
Diff to previous 1.16 (colored) to selected 1.8 (colored)
set kernel text/rodata readonly by default. add function db_write_text() for setting ddb breakpoint.
Revision 1.16 / (download) - annotate - [select for diffs], Tue Jul 31 07:00:48 2018 UTC (5 years, 8 months ago) by skrll
Branch: MAIN
Changes since 1.15: +9 -8
lines
Diff to previous 1.15 (colored) to selected 1.8 (colored)
Define and use VPRINTF
Revision 1.1.28.4 / (download) - annotate - [select for diffs], Sat Jul 28 04:37:25 2018 UTC (5 years, 8 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.3: +180 -109
lines
Diff to previous 1.1.28.3 (colored) to branchpoint 1.1 (colored) to selected 1.8 (colored)
Sync with HEAD
Revision 1.15 / (download) - annotate - [select for diffs], Fri Jul 27 07:04:04 2018 UTC (5 years, 8 months ago) by ryo
Branch: MAIN
CVS Tags: pgoyette-compat-0728
Changes since 1.14: +58 -24
lines
Diff to previous 1.14 (colored) to selected 1.8 (colored)
changes of pmap.c r1.13 seems to be unstable. In order to invalidate icache, not to invalidate all icache, but temporary to make the page writable and invalidate target address only.
Revision 1.14 / (download) - annotate - [select for diffs], Tue Jul 24 10:08:43 2018 UTC (5 years, 8 months ago) by ryo
Branch: MAIN
Changes since 1.13: +14 -8
lines
Diff to previous 1.13 (colored) to selected 1.8 (colored)
don't call pool_cache_put with locking pmap. pool_cache_put call pmap_kenter_pa internally. (pool_cache_put_paddr -> pool_cache_put_slow -> pool_get -> pmap_kenter_pa)
Revision 1.13 / (download) - annotate - [select for diffs], Mon Jul 23 22:51:39 2018 UTC (5 years, 8 months ago) by ryo
Branch: MAIN
Changes since 1.12: +32 -12
lines
Diff to previous 1.12 (colored) to selected 1.8 (colored)
* fix icache invalidations. * "ic ivau" (aarch64_icache_sync_range) with VA generates permission fault in some situations, therefore use KSEG address for now.
Revision 1.12 / (download) - annotate - [select for diffs], Mon Jul 23 22:32:22 2018 UTC (5 years, 8 months ago) by ryo
Branch: MAIN
Changes since 1.11: +27 -55
lines
Diff to previous 1.11 (colored) to selected 1.8 (colored)
rather than using flags to resolve nested locks, reserve pool_cache before locking.
Revision 1.11 / (download) - annotate - [select for diffs], Sat Jul 21 13:08:35 2018 UTC (5 years, 8 months ago) by ryo
Branch: MAIN
Changes since 1.10: +68 -29
lines
Diff to previous 1.10 (colored) to selected 1.8 (colored)
* avoid deadlock. mutex_owned() works only for adaptive lock, therefore we cannot use it for spinlock... * add more NULL check * clear pte when pmap_enter() fails
Revision 1.10 / (download) - annotate - [select for diffs], Tue Jul 17 09:58:14 2018 UTC (5 years, 9 months ago) by ryo
Branch: MAIN
Changes since 1.9: +3 -3
lines
Diff to previous 1.9 (colored) to selected 1.8 (colored)
Use __debugused
Revision 1.9 / (download) - annotate - [select for diffs], Tue Jul 17 00:33:32 2018 UTC (5 years, 9 months ago) by christos
Branch: MAIN
Changes since 1.8: +23 -31
lines
Diff to previous 1.8 (colored)
Add missing casts, remove unused variables.
Revision 1.8 / (download) - annotate - [selected], Mon Jul 9 06:14:38 2018 UTC (5 years, 9 months ago) by ryo
Branch: MAIN
Changes since 1.7: +23 -15
lines
Diff to previous 1.7 (colored)
need locks in pmap_kremove() and pmap_fault_fixup()
Revision 1.1.28.3 / (download) - annotate - [select for diffs], Mon May 21 04:35:57 2018 UTC (5 years, 10 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.2: +8 -15
lines
Diff to previous 1.1.28.2 (colored) to branchpoint 1.1 (colored) to selected 1.8 (colored)
Sync with HEAD
Revision 1.7 / (download) - annotate - [select for diffs], Sun May 20 06:45:00 2018 UTC (5 years, 11 months ago) by ryo
Branch: MAIN
CVS Tags: phil-wifi-base,
pgoyette-compat-0625,
pgoyette-compat-0521
Branch point for: phil-wifi
Changes since 1.6: +6 -13
lines
Diff to previous 1.6 (colored) to selected 1.8 (colored)
pmap_enter() must update modified/referenced flags by 'flags' not 'prot'.
Revision 1.6 / (download) - annotate - [select for diffs], Wed May 16 08:32:07 2018 UTC (5 years, 11 months ago) by ryo
Branch: MAIN
Changes since 1.5: +4 -4
lines
Diff to previous 1.5 (colored) to selected 1.8 (colored)
Fix memory leak. it was leaking one page every pmap_create(). pm->pm_vmlist must be initialized before calling _pmap_alloc_pdp().
Revision 1.1.28.2 / (download) - annotate - [select for diffs], Wed May 2 07:20:02 2018 UTC (5 years, 11 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.1: +80 -157
lines
Diff to previous 1.1.28.1 (colored) to branchpoint 1.1 (colored) to selected 1.8 (colored)
Synch with HEAD
Revision 1.5 / (download) - annotate - [select for diffs], Sun Apr 29 12:07:05 2018 UTC (5 years, 11 months ago) by ryo
Branch: MAIN
CVS Tags: pgoyette-compat-0502
Changes since 1.4: +10 -7
lines
Diff to previous 1.4 (colored) to selected 1.8 (colored)
fix KASSERT panic. pv_entry may not be exists in pvlist when pmap_remove().
Revision 1.4 / (download) - annotate - [select for diffs], Sun Apr 29 12:05:39 2018 UTC (5 years, 11 months ago) by ryo
Branch: MAIN
Changes since 1.3: +2 -9
lines
Diff to previous 1.3 (colored) to selected 1.8 (colored)
delete unused code
Revision 1.3 / (download) - annotate - [select for diffs], Fri Apr 27 08:07:08 2018 UTC (5 years, 11 months ago) by ryo
Branch: MAIN
Changes since 1.2: +74 -147
lines
Diff to previous 1.2 (colored) to selected 1.8 (colored)
fix instability behavior of bufcache on aarch64. * fix to return correct ref/mod when PMAP_WIRED. * changed to keep wired flags in pte instead of pv_entry, and cleanup.
Revision 1.1.28.1 / (download) - annotate - [select for diffs], Sat Apr 7 04:12:10 2018 UTC (6 years ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1: +2041 -65
lines
Diff to previous 1.1 (colored) to selected 1.8 (colored)
Sync with HEAD. 77 conflicts resolved - all of them $NetBSD$
Revision 1.2 / (download) - annotate - [select for diffs], Sun Apr 1 04:35:03 2018 UTC (6 years ago) by ryo
Branch: MAIN
CVS Tags: pgoyette-compat-0422,
pgoyette-compat-0415,
pgoyette-compat-0407
Changes since 1.1: +2041 -65
lines
Diff to previous 1.1 (colored) to selected 1.8 (colored)
Add initial support for ARMv8 (AARCH64) (by nisimura@ and ryo@) - sys/arch/evbarm64 is gone and integrated into sys/arch/evbarm. (by skrll@) - add support fdt. evbarm/conf/GENERIC64 fdt (bcm2837,sunxi,tegra) based generic 64bit kernel config. (by skrll@, jmcneill@)
Revision 1.1.4.2 / (download) - annotate - [select for diffs], Wed Aug 20 00:02:39 2014 UTC (9 years, 8 months ago) by tls
Branch: tls-maxphys
Changes since 1.1.4.1: +206 -0
lines
Diff to previous 1.1.4.1 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.8 (colored)
Rebase to HEAD as of a few days ago.
Revision 1.1.4.1, Sun Aug 10 05:47:37 2014 UTC (9 years, 8 months ago) by tls
Branch: tls-maxphys
Changes since 1.1: +0 -206
lines
FILE REMOVED
file pmap.c was added on branch tls-maxphys on 2014-08-20 00:02:39 +0000
Revision 1.1 / (download) - annotate - [select for diffs], Sun Aug 10 05:47:37 2014 UTC (9 years, 8 months ago) by matt
Branch: MAIN
CVS Tags: tls-maxphys-base-20171202,
tls-maxphys-base,
prg-localcount2-base3,
prg-localcount2-base2,
prg-localcount2-base1,
prg-localcount2-base,
prg-localcount2,
pgoyette-localcount-base,
pgoyette-localcount-20170426,
pgoyette-localcount-20170320,
pgoyette-localcount-20170107,
pgoyette-localcount-20161104,
pgoyette-localcount-20160806,
pgoyette-localcount-20160726,
pgoyette-localcount,
pgoyette-compat-base,
pgoyette-compat-0330,
pgoyette-compat-0322,
pgoyette-compat-0315,
perseant-stdc-iso10646-base,
perseant-stdc-iso10646,
nick-nhusb-base-20170825,
nick-nhusb-base-20170204,
nick-nhusb-base-20161204,
nick-nhusb-base-20161004,
nick-nhusb-base-20160907,
nick-nhusb-base-20160529,
nick-nhusb-base-20160422,
nick-nhusb-base-20160319,
nick-nhusb-base-20151226,
nick-nhusb-base-20150921,
nick-nhusb-base-20150606,
nick-nhusb-base-20150406,
nick-nhusb-base,
nick-nhusb,
netbsd-8-base,
netbsd-8-2-RELEASE,
netbsd-8-1-RELEASE,
netbsd-8-1-RC1,
netbsd-8-0-RELEASE,
netbsd-8-0-RC2,
netbsd-8-0-RC1,
netbsd-8,
netbsd-7-nhusb-base-20170116,
netbsd-7-nhusb-base,
netbsd-7-nhusb,
netbsd-7-base,
netbsd-7-2-RELEASE,
netbsd-7-1-RELEASE,
netbsd-7-1-RC2,
netbsd-7-1-RC1,
netbsd-7-1-2-RELEASE,
netbsd-7-1-1-RELEASE,
netbsd-7-1,
netbsd-7-0-RELEASE,
netbsd-7-0-RC3,
netbsd-7-0-RC2,
netbsd-7-0-RC1,
netbsd-7-0-2-RELEASE,
netbsd-7-0-1-RELEASE,
netbsd-7-0,
netbsd-7,
matt-nb8-mediatek-base,
matt-nb8-mediatek,
localcount-20160914,
jdolecek-ncq-base,
jdolecek-ncq,
bouyer-socketcan-base1,
bouyer-socketcan-base,
bouyer-socketcan
Branch point for: tls-maxphys,
pgoyette-compat
Diff to selected 1.8 (colored)
Preliminary files for AARCH64 (64-bit ARM) support. Enough for a distribution build.