From 3355c1a2a60cd660bbe12f12e7f0942b18106c6e Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Fri, 16 Mar 2012 10:30:12 +0000 Subject: KEXEC: Allocate crash structures in low memory On 64bit Xen with 32bit dom0 and crashkernel, xmalloc'ing items such as the CPU crash notes will go into the xenheap, which tends to be in upper memory. This causes problems on machines with more than 64GB (or 4GB if no PAE support) of ram as the crashkernel physically cant access the crash notes. The solution is to force Xen to allocate certain structures in lower memory. This is achieved by introducing two new command line parameters; low_crashinfo and crashinfo_maxaddr. Because of the potential impact on 32bit PV guests, and that this problem does not exist for 64bit dom0 on 64bit Xen, this new functionality defaults to the codebase's previous behavior, requiring the user to explicitly add extra command line parameters to change the behavior. This patch consists of 3 logically distinct but closely related changes. 1) Add the two new command line parameters. 2) Change crash note allocation to use lower memory when instructed. 3) Change the conring buffer to use lower memory when instructed. There result is that the crash notes and console ring will be placed in lower memory so useful information can be recovered in the case of a crash. Changes since v1: - Patch xen-command-line.markdown to document new options Signed-off-by: Andrew Cooper Committed-by: Keir Fraser --- docs/misc/xen-command-line.markdown | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'docs/misc/xen-command-line.markdown') diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown index 61f5328bdf..beb84625fa 100644 --- a/docs/misc/xen-command-line.markdown +++ b/docs/misc/xen-command-line.markdown @@ -188,6 +188,13 @@ The optional trailing `x` indicates that Xen should not automatically switch the ### cpuid\_mask\_xsave\_eax ### cpuidle ### cpuinfo +### crashinfo_maxaddr +> `= ` + +> Default: `4G` + +Specify the maximum address to allocate certain strucutres, if used in combination with the `low_crashinfo` command line option. + ### crashkernel ### credit2\_balance\_over ### credit2\_balance\_under @@ -273,6 +280,13 @@ Set the logging level for Xen. Any log message with equal more more importance The optional `` options instructs which severities should be rate limited. +### low\_crashinfo +> `= none | min | all` + +> Default: `none` if not specified at all, or to `min` if `low\_crashinfo` is present without qualification. + +This option is only useful for hosts with a 32bit dom0 kernel, wishing to use kexec functionality in the case of a crash. It represents which data structures should be deliberatly allocated in low memory, so the crash kernel may find find them. Should be used in combination with `crashinfo_maxaddr`. + ### max\_cstate ### max\_gsi\_irqs ### maxcpus -- cgit v1.2.3