freebsd-dev/sys/arm64/include
Andrew Turner 36f1526a59 Add experimental 16k page support on arm64
Add initial 16k page support on arm64. It is considered experimental,
with no guarantee of compatibility with a userspace or kernel modules
built with the current a 4k page size as code will likely try to pass
in a too small size when working with APIs that take a multiple of a
page, e.g. mmap.

As this is experimental, and because userspace and the kernel need to
have the PAGE_SIZE macro kept in sync there is no kernel option to
enable this. To test a new image should be built with the
PAGE_{SIZE,SHIFT,MASK} macros changed to the 16k versions.

There are currently known issues with loading modules from an old
loader as it can misalign them to load on a non-16k boundary.

Testing has shown good results in kernel workloads that allocate and
free large amounts of memory as only a quarter of the number of calls
into the VM subsystem are needed in the best case.

Reviewed by:	markj
Tested by:	gallatin
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D34793
2022-07-19 10:57:03 +01:00
..
_align.h
_bus.h
_inttypes.h
_limits.h
_stdint.h
_types.h Reduce code duplication in machine/_types.h 2021-06-14 16:30:16 +01:00
acpica_machdep.h
armreg.h Decode the arm64 SVE ID register 2022-06-29 17:50:04 +01:00
asm.h Handle functions that use a nop in the arm64 fbt 2021-03-03 14:18:03 +00:00
atomic.h Fix the sanitizer header checks on arm64 2022-02-23 14:50:56 +00:00
bus_dma_impl.h bus_dma: Deduplicate locking helper functions. 2022-01-05 13:50:40 -08:00
bus_dma.h
bus.h Fix the sanitizer header checks on arm64 2022-02-23 14:50:56 +00:00
clock.h
cmn600_reg.h Add support of ARM CMN-600 controller, PMU access functions only. Add support of PMU counters of ARM CMN-600 controller. 2022-06-26 22:03:04 +03:00
counter.h Allocate arm64 per-CPU data in the correct domain 2021-10-11 10:36:50 +01:00
cpu.h Add more Arm CPU IDs 2022-05-24 11:04:56 +01:00
cpufunc.h Allow ddb and dtrace use the DMAP region on arm64 2021-10-01 11:27:33 +01:00
csan.h arm64: Improve DDB backtrace support 2021-02-01 14:15:57 +00:00
db_machdep.h arm64: Fix a logic bug in is_load_instr(). 2021-09-15 09:03:18 -07:00
debug_monitor.h Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
disassem.h
dump.h minidump: De-duplicate the progress bar 2021-09-29 16:42:21 -03:00
efi.h smbios: support getting address from EFI 2021-04-07 14:46:29 -05:00
elf.h arm64: HWCAP/HWCAP2 aux args support for 32-bit ARM binaries. 2021-07-25 19:39:32 +10:00
endian.h Consolidate machine/endian.h definitions 2021-03-26 19:00:22 -03:00
exec.h
float.h
floatingpoint.h
fpu.h
frame.h
gdb_machdep.h gdb: report specific stop reason for watchpoints 2021-03-30 11:36:41 -03:00
hypervisor.h Update the arm64 HCR_EL2 registers 2021-07-14 19:28:16 +00:00
ieeefp.h
ifunc.h Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
in_cksum.h machine/in_cksum.h: don't include sys/cdefs.h 2022-04-18 21:02:19 +01:00
intr.h arm64: Increase NIRQ to 16k 2020-10-15 03:12:00 +00:00
iodev.h Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
iommu.h Introduce IOMMU support for arm64 platform. 2020-11-16 21:55:52 +00:00
kdb.h arm64: implement kdb watchpoint functions 2021-03-29 12:05:43 -03:00
machdep.h Use L2 blocks when in the identity map 2021-03-03 14:18:03 +00:00
md_var.h Simplify swi for bus_dma. 2021-12-28 13:51:25 -08:00
memdev.h
metadata.h
minidump.h Make page size dynamic in libkvm for arm64 2022-03-15 09:52:15 +00:00
ofw_machdep.h Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
param.h arm64: Stop setting VM_BCACHE_SIZE_MAX 2021-01-19 20:34:35 -05:00
pcb.h arm64: remove pcb_pc 2021-01-08 14:53:44 -04:00
pci_cfgreg.h Remove "All Rights Reserved" from FreeBSD Foundation sys/ copyrights 2021-08-08 10:42:24 -04:00
pcpu_aux.h Allocate arm64 per-CPU data in the correct domain 2021-10-11 10:36:50 +01:00
pcpu.h Make the arm64 get_pcpu a function again 2022-03-08 11:54:58 +00:00
pmap.h Add experimental 16k page support on arm64 2022-07-19 10:57:03 +01:00
pmc_mdep.h Allocate event for DMC-620 and CMN-600 controllers PMU. Add events supported by DMC-620 and CMN-600 controllers PMU. 2022-06-26 21:52:26 +03:00
proc.h Add arm64 pointer authentication support 2022-01-12 15:27:17 +00:00
procctl.h
profile.h Remove checks for __GNUCLIKE_ASM assuming it is always true. 2022-04-12 10:05:45 -07:00
psl.h
pte.h Add experimental 16k page support on arm64 2022-07-19 10:57:03 +01:00
ptrace.h
reg.h Add NT_ARM_ADDR_MASK 2022-02-22 17:10:35 +00:00
reloc.h
resource.h
runq.h
setjmp.h
sf_buf.h
sigframe.h
signal.h
smp.h
stack.h arm64: Improve DDB backtrace support 2021-02-01 14:15:57 +00:00
stdarg.h
sysarch.h
tls.h Add <machine/tls.h> header to hold MD constants and helpers for TLS. 2021-12-09 13:17:13 -08:00
trap.h
ucontext.h
undefined.h
vdso.h
vfp.h Split out vfp_new_thread 2022-06-29 15:15:43 +01:00
vm.h Add a way to map arm64 non-posted device memory 2021-05-01 06:01:20 +00:00
vmparam.h Fix the arm64 DMAP start address in a comment 2022-03-10 11:00:44 +00:00