WSL2-Linux-Kernel/Documentation
Mel Gorman 6b74ab97bc mm: add a basic debugging framework for memory initialisation
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>
2008-07-24 10:47:13 -07:00
..
ABI sysfs: add /sys/dev/{char,block} to lookup sysfs path by major:minor 2008-07-21 21:54:40 -07:00
DocBook uio-howto.tmpl: use unique output names 2008-07-21 21:54:58 -07:00
PCI PCI: doc/pci: create Documentation/PCI/ and move files into it 2008-04-20 21:46:51 -07:00
RCU rcu: make rcutorture even more vicious: invoke RCU readers from irq handlers (timers) 2008-06-26 09:24:33 +02:00
accounting Update taskstats-struct document for scaled time accounting 2008-07-04 10:40:06 -07:00
acpi ACPI: Remove ACPI_CUSTOM_DSDT_INITRD option 2008-03-15 11:58:04 -07:00
aoe aoe: user can ask driver to forget previously detected devices 2008-02-08 09:22:31 -08:00
arm [MTD] [NAND] S3C2410 Large page NAND support 2008-04-22 21:39:16 +01:00
auxdisplay Miguel Ojeda has moved 2008-07-04 10:40:05 -07:00
blackfin Blackfin arch: kgdb specific code 2007-06-29 16:35:17 +08:00
block block: Data integrity infrastructure documentation 2008-07-03 13:21:13 +02:00
cdrom cdrom: make unregister_cdrom() return void 2008-04-21 09:50:08 +02:00
connector some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
console Typo: fro -> from 2007-07-19 10:04:47 -07:00
controllers devcgroup: fix odd behaviour when writing 'a' to devices.allow 2008-07-04 10:40:10 -07:00
cpu-freq [CPUFREQ] Remove documentation of removed ondemand tunable. 2008-05-20 22:13:09 -04:00
cpuidle cpuidle: Add Documentation 2008-02-14 00:16:13 -05:00
cris
crypto [CRYPTO] doc: Update api-intro.txt 2008-01-11 08:16:14 +11:00
device-mapper dm crypt: add documentation 2008-04-25 13:27:03 +01:00
driver-model Driver core: Update some prototypes in platform.txt 2008-02-02 15:14:49 -08:00
dvb V4L/DVB (7077): bt878: remove handcrafted PCI subsystem ID check 2008-01-25 19:05:22 -02:00
early-userspace Documentation: Remove last references to BitKeeper. 2008-04-21 22:19:05 +00:00
fault-injection fault-injection: fix example scripts in documentation 2007-07-16 09:05:45 -07:00
fb fbdev: intelfb: add support for the Intel Integrated Graphics Controller 965G/965GM 2008-04-28 08:58:41 -07:00
filesystems Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2008-07-22 13:17:15 -07:00
firmware_class firmware_sample_driver.c: fix coding style 2008-04-21 22:23:30 +00:00
frv move frv docs one level up 2008-02-03 15:54:28 +02:00
hwmon hwmon: Update the sysfs interface documentation 2008-06-19 06:50:31 -04:00
i2c i2c: Convert the max6875 driver to a new-style i2c driver 2008-07-16 19:30:07 +02:00
i2o documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
ia64 [IA64] pvops: documentation on ia64/pv_ops 2008-05-27 15:16:47 -07:00
ide gayle: add "doubler" parameter 2008-04-27 15:38:30 +02:00
infiniband IB/umad: Add P_Key index support 2007-10-09 19:59:15 -07:00
input Input: remove CVS keywords 2008-05-20 12:17:39 -04:00
ioctl IDE: Report errors during drive reset back to user space 2008-07-16 20:33:48 +02:00
isdn spelling fixes: Documentation/ 2007-10-20 01:30:25 +02:00
ja_JP Fix broken utf-8 encodings in ja_JP translation of stable_kernel_rules.txt 2008-02-21 15:27:06 -08:00
kbuild kconfig-language.txt: remove bogus hint 2008-05-04 21:05:56 +02:00
kdump x86: fix documentation bug about relocatability 2008-07-08 13:16:18 +02:00
ko_KR HOWTO: update misspelling and word incorrected 2007-12-17 10:33:19 -08:00
laptops acer-wmi: Remove LED colour comment from documentation 2008-07-16 23:27:02 +02:00
lguest lguest: notify on empty 2008-05-30 15:09:46 +10:00
m68k [SCSI] 53c7xx: fix removal fallout 2008-01-11 18:22:30 -06:00
make Documentation/make/headers_install.txt 2007-10-17 08:43:05 -07:00
mips au1xxx-ide: fix MWDMA support 2008-04-26 22:25:22 +02:00
mn10300 mn10300: add the MN10300/AM33 architecture to the kernel 2008-02-08 09:22:30 -08:00
namespaces The namespaces compatibility list doc 2007-11-29 09:24:53 -08:00
netlabel Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
networking e1000: delete non NAPI code from the driver 2008-07-22 19:39:11 -04:00
parisc
pcmcia pcmcia: replace kio_addr_t with unsigned int everywhere 2008-02-05 09:44:08 -08:00
power PM: Handle device registrations during suspend/resume 2008-04-19 19:10:24 -07:00
powerpc Merge commit 'origin/master' 2008-07-22 17:12:37 +10:00
prctl generic, x86: add tests for prctl PR_GET_TSC and PR_SET_TSC 2008-04-19 19:19:55 +02:00
s390 [S390] cio: Remove cio_msg kernel parameter. 2008-05-07 09:23:01 +02:00
scheduler sched: fix typo in Documentation/scheduler/sched-rt-group.txt 2008-06-18 12:34:15 +02:00
scsi [SCSI] aacraid: Add Power Management cards to documentation 2008-06-05 09:23:44 -05:00
serial Subject: [PATCH 1/2] serial: Add flush_buffer() operation to uart_ops 2008-07-20 17:12:34 -07:00
sh sh: SH7722 clock framework support. 2007-05-07 02:11:56 +00:00
sound remove mention of CONFIG_KMOD from documentation 2008-07-22 19:24:29 +10:00
sparc [SPARC/64]: Prepare to remove of_platform_driver name. 2007-10-13 21:53:11 -07:00
spi documentation: move spidev_fdx example to its own source file 2008-04-28 08:58:31 -07:00
sysctl Documentation: sysctl/kernel.txt: fix documentation reference 2008-02-13 16:21:20 -08:00
telephony remove mention of CONFIG_KMOD from documentation 2008-07-22 19:24:29 +10:00
thermal thermal: update the documentation 2008-04-29 02:49:47 -04:00
timers Documentation: move timer related documentation to a single place 2008-04-17 12:22:31 +02:00
tracers doc: update mmiotrace doc to current status 2008-05-24 11:27:22 +02:00
uml
usb USB: use reset_resume when normal resume fails 2008-07-21 15:16:48 -07:00
video4linux remove mention of CONFIG_KMOD from documentation 2008-07-22 19:24:29 +10:00
vm Christoph has moved 2008-07-04 10:40:04 -07:00
w1 w1-gpio: add GPIO w1 bus master driver 2008-02-06 10:41:15 -08:00
watchdog [WATCHDOG] clarify watchdog operation in documentation 2008-01-18 21:23:05 +00:00
x86 x86 boot: only pick up additional EFI memmap if add_efi_memmap flag 2008-07-08 13:10:41 +02:00
zh_CN Chinese: add translation of Codingstyle 2008-01-24 20:40:04 -08:00
00-INDEX documentation: remove smart-config.txt 2008-04-25 18:24:20 -07:00
BUG-HUNTING Documentation: add hint about call traces & module symbols to BUG-HUNTING 2008-02-06 10:41:09 -08:00
Changes [x86 setup] Document grub < 0.93 as broken 2007-08-02 13:50:43 -04:00
CodingStyle CodingStyle: relax the 80-cole rule 2007-10-17 08:42:55 -07:00
DMA-API.txt doc: fix DMA-API function parameters 2008-04-29 08:06:12 -07:00
DMA-ISA-LPC.txt
DMA-attributes.txt powerpc/cell: Add DMA_ATTR_WEAK_ORDERING dma attribute and use in Cell IOMMU code 2008-07-22 10:39:36 +10:00
DMA-mapping.txt doc: replace yet another dev with pdev for consistency in DMA-mapping.txt 2008-04-29 08:55:01 -07:00
HOWTO HOWTO: change email addresses of James in HOWTO 2008-07-21 21:54:59 -07:00
IO-mapping.txt
IPMI.txt IPMI: new NMI handling 2007-10-18 14:37:32 -07:00
IRQ-affinity.txt genirq: Expose default irq affinity mask (take 3) 2008-06-05 15:18:30 +02:00
IRQ.txt
Intel-IOMMU.txt Intel IOMMU: Iommu Gfx workaround 2007-10-22 08:13:19 -07:00
MSI-HOWTO.txt PCI: Remove no longer correct documentation regarding MSI vector assignment 2007-10-12 15:03:16 -07:00
ManagementStyle Fix this Paul Simon song's name 2007-09-13 08:11:10 -07:00
README.DAC960
README.cycladesZ
SAK.txt
SM501.txt Tweak Documentation/SM501.txt 2007-10-17 08:43:06 -07:00
SecurityBugs
Smack.txt Smack: Simplified Mandatory Access Control Kernel 2008-02-05 09:44:20 -08:00
SubmitChecklist Documentation: prune redundant SubmitChecklist items 2008-02-13 16:21:18 -08:00
SubmittingDrivers Update 2.4 maintainer in document 2007-10-20 02:02:12 +02:00
SubmittingPatches doc: add suggestions about good practises for maintainers 2008-06-05 14:25:24 -07:00
VGA-softcursor.txt
applying-patches.txt
atomic_ops.txt documentation: atomic_add_unless() doesn't imply mb() on failure 2008-02-23 17:52:36 -08:00
basic_profiling.txt
binfmt_misc.txt documentation: convert the Documentation directory to UTF-8 2007-05-09 08:58:19 +02:00
braille-console.txt Basic braille screen reader support 2008-04-30 08:29:52 -07:00
cachetlb.txt remove unused flush_tlb_pgtables 2007-10-19 11:53:34 -07:00
cciss.txt cciss: add new hardware support 2008-06-12 18:05:40 -07:00
cgroups.txt cgroups: document the effect of attaching PID 0 to a cgroup 2008-07-04 10:40:08 -07:00
cli-sti-removal.txt DOCUMENTATION: Use newer DEFINE_SPINLOCK macro in docs. 2008-04-21 22:44:50 +00:00
computone.txt
cpqarray.txt
cpu-hotplug.txt [S390] Get rid of additional_cpus kernel parameter. 2008-01-26 14:11:15 +01:00
cpu-load.txt [PATCH] Documentation: CPU load calculation description 2007-03-01 14:53:39 -08:00
cpusets.txt doc: document the relax_domain_level kernel boot argument 2008-07-04 10:40:10 -07:00
cputopology.txt cpu topology: always define CPU topology information 2008-06-13 10:09:46 +02:00
dcdbas.txt
debugging-modules.txt Documentation: Clarify when module debugging actually works. 2008-02-03 15:27:38 +02:00
debugging-via-ohci1394.txt firewire: fw-ohci: add option for remote debugging 2008-04-18 17:55:33 +02:00
dell_rbu.txt
devices.txt typo fixes 2007-10-20 01:34:40 +02:00
digiepca.txt
dontdiff dontdiff: ignore timeconst.h 2008-04-28 22:51:56 +02:00
edac.txt move edac.txt two levels up 2008-02-07 08:42:17 -08:00
eisa.txt
email-clients.txt email-clients.txt: sylpheed is OK at IMAP 2008-02-07 08:42:17 -08:00
exception.txt
feature-removal-schedule.txt netfilter: accounting rework: ct_extend + 64bit counters (v4) 2008-07-21 10:10:58 -07:00
floppy.txt
ftrace.txt ftrace: ftrace.txt updates 2008-07-15 18:57:20 -07:00
gpio.txt gpio: define gpio_is_valid() 2008-04-28 08:58:34 -07:00
hayes-esp.txt
highuid.txt [SPARC]: Remove SunOS and Solaris binary support. 2008-04-21 15:10:15 -07:00
hpet.txt hpet.txt: broken link fix 2007-07-31 15:39:42 -07:00
hw_random.txt hw_random doc updates 2008-03-24 19:22:19 -07:00
initrd.txt use the newc archive format as requested by initramfs 2008-02-03 14:54:41 +02:00
io_ordering.txt
ioctl-number.txt [S390] cio: Add chsc subchannel driver. 2008-07-14 10:02:12 +02:00
iostats.txt Enhanced partition statistics: documentation update 2008-02-08 12:42:11 +01:00
irqflags-tracing.txt
isapnp.txt
java.txt Documentation/java.txt: typo and grammar fixes 2007-10-20 02:37:21 +02:00
kernel-doc-nano-HOWTO.txt doc: document the kernel-doc conventions for kernel hackers 2008-06-06 11:29:12 -07:00
kernel-docs.txt doc: update to URL and status of kernel-docs.txt entry 2008-06-06 11:29:10 -07:00
kernel-parameters.txt mm: add a basic debugging framework for memory initialisation 2008-07-24 10:47:13 -07:00
keys-request-key.txt keys: allow the callout data to be passed as a blob rather than a string 2008-04-29 08:06:16 -07:00
keys.txt keys: make the keyring quotas controllable through /proc/sys 2008-04-29 08:06:17 -07:00
kobject.txt kobject: Documentation Spelling Patch 2008-06-11 16:50:40 -07:00
kprobes.txt powerpc/booke: Add kprobes support for booke style processors 2008-06-26 03:35:46 -05:00
kref.txt docs: convert kref semaphore to mutex 2008-02-06 10:41:09 -08:00
ldm.txt LDM: Fix for Windows Vista dynamic disks 2007-05-21 09:58:40 -07:00
leds-class.txt leds: disable triggers on brightness set 2008-04-24 23:34:18 +01:00
local_ops.txt Revert "local_t Documentation update" 2008-01-17 15:38:59 -08:00
lockdep-design.txt
lockstat.txt lockstat: documentation 2007-10-07 16:28:43 -07:00
logo.gif
logo.txt
magic-number.txt [SPARC]: Remove SunOS and Solaris binary support. 2008-04-21 15:10:15 -07:00
markers.txt Linux Kernel Markers: document format string 2007-11-14 18:45:40 -08:00
mca.txt The ps2esdi driver was marked as BROKEN more than two years ago due to being 2008-03-17 09:03:05 +01:00
md.txt md: Tidy up rdev_size_store a bit: 2008-07-21 14:22:18 +10:00
memory-barriers.txt read_barrier_depends arch fixlets 2008-05-14 10:05:18 -07:00
memory-hotplug.txt memory hotplug: document the memory hotplug notifier 2007-10-22 08:13:17 -07:00
memory.txt
mono.txt
moxa-smartio
mtrr.txt
mutex-design.txt Documentation: Add nested versions of mutex locks to docs 2007-10-20 00:15:26 +02:00
nbd.txt
nmi_watchdog.txt x86: nmi_watchdog - documentation fix - v2 2008-07-08 13:16:10 +02:00
nommu-mmap.txt
numastat.txt
oops-tracing.txt Taint kernel after WARN_ON(condition) 2008-04-29 08:05:59 -07:00
paride.txt
parport-lowlevel.txt plip: fix parport_register_device name parameter 2007-11-26 19:39:01 -08:00
parport.txt
pi-futex.txt
pnp.txt Documentation: Replace obsolete "driverfs" with "sysfs". 2008-01-24 20:40:04 -08:00
preempt-locking.txt
prio_tree.txt
ramdisk.txt Remove final traces of long-deprecated "ramdisk" kernel parm 2007-10-17 08:42:56 -07:00
rbtree.txt [PATCH] Documentation/rbtree.txt 2007-02-11 10:51:35 -08:00
rfkill.txt rfkill: improve documentation for kernel drivers 2008-06-26 14:21:22 -04:00
riscom8.txt
robust-futex-ABI.txt
robust-futexes.txt
rocket.txt
rt-mutex-design.txt
rt-mutex.txt
rtc.txt rtc: cleanup example code 2008-02-06 10:41:14 -08:00
serial-console.txt
sgi-ioc4.txt
sgi-visws.txt
sparse.txt [PATCH] update 'getting sparse' info. 2007-03-08 16:47:58 -08:00
specialix.txt specialix: Code cleanups 2008-07-22 13:03:27 -07:00
spinlocks.txt Add additional examples in Documentation/spinlocks.txt 2008-04-11 13:21:14 -06:00
stable_api_nonsense.txt stable_api_nonsense.txt: Disambiguate the use of "this" by using "that" to refer to the syscall interface 2007-07-30 14:25:12 -07:00
stable_kernel_rules.txt stable_kernel_rules: fix must already be in mainline 2008-02-21 15:27:07 -08:00
stallion.txt
svga.txt
sx.txt
sysfs-rules.txt sysfs-rules.txt: reword API stability statement 2008-07-21 21:54:59 -07:00
sysrq.txt sysrq: add show-backtrace-on-all-cpus function 2008-04-29 08:06:03 -07:00
tty.txt termios: document callback more clearly 2007-11-29 09:24:52 -08:00
unaligned-memory-access.txt Fix typos in Documentation/unaligned-memory-access.txt 2008-04-02 15:28:19 -07:00
unicode.txt
unshare.txt
video-output.txt
volatile-considered-harmful.txt "volatile considered harmful" 2007-06-24 08:59:11 -07:00
voyager.txt
zorro.txt

README.cycladesZ

The Cyclades-Z must have firmware loaded onto the card before it will
operate.  This operation should be performed during system startup,

The firmware, loader program and the latest device driver code are
available from Cyclades at
    ftp://ftp.cyclades.com/pub/cyclades/cyclades-z/linux/