2007-09-09 08:07:23

by Bernhard Walle

[permalink] [raw]
Subject: [patch 1/3] Express relocatability of kernel on x86_64 in documentation

This patch adapts the Documentation/kdump/kdump.txt file to express the fact
that the x86_64 kernel is now also relocatable. This makes i386 and x86_64 now
behave the same, simplifying the documentation.


Signed-off-by: Bernhard Walle <[email protected]>

---
Documentation/kdump/kdump.txt | 35 ++++++-----------------------------
1 file changed, 6 insertions(+), 29 deletions(-)

--- a/Documentation/kdump/kdump.txt
+++ b/Documentation/kdump/kdump.txt
@@ -159,16 +159,17 @@ Dump-capture kernel config options (Arch
CONFIG_PROC_VMCORE=y
(CONFIG_PROC_VMCORE is set by default when CONFIG_CRASH_DUMP is selected.)

-Dump-capture kernel config options (Arch Dependent, i386)
---------------------------------------------------------
-1) On x86, enable high memory support under "Processor type and
+Dump-capture kernel config options (Arch Dependent, i386 and x86_64)
+--------------------------------------------------------------------
+
+1) On i386, enable high memory support under "Processor type and
features":

CONFIG_HIGHMEM64G=y
or
CONFIG_HIGHMEM4G

-2) On x86 and x86_64, disable symmetric multi-processing support
+2) On i386 and x86_64, disable symmetric multi-processing support
under "Processor type and features":

CONFIG_SMP=n
@@ -203,28 +204,6 @@ Dump-capture kernel config options (Arch
5) Make and install the kernel and its modules. DO NOT add this kernel
to the boot loader configuration files.

-Dump-capture kernel config options (Arch Dependent, x86_64)
-----------------------------------------------------------
-1) On x86 and x86_64, disable symmetric multi-processing support
- under "Processor type and features":
-
- CONFIG_SMP=n
-
- (If CONFIG_SMP=y, then specify maxcpus=1 on the kernel command line
- when loading the dump-capture kernel, see section "Load the Dump-capture
- Kernel".)
-
-2) Use a suitable value for "Physical address where the kernel is
- loaded" (under "Processor type and features"). This only appears when
- "kernel crash dumps" is enabled. By default this value is 0x1000000
- (16MB). It should be the same as X in the "crashkernel=Y@X" boot
- parameter.
-
- For x86_64, normally "CONFIG_PHYSICAL_START=0x1000000".
-
-3) Make and install the kernel and its modules. DO NOT add this kernel
- to the boot loader configuration files.
-
Dump-capture kernel config options (Arch Dependent, ppc64)
----------------------------------------------------------

@@ -282,11 +261,9 @@ Based on the architecture and type of im
can choose to load the uncompressed vmlinux or compressed bzImage/vmlinuz
of dump-capture kernel. Following is the summary.

-For i386:
+For i386 and x86_64:
- Use vmlinux if kernel is not relocatable.
- Use bzImage/vmlinuz if kernel is relocatable.
-For x86_64:
- - Use vmlinux
For ppc64:
- Use vmlinux
For ia64:

--


2007-09-09 18:59:19

by Randy Dunlap

[permalink] [raw]
Subject: Re: [patch 1/3] Express relocatability of kernel on x86_64 in documentation

On Sun, 09 Sep 2007 10:06:21 +0200 Bernhard Walle wrote:

> This patch adapts the Documentation/kdump/kdump.txt file to express the fact
> that the x86_64 kernel is now also relocatable. This makes i386 and x86_64 now
> behave the same, simplifying the documentation.
>
>
> Signed-off-by: Bernhard Walle <[email protected]>

Hi,
Can we also please reconcile the CRASH_DUMP Kconfig help text?
I.e., it says

The crash dump kernel must be compiled
to a memory address not used by the main kernel or BIOS using
PHYSICAL_START.

but this ignores the use of RELOCATABLE, right?


---
From: Randy Dunlap <[email protected]>

Update help text for CONFIG_CRASH_DUMP.
Fix typos in CONFIG_RELOCATABLE.
Use tab + 2 spaces for indentation on all lines.

Signed-off-by: Randy Dunlap <[email protected]>
---
arch/i386/Kconfig | 17 +++++++++--------
arch/x86_64/Kconfig | 21 +++++++++++----------
2 files changed, 20 insertions(+), 18 deletions(-)

--- linux-2.6.23-rc5-git1.orig/arch/i386/Kconfig
+++ linux-2.6.23-rc5-git1/arch/i386/Kconfig
@@ -820,12 +820,13 @@ config CRASH_DUMP
depends on HIGHMEM
help
Generate crash dump after being started by kexec.
- This should be normally only set in special crash dump kernels
+ This should be normally only set in special crash dump kernels
which are loaded in the main kernel with kexec-tools into
a specially reserved region and then later executed after
a crash by kdump/kexec. The crash dump kernel must be compiled
- to a memory address not used by the main kernel or BIOS using
- PHYSICAL_START.
+ to a memory address not used by the main kernel or BIOS using
+ PHYSICAL_START, or it must be built as a relocatable image
+ (CONFIG_RELOCATABLE=y).
For more details see Documentation/kdump/kdump.txt

config PHYSICAL_START
@@ -871,17 +872,17 @@ config PHYSICAL_START
Don't change this unless you know what you are doing.

config RELOCATABLE
- bool "Build a relocatable kernel(EXPERIMENTAL)"
+ bool "Build a relocatable kernel (EXPERIMENTAL)"
depends on EXPERIMENTAL
help
This builds a kernel image that retains relocation information
- so it can be loaded someplace besides the default 1MB.
+ so it can be loaded someplace besides the default 1MB.
The relocations tend to make the kernel binary about 10% larger,
- but are discarded at runtime.
+ but are discarded at runtime.

One use is for the kexec on panic case where the recovery kernel
- must live at a different physical address than the primary
- kernel.
+ must live at a different physical address than the primary
+ kernel.

config PHYSICAL_ALIGN
hex "Alignment value to which kernel should be aligned"
--- linux-2.6.23-rc5-git1.orig/arch/x86_64/Kconfig
+++ linux-2.6.23-rc5-git1/arch/x86_64/Kconfig
@@ -575,17 +575,18 @@ config CRASH_DUMP
bool "kernel crash dumps (EXPERIMENTAL)"
depends on EXPERIMENTAL
help
- Generate crash dump after being started by kexec.
- This should be normally only set in special crash dump kernels
- which are loaded in the main kernel with kexec-tools into
- a specially reserved region and then later executed after
- a crash by kdump/kexec. The crash dump kernel must be compiled
+ Generate crash dump after being started by kexec.
+ This should be normally only set in special crash dump kernels
+ which are loaded in the main kernel with kexec-tools into
+ a specially reserved region and then later executed after
+ a crash by kdump/kexec. The crash dump kernel must be compiled
to a memory address not used by the main kernel or BIOS using
- PHYSICAL_START.
- For more details see Documentation/kdump/kdump.txt
+ PHYSICAL_START, or it must be built as a relocatable image
+ (CONFIG_RELOCATABLE=y).
+ For more details see Documentation/kdump/kdump.txt

config RELOCATABLE
- bool "Build a relocatable kernel(EXPERIMENTAL)"
+ bool "Build a relocatable kernel (EXPERIMENTAL)"
depends on EXPERIMENTAL
help
Builds a relocatable kernel. This enables loading and running
@@ -596,8 +597,8 @@ config RELOCATABLE
must live at a different physical address than the primary
kernel.

- Note: If CONFIG_RELOCATABLE=y, then kernel run from the address
- it has been loaded at and compile time physical address
+ Note: If CONFIG_RELOCATABLE=y, then the kernel runs from the address
+ it has been loaded at and the compile time physical address
(CONFIG_PHYSICAL_START) is ignored.

config PHYSICAL_START