opnsense-src/sys/powerpc/include
Justin Hibbits caef3e1280 powerpc/pmap: NUMA-ize vm_page_array on powerpc
Summary:
This matches r351198 from amd64.  This only applies to AIM64 and Book-E.
On AIM64 it short-circuits with one domain, to behave similar to
existing.  Otherwise it will allocate 16MB huge pages to hold the page
array, across all NUMA domains.  On the first domain it will shift the
page array base up, to "upper-align" the page array in that domain, so
as to reduce the number of pages from the next domain appearing in this
domain.  After the first domain, subsequent domains will be allocated in
full 16MB pages, until the final domain, which can be short.  This means
some inner domains may have pages accounted in earlier domains.

On Book-E the page array is setup at MMU bootstrap time so that it's
always mapped in TLB1, on both 32-bit and 64-bit.  This reduces the TLB0
overhead for touching the vm_page_array, which reduces up to one TLB
miss per array access.

Since page_range (vm_page_startup()) is no longer used on Book-E but is on
32-bit AIM, mark the variable as potentially unused, rather than using a
nasty #if defined() list.

Reviewed by:	luporl
Differential Revision:	https://reviews.freebsd.org/D21449
2019-12-07 03:34:03 +00:00
..
_align.h spdx: initial adoption of licensing ID tags. 2017-11-18 14:26:50 +00:00
_bus.h Regularize my copyright notice 2019-12-04 16:56:11 +00:00
_inttypes.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
_limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
_stdint.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
_types.h Do not include float interfaces when using libsa. 2018-02-23 04:04:25 +00:00
altivec.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
asm.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
atomic.h atomic: Add atomic_cmpset_masked to powerpc and use it 2019-11-15 04:33:07 +00:00
bat.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
bus.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
bus_dma.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
clock.h
counter.h Centralize __pcpu definitions. 2019-08-29 07:25:27 +00:00
cpu.h powerpc: Add another feature2 flag, and update power9 definition 2019-04-26 02:30:03 +00:00
cpufunc.h powerpc: Adjust priority NOPs, and make them functions 2019-04-12 00:53:30 +00:00
db_machdep.h Fix PPC symbol resolution 2018-05-10 03:59:48 +00:00
dbdma.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
dump.h [PPC64] Initial kernel minidump implementation 2019-10-14 13:04:04 +00:00
efi.h Fix building on i386 and arm. But 'public domain' headers on the files 2016-10-13 06:56:23 +00:00
elf.h Consolidate identical ELF auxargs type defintions. 2018-10-22 22:24:32 +00:00
endian.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
exec.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
float.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
floatingpoint.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
fpu.h Added ptrace support for reading/writing powerpc VSX registers 2018-06-02 19:17:11 +00:00
frame.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
gdb_machdep.h Fix GDB machdep code for PPC/PPC64 2019-10-31 12:03:47 +00:00
hid.h On POWER9 clear the HID0_RADIX before enabling the page tables 2018-05-26 04:33:19 +00:00
ieee.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ieeefp.h Fix floating point exception definitions for powerpcspe 2018-07-24 22:04:56 +00:00
in_cksum.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
intr_machdep.h Add NUMA support to powerpc 2019-04-13 04:03:18 +00:00
kdb.h Expose stopped cpu contexts to ddb on PowerPC 2018-06-25 22:05:33 +00:00
limits.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
machdep.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
md_var.h [PPC64] Initial kernel minidump implementation 2019-10-14 13:04:04 +00:00
memdev.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
metadata.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
minidump.h [PPC64] Initial kernel minidump implementation 2019-10-14 13:04:04 +00:00
mmuvar.h powerpc: Remove now-obsolete P9H MMU name 2019-03-29 02:11:48 +00:00
ofw_machdep.h Add NUMA support to powerpc 2019-04-13 04:03:18 +00:00
openpicreg.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
openpicvar.h powerpc/mpc85xx: Add MSI support for Freescale PowerPC SoCs 2019-11-08 03:36:19 +00:00
param.h powerpc: Link Book-E kernels at the same address as AIM kernels 2019-08-20 01:26:02 +00:00
pcb.h powerpc: Add support for additional FSCR-managed facilities 2019-04-27 22:30:22 +00:00
pcpu.h powerpc/booke: Make the TLB save area and mask match 2019-11-08 03:45:13 +00:00
pcpu_aux.h Centralize __pcpu definitions. 2019-08-29 07:25:27 +00:00
pio.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
platform.h Add NUMA support to powerpc 2019-04-13 04:03:18 +00:00
platformvar.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
pmap.h powerpc/pmap: NUMA-ize vm_page_array on powerpc 2019-12-07 03:34:03 +00:00
pmc_mdep.h Implement hwpmc(4) for Freescale e500 core. 2015-04-18 21:39:17 +00:00
proc.h Fix style and clarify comment 2019-08-12 19:44:57 +00:00
procctl.h amd64 KPTI: add control from procctl(2). 2019-03-16 11:44:33 +00:00
profile.h SPDX: Consider code from Carnegie-Mellon University. 2017-11-30 15:48:35 +00:00
psl.h Change the default MSR values used when starting userland and kernel 2018-02-01 05:31:24 +00:00
pte.h powerpc: Merge all pmap struct definitions 2019-05-04 02:34:28 +00:00
ptrace.h Added ptrace support for reading/writing powerpc VSX registers 2018-06-02 19:17:11 +00:00
reg.h Use uintptr_t instead of register_t * for the stack base. 2019-12-03 23:17:54 +00:00
reloc.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
resource.h powerpc/booke: Simplify the MPC85XX PCIe root complex driver 2019-10-24 03:51:33 +00:00
rtas.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
runq.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
sc_machdep.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
setjmp.h Use setjmp() instead of the identical-except-for-having-a-wrong-prototype 2016-01-10 16:42:14 +00:00
sigframe.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
signal.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
slb.h powerpc/pmap: Move the SLB spill handlers to a better place 2019-06-08 03:07:08 +00:00
smp.h Add NUMA support to powerpc 2019-04-13 04:03:18 +00:00
spr.h Add support for building Book-E kernels with clang/lld. 2019-11-02 21:15:56 +00:00
sr.h Move the powerpc64 direct map base address from zero to high memory. This 2018-03-07 17:08:07 +00:00
stack.h
stdarg.h Use standard pattern for stdargs.h 2018-02-12 14:48:05 +00:00
sysarch.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
tlb.h powerpc/booke: Turn tlb*_print_tlbentries() into 'show tlb*' DDB commands 2018-10-22 00:21:27 +00:00
trap.h powerpc/booke: Handle misaligned floating point loads/stores as on AIM 2019-06-26 01:14:39 +00:00
ucontext.h sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
vdso.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
vm.h sys/powerpc: further adoption of SPDX licensing ID tags. 2017-11-27 15:09:59 +00:00
vmparam.h powerpc/pmap: NUMA-ize vm_page_array on powerpc 2019-12-07 03:34:03 +00:00