6b74ab97bc
Boot initialisation is very complex, with significant numbers of architecture-specific routines, hooks and code ordering. While significant amounts of the initialisation is architecture-independent, it trusts the data received from the architecture layer. This is a mistake, and has resulted in a number of difficult-to-diagnose bugs. This patchset adds some validation and tracing to memory initialisation. It also introduces a few basic defensive measures. The validation code can be explicitly disabled for embedded systems. This patch: Add additional debugging and verification code for memory initialisation. Once enabled, the verification checks are always run and when required additional debugging information may be outputted via a mminit_loglevel= command-line parameter. The verification code is placed in a new file mm/mm_init.c. Ideally other mm initialisation code will be moved here over time. Signed-off-by: Mel Gorman <mel@csn.ul.ie> Cc: Christoph Lameter <cl@linux-foundation.org> Cc: Andy Whitcroft <apw@shadowen.org> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
38 lines
1.3 KiB
Makefile
38 lines
1.3 KiB
Makefile
#
|
|
# Makefile for the linux memory manager.
|
|
#
|
|
|
|
mmu-y := nommu.o
|
|
mmu-$(CONFIG_MMU) := fremap.o highmem.o madvise.o memory.o mincore.o \
|
|
mlock.o mmap.o mprotect.o mremap.o msync.o rmap.o \
|
|
vmalloc.o
|
|
|
|
obj-y := bootmem.o filemap.o mempool.o oom_kill.o fadvise.o \
|
|
maccess.o page_alloc.o page-writeback.o pdflush.o \
|
|
readahead.o swap.o truncate.o vmscan.o \
|
|
prio_tree.o util.o mmzone.o vmstat.o backing-dev.o \
|
|
page_isolation.o $(mmu-y)
|
|
|
|
obj-$(CONFIG_PROC_PAGE_MONITOR) += pagewalk.o
|
|
obj-$(CONFIG_BOUNCE) += bounce.o
|
|
obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o thrash.o
|
|
obj-$(CONFIG_HAS_DMA) += dmapool.o
|
|
obj-$(CONFIG_HUGETLBFS) += hugetlb.o
|
|
obj-$(CONFIG_NUMA) += mempolicy.o
|
|
obj-$(CONFIG_SPARSEMEM) += sparse.o
|
|
obj-$(CONFIG_SPARSEMEM_VMEMMAP) += sparse-vmemmap.o
|
|
obj-$(CONFIG_SHMEM) += shmem.o
|
|
obj-$(CONFIG_TMPFS_POSIX_ACL) += shmem_acl.o
|
|
obj-$(CONFIG_TINY_SHMEM) += tiny-shmem.o
|
|
obj-$(CONFIG_SLOB) += slob.o
|
|
obj-$(CONFIG_SLAB) += slab.o
|
|
obj-$(CONFIG_DEBUG_MEMORY_INIT) += mm_init.o
|
|
obj-$(CONFIG_SLUB) += slub.o
|
|
obj-$(CONFIG_MEMORY_HOTPLUG) += memory_hotplug.o
|
|
obj-$(CONFIG_FS_XIP) += filemap_xip.o
|
|
obj-$(CONFIG_MIGRATION) += migrate.o
|
|
obj-$(CONFIG_SMP) += allocpercpu.o
|
|
obj-$(CONFIG_QUICKLIST) += quicklist.o
|
|
obj-$(CONFIG_CGROUP_MEM_RES_CTLR) += memcontrol.o
|
|
|