The NetBSD Project

CVS log for src/sys/arch/aarch64/include/pmap.h

[BACK] Up to [cvs.NetBSD.org] / src / sys / arch / aarch64 / include

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.59 / (download) - annotate - [select for diffs], Wed Aug 2 15:57:21 2023 UTC (8 months, 2 weeks ago) by skrll
Branch: MAIN
CVS Tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, HEAD
Changes since 1.58: +1 -7 lines
Diff to previous 1.58 (colored) to selected 1.47 (colored)

No need to define cpu_{,set}_tlb_info here - just use the
sys/uvm/pmap/pmap_tlb.h versions.

Revision 1.58 / (download) - annotate - [select for diffs], Thu Apr 20 08:28:03 2023 UTC (11 months, 3 weeks ago) by skrll
Branch: MAIN
Changes since 1.57: +7 -27 lines
Diff to previous 1.57 (colored) to selected 1.47 (colored)

Provide a shared pmap_devmap implementation and convert all pmap_devmap
arrays to use DEVMAP_ENTRY{,_END}

Revision 1.57 / (download) - annotate - [select for diffs], Thu Nov 3 09:04:56 2022 UTC (17 months, 1 week ago) by skrll
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.56: +152 -133 lines
Diff to previous 1.56 (colored) to selected 1.47 (colored)

Provide MI PMAP support on AARCH64

Revision 1.56 / (download) - annotate - [select for diffs], Sat Oct 29 08:29:28 2022 UTC (17 months, 2 weeks ago) by skrll
Branch: MAIN
Changes since 1.55: +4 -4 lines
Diff to previous 1.55 (colored) to selected 1.47 (colored)

KNF + remove unnecessary brackets

Revision 1.55 / (download) - annotate - [select for diffs], Sun Oct 23 07:13:07 2022 UTC (17 months, 3 weeks ago) by skrll
Branch: MAIN
Changes since 1.54: +8 -8 lines
Diff to previous 1.54 (colored) to selected 1.47 (colored)

KNF.

Revision 1.54 / (download) - annotate - [select for diffs], Sun Oct 23 07:11:26 2022 UTC (17 months, 3 weeks ago) by skrll
Branch: MAIN
Changes since 1.53: +7 -7 lines
Diff to previous 1.53 (colored) to selected 1.47 (colored)

Line continuation alignment whitespace. NFC.

Revision 1.53 / (download) - annotate - [select for diffs], Sat Oct 15 11:07:38 2022 UTC (18 months ago) by jmcneill
Branch: MAIN
Changes since 1.52: +4 -4 lines
Diff to previous 1.52 (colored) to selected 1.47 (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.52 / (download) - annotate - [select for diffs], Sat Apr 2 11:16:06 2022 UTC (2 years ago) by skrll
Branch: MAIN
CVS Tags: bouyer-sunxi-drm-base, bouyer-sunxi-drm
Changes since 1.51: +6 -1 lines
Diff to previous 1.51 (colored) to selected 1.47 (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.51 / (download) - annotate - [select for diffs], Sat Jan 15 08:14:37 2022 UTC (2 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.50: +2 -2 lines
Diff to previous 1.50 (colored) to selected 1.47 (colored)

Remove unnecessary brackets

Revision 1.50 / (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.49: +2 -2 lines
Diff to previous 1.49 (colored) to selected 1.47 (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.49 / (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.48: +64 -3 lines
Diff to previous 1.48 (colored) to selected 1.47 (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.46.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.46.2.1: +6 -1 lines
Diff to previous 1.46.2.1 (colored) to branchpoint 1.46 (colored) next main 1.47 (colored)

Sync w/ HEAD.

Revision 1.47.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.47: +6 -1 lines
Diff to previous 1.47 (colored) next main 1.48 (colored)

sync with head

Revision 1.48 / (download) - annotate - [select for diffs], Wed May 19 12:16:01 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.47: +6 -1 lines
Diff to previous 1.47 (colored)

Make even more pmap agnostic

Revision 1.46.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.46: +37 -8 lines
Diff to previous 1.46 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.47 / (download) - annotate - [selected], Fri Apr 30 20:07:23 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.46: +37 -8 lines
Diff to previous 1.46 (colored)

Make the ddb for pmap / pte information pmap agnostic

Revision 1.43.2.1 / (download) - annotate - [select for diffs], Sat Apr 3 22:28:13 2021 UTC (3 years ago) by thorpej
Branch: thorpej-futex
Changes since 1.43: +10 -5 lines
Diff to previous 1.43 (colored) next main 1.44 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.45.2.1 / (download) - annotate - [select for diffs], Sat Apr 3 21:44:40 2021 UTC (3 years ago) by thorpej
Branch: thorpej-cfargs
Changes since 1.45: +3 -3 lines
Diff to previous 1.45 (colored) next main 1.46 (colored) to selected 1.47 (colored)

Sync with HEAD.

Revision 1.46 / (download) - annotate - [select for diffs], Sat Mar 20 14:30:50 2021 UTC (3 years ago) by skrll
Branch: MAIN
CVS Tags: thorpej-futex-base, thorpej-cfargs-base
Branch point for: thorpej-i2c-spi-conf
Changes since 1.45: +3 -3 lines
Diff to previous 1.45 (colored) to selected 1.47 (colored)

Make pmapboot_enter panic if anything goes wrong and any mappings overlap
rather than only doing it in locore.S

Revision 1.45 / (download) - annotate - [select for diffs], Sun Jan 31 08:14:58 2021 UTC (3 years, 2 months ago) by skrll
Branch: MAIN
Branch point for: thorpej-cfargs
Changes since 1.44: +2 -2 lines
Diff to previous 1.44 (colored) to selected 1.47 (colored)

Improve a comment

Revision 1.44 / (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.43: +7 -2 lines
Diff to previous 1.43 (colored) to selected 1.47 (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.43 / (download) - annotate - [select for diffs], Sat Sep 19 13:33:08 2020 UTC (3 years, 6 months ago) by skrll
Branch: MAIN
Branch point for: thorpej-futex
Changes since 1.42: +1 -3 lines
Diff to previous 1.42 (colored) to selected 1.47 (colored)

Make __md_palloc pmap agnostic (think sys/uvm/pmap)

Revision 1.42 / (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.41: +2 -2 lines
Diff to previous 1.41 (colored) to selected 1.47 (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.41 / (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.40: +6 -11 lines
Diff to previous 1.40 (colored) to selected 1.47 (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.40 / (download) - annotate - [select for diffs], Sun Jun 14 21:47:15 2020 UTC (3 years, 10 months ago) by ad
Branch: MAIN
Changes since 1.39: +16 -12 lines
Diff to previous 1.39 (colored) to selected 1.47 (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.39 / (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.38: +6 -5 lines
Diff to previous 1.38 (colored) to selected 1.47 (colored)

Use MUTEX_NODEBUG for PV locks as is commonly done.  OK ryo.

Revision 1.38 / (download) - annotate - [select for diffs], Wed May 13 06:08:51 2020 UTC (3 years, 11 months ago) by ryo
Branch: MAIN
Changes since 1.37: +1 -71 lines
Diff to previous 1.37 (colored) to selected 1.47 (colored)

- move aarch64 addressspace macros from pmap.h to cpufunc.h
- rename ptr_strip_pac() to aarch64_strip_pac()

Revision 1.5.2.3 / (download) - annotate - [select for diffs], Mon Apr 13 08:03:27 2020 UTC (4 years ago) by martin
Branch: phil-wifi
Changes since 1.5.2.2: +7 -2 lines
Diff to previous 1.5.2.2 (colored) to branchpoint 1.5 (colored) next main 1.6 (colored) to selected 1.47 (colored)

Mostly merge changes from HEAD upto 20200411

Revision 1.5.2.2 / (download) - annotate - [select for diffs], Wed Apr 8 14:07:24 2020 UTC (4 years ago) by martin
Branch: phil-wifi
Changes since 1.5.2.1: +110 -21 lines
Diff to previous 1.5.2.1 (colored) to branchpoint 1.5 (colored) to selected 1.47 (colored)

Merge changes from current as of 20200406

Revision 1.37 / (download) - annotate - [select for diffs], Wed Apr 8 00:13:40 2020 UTC (4 years ago) by ryo
Branch: MAIN
CVS Tags: phil-wifi-20200421, phil-wifi-20200411, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh
Changes since 1.36: +5 -2 lines
Diff to previous 1.36 (colored) to selected 1.47 (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.36 / (download) - annotate - [select for diffs], Sat Feb 29 21:32:22 2020 UTC (4 years, 1 month ago) by ryo
Branch: MAIN
CVS Tags: phil-wifi-20200406, is-mlppp-base, is-mlppp
Changes since 1.35: +71 -1 lines
Diff to previous 1.35 (colored) to selected 1.47 (colored)

add helper function aarch64_addresspace() and aarch64_untag_address() to check address space, and eliminate address tag

Revision 1.35 / (download) - annotate - [select for diffs], Sat Feb 29 21:09:11 2020 UTC (4 years, 1 month ago) by ryo
Branch: MAIN
Changes since 1.34: +3 -1 lines
Diff to previous 1.34 (colored) to selected 1.47 (colored)

replace KSEG pages mapping code with generic function pmapboot_enter_range()

Revision 1.30.2.1 / (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.30: +26 -14 lines
Diff to previous 1.30 (colored) next main 1.31 (colored) to selected 1.47 (colored)

Sync with head.

Revision 1.34 / (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.33: +5 -5 lines
Diff to previous 1.33 (colored) to selected 1.47 (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.33 / (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.32: +8 -1 lines
Diff to previous 1.32 (colored) to selected 1.47 (colored)

add support pmap_pv(9)

Patch originally from jmcneill@. thanks

Revision 1.32 / (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.31: +16 -11 lines
Diff to previous 1.31 (colored) to selected 1.47 (colored)

separate struct vm_page_md into vm_page_md and pmap_page
for preparation pmap_pv(9)

Revision 1.31 / (download) - annotate - [select for diffs], Sun Jan 26 15:52:00 2020 UTC (4 years, 2 months ago) by skrll
Branch: MAIN
Changes since 1.30: +2 -2 lines
Diff to previous 1.30 (colored) to selected 1.47 (colored)

Typo in comment

Revision 1.30 / (download) - annotate - [select for diffs], Mon Jan 6 08:29:08 2020 UTC (4 years, 3 months ago) by skrll
Branch: MAIN
CVS Tags: ad-namecache-base2, ad-namecache-base1, ad-namecache-base
Branch point for: ad-namecache
Changes since 1.29: +6 -6 lines
Diff to previous 1.29 (colored) to selected 1.47 (colored)

Fix DEVMAP build losage by reducing diffs between arm and aarch64

*sigh*

Revision 1.29 / (download) - annotate - [select for diffs], Mon Dec 30 16:05:15 2019 UTC (4 years, 3 months ago) by skrll
Branch: MAIN
Changes since 1.28: +5 -4 lines
Diff to previous 1.28 (colored) to selected 1.47 (colored)

Drop DEVMAP_{TRUNK_ADDR,ROUND_SIZE} to 4KB pages now that pmap_map_chunk
allows this.

Revision 1.24.4.2 / (download) - annotate - [select for diffs], Sun Dec 29 09:27:09 2019 UTC (4 years, 3 months ago) by martin
Branch: netbsd-9
CVS Tags: netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2
Changes since 1.24.4.1: +6 -2 lines
Diff to previous 1.24.4.1 (colored) to branchpoint 1.24 (colored) next main 1.25 (colored) to selected 1.47 (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.28 / (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.27: +6 -2 lines
Diff to previous 1.27 (colored) to selected 1.47 (colored)

Do not use Early Write Acknowledge for PCIe I/O and config space.

Revision 1.27 / (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.26: +2 -2 lines
Diff to previous 1.26 (colored) to selected 1.47 (colored)

Enable early write acknowledge for device memory mappings.

Revision 1.24.4.1 / (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.24: +3 -1 lines
Diff to previous 1.24 (colored) to selected 1.47 (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.26 / (download) - annotate - [select for diffs], Tue Oct 29 20:01:22 2019 UTC (4 years, 5 months ago) by maya
Branch: MAIN
CVS Tags: phil-wifi-20191119
Changes since 1.25: +3 -1 lines
Diff to previous 1.25 (colored) to selected 1.47 (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.25 / (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.24: +2 -2 lines
Diff to previous 1.24 (colored) to selected 1.47 (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.5.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.5: +89 -17 lines
Diff to previous 1.5 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.24 / (download) - annotate - [select for diffs], Mon Apr 8 21:18:22 2019 UTC (5 years ago) by ryo
Branch: MAIN
CVS Tags: phil-wifi-20190609, netbsd-9-base, isaki-audio2-base, isaki-audio2
Branch point for: netbsd-9
Changes since 1.23: +3 -2 lines
Diff to previous 1.23 (colored) to selected 1.47 (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.23 / (download) - annotate - [select for diffs], Tue Mar 19 16:45:28 2019 UTC (5 years ago) by ryo
Branch: MAIN
Changes since 1.22: +3 -1 lines
Diff to previous 1.22 (colored) to selected 1.47 (colored)

- add ddb command "machine ttbr" to dump MMU tables.
- tidy up descriptions, usages and messages.

Revision 1.22 / (download) - annotate - [select for diffs], Tue Mar 19 16:05:49 2019 UTC (5 years ago) by ryo
Branch: MAIN
Changes since 1.21: +6 -4 lines
Diff to previous 1.21 (colored) to selected 1.47 (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.21 / (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.20: +6 -5 lines
Diff to previous 1.20 (colored) to selected 1.47 (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.10 / (download) - annotate - [select for diffs], Fri Jan 18 08:50:13 2019 UTC (5 years, 2 months ago) by pgoyette
Branch: pgoyette-compat
CVS Tags: pgoyette-compat-merge-20190127
Changes since 1.1.28.9: +11 -1 lines
Diff to previous 1.1.28.9 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.47 (colored)

Synch with HEAD

Revision 1.20 / (download) - annotate - [select for diffs], Fri Jan 4 21:57:53 2019 UTC (5 years, 3 months ago) by jdolecek
Branch: MAIN
CVS Tags: pgoyette-compat-20190127, pgoyette-compat-20190118
Changes since 1.19: +11 -1 lines
Diff to previous 1.19 (colored) to selected 1.47 (colored)

re-apply rev. 1.18, now tested by Jonathan Kollasch and Ryo Shimizu - no
problems observed, and about 2x speedup for cached read

Implement PMAP_DIRECT / pmap_direct_process() in support of experimental
UBC optimization

PR kern/53124

Revision 1.1.28.9 / (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.8: +7 -2 lines
Diff to previous 1.1.28.8 (colored) to branchpoint 1.1 (colored) to selected 1.47 (colored)

Sync with HEAD, resolve a couple of conflicts

Revision 1.19 / (download) - annotate - [select for diffs], Wed Nov 21 12:34:21 2018 UTC (5 years, 4 months ago) by jdolecek
Branch: MAIN
CVS Tags: pgoyette-compat-1226, pgoyette-compat-1126
Changes since 1.18: +1 -11 lines
Diff to previous 1.18 (colored) to selected 1.47 (colored)

revert PMAP_DIRECT until tested; requested by mrg@

Revision 1.18 / (download) - annotate - [select for diffs], Tue Nov 20 20:53:50 2018 UTC (5 years, 4 months ago) by jdolecek
Branch: MAIN
Changes since 1.17: +11 -1 lines
Diff to previous 1.17 (colored) to selected 1.47 (colored)

Implement PMAP_DIRECT / pmap_direct_process() in support of experimental
UBC optimizations (compile-tested only for now)

PR kern/53124

Revision 1.17 / (download) - annotate - [select for diffs], Thu Nov 1 20:34:50 2018 UTC (5 years, 5 months ago) by maxv
Branch: MAIN
Changes since 1.16: +7 -2 lines
Diff to previous 1.16 (colored) to selected 1.47 (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.1.28.8 / (download) - annotate - [select for diffs], Sat Oct 20 06:58:24 2018 UTC (5 years, 5 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.7: +48 -9 lines
Diff to previous 1.1.28.7 (colored) to branchpoint 1.1 (colored) to selected 1.47 (colored)

Sync with head

Revision 1.16 / (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.15: +2 -2 lines
Diff to previous 1.15 (colored) to selected 1.47 (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.15 / (download) - annotate - [select for diffs], Sat Oct 13 08:32:36 2018 UTC (5 years, 6 months ago) by ryo
Branch: MAIN
Changes since 1.14: +5 -1 lines
Diff to previous 1.14 (colored) to selected 1.47 (colored)

- define PMAP_{MAP,UNMAP}_POOLPAGE for performance
- define __HAVE_MM_MD_KERNACC and add mm_md_kernacc()

Revision 1.14 / (download) - annotate - [select for diffs], Fri Oct 12 01:28:58 2018 UTC (5 years, 6 months ago) by ryo
Branch: MAIN
Changes since 1.13: +1 -0 lines
Diff to previous 1.13 (colored) to selected 1.47 (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.13 / (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.12: +6 -5 lines
Diff to previous 1.12 (colored) to selected 1.47 (colored)

rewrite pmap_pte_lookup() to share similar code.

Revision 1.12 / (download) - annotate - [select for diffs], Thu Oct 4 23:53:14 2018 UTC (5 years, 6 months ago) by ryo
Branch: MAIN
Changes since 1.11: +15 -2 lines
Diff to previous 1.11 (colored) to selected 1.47 (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.11 / (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.10: +23 -3 lines
Diff to previous 1.10 (colored) to selected 1.47 (colored)

* define LX_BLKPAG_{OS,ATTR}_* for OS dependent PTE attributes in pmap.h
* cleanup macros

Revision 1.1.28.7 / (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.6: +6 -1 lines
Diff to previous 1.1.28.6 (colored) to branchpoint 1.1 (colored) to selected 1.47 (colored)

Ssync with HEAD

Revision 1.10 / (download) - annotate - [select for diffs], Sat Sep 15 19:47:48 2018 UTC (5 years, 7 months ago) by jakllsch
Branch: MAIN
CVS Tags: pgoyette-compat-0930
Changes since 1.9: +4 -1 lines
Diff to previous 1.9 (colored) to selected 1.47 (colored)

make kernel-groveling crash(8) work on aarch64

Revision 1.9 / (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.8: +3 -1 lines
Diff to previous 1.8 (colored) to selected 1.47 (colored)

Rename _pmap_alloc_pdp -> pmap_alloc_pdp, and make it public.

Revision 1.1.28.6 / (download) - annotate - [select for diffs], Thu Sep 6 06:55:23 2018 UTC (5 years, 7 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.5: +7 -3 lines
Diff to previous 1.1.28.5 (colored) to branchpoint 1.1 (colored) to selected 1.47 (colored)

Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)

Revision 1.8 / (download) - annotate - [select for diffs], Fri Aug 10 21:06:42 2018 UTC (5 years, 8 months ago) by ryo
Branch: MAIN
CVS Tags: pgoyette-compat-0906
Changes since 1.7: +3 -3 lines
Diff to previous 1.7 (colored) to selected 1.47 (colored)

treat kernel-exec attr and user-exec attr separately.
kernel cannot execute userland exec page, and user cannot execute kernel page.

Revision 1.7 / (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.6: +5 -1 lines
Diff to previous 1.6 (colored) to selected 1.47 (colored)

set kernel text/rodata readonly by default.
add function db_write_text() for setting ddb breakpoint.

Revision 1.1.28.5 / (download) - annotate - [select for diffs], Sat Jul 28 04:37:26 2018 UTC (5 years, 8 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.4: +4 -1 lines
Diff to previous 1.1.28.4 (colored) to branchpoint 1.1 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.6 / (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.5: +4 -1 lines
Diff to previous 1.5 (colored) to selected 1.47 (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.1.28.4 / (download) - annotate - [select for diffs], Mon Jun 25 07:25:37 2018 UTC (5 years, 9 months ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.3: +6 -5 lines
Diff to previous 1.1.28.3 (colored) to branchpoint 1.1 (colored) to selected 1.47 (colored)

Sync with HEAD

Revision 1.5 / (download) - annotate - [select for diffs], Fri Jun 8 18:09:43 2018 UTC (5 years, 10 months ago) by jmcneill
Branch: MAIN
CVS Tags: phil-wifi-base, pgoyette-compat-0625
Branch point for: phil-wifi
Changes since 1.4: +6 -5 lines
Diff to previous 1.4 (colored) to selected 1.47 (colored)

Provide bs_mmap implementations for bcm283x based boards.

PR:		port-arm/53283
Submitted by:	Nick Hudson

Revision 1.1.28.3 / (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.2: +1 -6 lines
Diff to previous 1.1.28.2 (colored) to branchpoint 1.1 (colored) to selected 1.47 (colored)

Synch with HEAD

Revision 1.4 / (download) - annotate - [select for diffs], Fri Apr 27 08:07:08 2018 UTC (5 years, 11 months ago) by ryo
Branch: MAIN
CVS Tags: pgoyette-compat-0521, pgoyette-compat-0502
Changes since 1.3: +1 -6 lines
Diff to previous 1.3 (colored) to selected 1.47 (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.2 / (download) - annotate - [select for diffs], Mon Apr 16 01:59:52 2018 UTC (6 years ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1.28.1: +5 -5 lines
Diff to previous 1.1.28.1 (colored) to branchpoint 1.1 (colored) to selected 1.47 (colored)

Sync with HEAD, resolve some conflicts

Revision 1.3 / (download) - annotate - [select for diffs], Mon Apr 9 22:26:16 2018 UTC (6 years ago) by jmcneill
Branch: MAIN
CVS Tags: pgoyette-compat-0422, pgoyette-compat-0415
Changes since 1.2: +5 -5 lines
Diff to previous 1.2 (colored) to selected 1.47 (colored)

Fix encoding of MMAP flags for generic_bs_mmap

Revision 1.1.28.1 / (download) - annotate - [select for diffs], Sat Apr 7 04:12:11 2018 UTC (6 years ago) by pgoyette
Branch: pgoyette-compat
Changes since 1.1: +163 -20 lines
Diff to previous 1.1 (colored) to selected 1.47 (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-0407
Changes since 1.1: +163 -20 lines
Diff to previous 1.1 (colored) to selected 1.47 (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, 7 months ago) by tls
Branch: tls-maxphys
Changes since 1.1.4.1: +77 -0 lines
Diff to previous 1.1.4.1 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored) to selected 1.47 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.1.4.1, Sun Aug 10 05:47:38 2014 UTC (9 years, 8 months ago) by tls
Branch: tls-maxphys
Changes since 1.1: +0 -77 lines
FILE REMOVED

file pmap.h 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:38 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.47 (colored)

Preliminary files for AARCH64 (64-bit ARM) support.
Enough for a distribution build.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>