freebsd-dev/sys/conf
Grzegorz Bernacki 4442f74b81 Port the new PV entry allocator from amd64/i386/mips to armv6/v7.
PV entries are now roughly half the size.
Instead of using a shared UMA zone for 28 byte pv entries
(two 8-byte tailq nodes, a 4 byte pointer, a 4 byte address and 4 byte
flags), we allocate a page at a time per process.
This provides 252 pv entries per process (actually, per pmap address space)
and eliminates one of the 8-byte tailq entries since we now can track
per-process pv entries implicitly.
The pointer to the pmap can be eliminated by doing address arithmetic to
find the metadata on the page headers to find a single pointer shared by
all 252 entries. There is an 8-int bitmap for the freelist of those 252
entries.
When in serious low memory condition, allocation of another pv_chunk is
possible by freeing some pages in pmap_pv_reclaim().

Added pv_entry/pv_chunk related statistics to pmap.
pv_entry/pv_chunk statistics can be accessed via sysctl vm.pmap.

Ported PTE freelist of KVA allocation and maintenance from i386.
Using an idea from Stephan Uphoff, use the empty pte's that correspond
to the unused kva in the pv memory block to thread a freelist through.
This allows us to free pages that used to be used for pv entry chunks
since we can now track holes in the kva memory block.

As both ARM pmap.c and pmap-v6.c use the same header and pv_entry, pmap and
md_page structures are different, it was needed to separate code designed
for ARMv6/7 from the one for other ARMs.

Submitted by:	Zbigniew Bodek <zbb@semihalf.com>
Reviewed by:	alc
Sponsored by:	The FreeBSD Foundation, Semihalf
2013-05-14 09:47:58 +00:00
..
files - Add a new general purpose path-compressed radix trie which can be used 2013-05-12 04:05:01 +00:00
files.amd64 Add a new driver to support the Intel Non-Transparent Bridge(NTB). 2013-04-29 22:48:53 +00:00
files.arm Add __aeabi_memset to libkern, implemented using memset, as clang may 2013-03-16 23:11:55 +00:00
files.i386 Unbreak tinderbox build after r249420. 2013-04-12 23:10:56 +00:00
files.ia64 Hoist the MI compat_freebsd32 files up into files from files.*. 2012-10-25 04:30:48 +00:00
files.mips Merge Perforce changeset 219925 to head: 2013-01-12 15:58:20 +00:00
files.pc98 Disconnect non-MPSAFE SMBFS from the build in preparation for dropping 2012-10-18 12:04:56 +00:00
files.powerpc MFP4 changes 222065 and 222068: 2013-04-30 18:33:29 +00:00
files.sparc64 Remove all legacy ATA code parts, not used since options ATA_CAM enabled in 2013-04-04 07:12:24 +00:00
kern.mk Introduce a new make variable COMPILER_TYPE that specifies what 2012-09-13 16:00:46 +00:00
kern.post.mk Remove the links: target. It too is homelessly outdated since it 2012-10-25 04:55:04 +00:00
kern.pre.mk Add the AR9300 HAL into the kernel and module builds. 2013-05-02 07:05:34 +00:00
kmod_syms.awk
kmod.mk Split sdhci driver in two parts: sdhci and sdhci_pci. 2012-10-16 01:10:43 +00:00
ldscript.amd64 The new binutils has correctly redefined MAXPAGESIZE on amd64 as 0x200000 2011-03-28 06:35:17 +00:00
ldscript.arm Correctly align the unwind tables. Without this clang may incorrectly align 2013-03-10 00:47:19 +00:00
ldscript.i386 Step 2: sync sys/conf/ldscript.i386 with the binutils 2.17.50 version, 2010-11-05 19:40:27 +00:00
ldscript.ia64 Stop linking against a direct-mapped virtual address and instead 2011-04-30 20:49:00 +00:00
ldscript.mips Let the linker pick the right output format automatically 2010-11-13 18:38:35 +00:00
ldscript.mips.cfe Remove commented out _DYNAMIC sections. 2011-01-20 19:20:23 +00:00
ldscript.mips.mips64 Remove commented out _DYNAMIC sections. 2011-01-20 19:20:23 +00:00
ldscript.mips.octeon1 In fact, we don't need any of these __DYNAMIC. it is a.out leftover and commented out. 2011-01-20 19:24:50 +00:00
ldscript.powerpc In fact, we don't need any of these __DYNAMIC. it is a.out leftover and commented out. 2011-01-20 19:24:50 +00:00
ldscript.powerpc64 Add the .opd section, this is helps booting a profiled kernel. 2012-01-20 18:52:31 +00:00
ldscript.sparc64 Merge binutils 2.17.50 to head. This brings a number of improvements to 2011-02-18 20:54:12 +00:00
Makefile.amd64 Remove duplication and centralize testing of various config(8)ed features. 2012-09-12 14:19:40 +00:00
Makefile.arm The -mno-apcs-frame argument is unavaliable on clang, also ignore it there. 2013-03-17 00:56:17 +00:00
Makefile.i386 Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to 2012-02-28 18:30:18 +00:00
Makefile.ia64 Ooops. Bump the version to 600009, not 600008. 2010-05-02 06:23:15 +00:00
Makefile.mips Fill out fake preload structure to let userland tools like pmc(3) know 2012-03-15 05:29:51 +00:00
Makefile.pc98 MFi386: r232263 2012-11-10 14:56:35 +00:00
Makefile.powerpc Remove duplication and centralize testing of various config(8)ed features. 2012-09-12 14:19:40 +00:00
Makefile.sparc64
makeLINT.mk Generate a LINT for powerpc and for powerpc64. 2013-04-11 22:18:20 +00:00
makeLINT.sed Match the files directive and all the ways to add or subtract options 2011-10-04 17:11:38 +00:00
newvers.sh print compiler version in the kernel banner 2013-02-02 11:58:35 +00:00
NOTES Rename VM_NDOMAIN into MAXMEMDOM and move it into machine/param.h in 2013-05-07 22:46:24 +00:00
options Add option WITNESS_NO_VNODE to suppress printing LORs between VNODE 2013-05-09 16:28:18 +00:00
options.amd64 Rename the IVY_RNG option to RDRAND_RNG. 2012-09-13 10:12:16 +00:00
options.arm Port the new PV entry allocator from amd64/i386/mips to armv6/v7. 2013-05-14 09:47:58 +00:00
options.i386 Rename the IVY_RNG option to RDRAND_RNG. 2012-09-13 10:12:16 +00:00
options.ia64 Port the new PV entry allocator from amd64/i386. This allocator has two 2012-10-26 03:02:39 +00:00
options.mips Add an option for the GE FES based packet engines. Its board IDs 2013-04-23 09:40:42 +00:00
options.pc98 MFC r199852, r202387, r202441, r202534: 2010-03-29 15:39:17 +00:00
options.powerpc Initial support for running FreeBSD on the Nintendo Wii. We're able to 2012-08-21 06:31:26 +00:00
options.sparc64 - While Netra X1 generally show no ill effects when registering a power 2013-03-02 00:37:31 +00:00
systags.sh
WITHOUT_SOURCELESS Move WITHOUT_SOURCELESS_* files to sys/conf/ in order to avoid "universe" 2012-02-12 14:55:27 +00:00
WITHOUT_SOURCELESS_HOST Fix a typo. 2012-02-12 19:29:34 +00:00
WITHOUT_SOURCELESS_UCODE Move WITHOUT_SOURCELESS_* files to sys/conf/ in order to avoid "universe" 2012-02-12 14:55:27 +00:00