Commit be089d79 authored by Michael Ellerman's avatar Michael Ellerman Committed by Linus Torvalds

kexec: make extended crashkernel= syntax less confusing

The extended crashkernel syntax is a little confusing in the way it handles
ranges.  eg:

 crashkernel=512M-2G:64M,2G-:128M

Means if the machine has between 512M and 2G of memory the crash region should
be 64M, and if the machine has 2G of memory the region should be 64M.  Only if
the machine has more than 2G memory will 128M be allocated.

Although that semantic is correct, it is somewhat baffling.  Instead I propose
that the end of the range means the first address past the end of the range,
ie: 512M up to but not including 2G.

[bwalle@suse.de: clarify inclusive/exclusive in crashkernel commandline in documentation]
Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
Acked-by: default avatarBernhard Walle <bwalle@suse.de>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Simon Horman <horms@verge.net.au>
Signed-off-by: default avatarBernhard Walle <bwalle@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent c85d194b
...@@ -245,6 +245,8 @@ The syntax is: ...@@ -245,6 +245,8 @@ The syntax is:
crashkernel=<range1>:<size1>[,<range2>:<size2>,...][@offset] crashkernel=<range1>:<size1>[,<range2>:<size2>,...][@offset]
range=start-[end] range=start-[end]
'start' is inclusive and 'end' is exclusive.
For example: For example:
crashkernel=512M-2G:64M,2G-:128M crashkernel=512M-2G:64M,2G-:128M
...@@ -253,10 +255,11 @@ This would mean: ...@@ -253,10 +255,11 @@ This would mean:
1) if the RAM is smaller than 512M, then don't reserve anything 1) if the RAM is smaller than 512M, then don't reserve anything
(this is the "rescue" case) (this is the "rescue" case)
2) if the RAM size is between 512M and 2G, then reserve 64M 2) if the RAM size is between 512M and 2G (exclusive), then reserve 64M
3) if the RAM size is larger than 2G, then reserve 128M 3) if the RAM size is larger than 2G, then reserve 128M
Boot into System Kernel Boot into System Kernel
======================= =======================
......
...@@ -1217,7 +1217,7 @@ static int __init parse_crashkernel_mem(char *cmdline, ...@@ -1217,7 +1217,7 @@ static int __init parse_crashkernel_mem(char *cmdline,
} }
/* match ? */ /* match ? */
if (system_ram >= start && system_ram <= end) { if (system_ram >= start && system_ram < end) {
*crash_size = size; *crash_size = size;
break; break;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment