freebsd-src/lib/libkvm
Konstantin Belousov 9a52756044 i386: Merge PAE and non-PAE pmaps into same kernel.
Effectively all i386 kernels now have two pmaps compiled in: one
managing PAE pagetables, and another non-PAE. The implementation is
selected at cold time depending on the CPU features. The vm_paddr_t is
always 64bit now. As result, nx bit can be used on all capable CPUs.

Option PAE only affects the bus_addr_t: it is still 32bit for non-PAE
configs, for drivers compatibility. Kernel layout, esp. max kernel
address, low memory PDEs and max user address (same as trampoline
start) are now same for PAE and for non-PAE regardless of the type of
page tables used.

Non-PAE kernel (when using PAE pagetables) can handle physical memory
up to 24G now, larger memory requires re-tuning the KVA consumers and
instead the code caps the maximum at 24G. Unfortunately, a lot of
drivers do not use busdma(9) properly so by default even 4G barrier is
not easy. There are two tunables added: hw.above4g_allow and
hw.above24g_allow, the first one is kept enabled for now to evaluate
the status on HEAD, second is only for dev use.

i386 now creates three freelists if there is any memory above 4G, to
allow proper bounce pages allocation. Also, VM_KMEM_SIZE_SCALE changed
from 3 to 1.

The PAE_TABLES kernel config option is retired.

In collaboarion with: pho
Discussed with:	emaste
Reviewed by:	markj
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential revision:	https://reviews.freebsd.org/D18894
2019-01-30 02:07:13 +00:00
..
tests DIRDEPS_BUILD: Connect new directories. 2017-10-31 00:04:07 +00:00
kvm.3 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
kvm.c Use __SCCSID for SCCS IDs in libkvm sources. 2018-05-22 15:52:22 +00:00
kvm.h Make struct xinpcb and friends word-size independent. 2018-07-05 13:13:48 +00:00
kvm_aarch64.h libkvm: fix build failures 2017-11-12 01:36:48 +00:00
kvm_amd64.c Use __SCCSID for SCCS IDs in libkvm sources. 2018-05-22 15:52:22 +00:00
kvm_amd64.h libkvm: fix build failures 2017-11-12 01:36:48 +00:00
kvm_arm.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
kvm_arm.h libkvm: add kvm_walk_pages API. 2017-11-11 23:30:58 +00:00
kvm_cptime.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
kvm_getcptime.3
kvm_geterr.3 kvm_geterr: handle kd == NULL in a deterministic/graceful manner 2017-03-21 19:02:17 +00:00
kvm_getloadavg.3 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
kvm_getloadavg.c Use __SCCSID for SCCS IDs in libkvm sources. 2018-05-22 15:52:22 +00:00
kvm_getpcpu.3 Tweak r315363 slightly 2017-03-16 03:24:15 +00:00
kvm_getprocs.3 Remove a commented out line before kvm_getprocs(3) 2017-03-19 23:04:58 +00:00
kvm_getswapinfo.3 libkvm - extend a bit the swap statistics field. 2017-01-02 15:12:11 +00:00
kvm_getswapinfo.c Reduce <sys/queue.h> pollution. 2018-05-11 00:01:43 +00:00
kvm_i386.c Use __SCCSID for SCCS IDs in libkvm sources. 2018-05-22 15:52:22 +00:00
kvm_i386.h i386: Merge PAE and non-PAE pmaps into same kernel. 2019-01-30 02:07:13 +00:00
kvm_minidump_aarch64.c libkvm: fix build failures 2017-11-12 01:36:48 +00:00
kvm_minidump_amd64.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
kvm_minidump_arm.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
kvm_minidump_i386.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
kvm_minidump_mips.c Make cache coherency attributes definitions available in machine/vm.h on MIPS. 2018-08-01 18:35:17 +00:00
kvm_mips.h libkvm: add kvm_walk_pages API. 2017-11-11 23:30:58 +00:00
kvm_native.3 Capitalize .Dt macro argument 2017-03-16 03:18:06 +00:00
kvm_nlist.3 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
kvm_open.3 Handle kd == NULL gracefully with kvm_close(3) 2017-03-20 18:28:22 +00:00
kvm_pcpu.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
kvm_powerpc.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
kvm_powerpc64.c General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
kvm_private.c libkvm: fix build failures 2017-11-12 01:36:48 +00:00
kvm_private.h General further adoption of SPDX licensing ID tags. 2017-11-20 19:49:47 +00:00
kvm_proc.c Use __SCCSID for SCCS IDs in libkvm sources. 2018-05-22 15:52:22 +00:00
kvm_read.3 Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
kvm_sparc64.c Use __SCCSID for SCCS IDs in libkvm sources. 2018-05-22 15:52:22 +00:00
kvm_sparc64.h Add support to libkvm for reading vmcores from other architectures. 2015-11-27 18:58:26 +00:00
kvm_vnet.c lib: further adoption of SPDX licensing ID tags. 2017-11-26 02:00:33 +00:00
Makefile Use __SCCSID for SCCS IDs in libkvm sources. 2018-05-22 15:52:22 +00:00
Makefile.depend DIRDEPS_BUILD: Update dependencies. 2017-10-31 00:07:04 +00:00