[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-ia64-devel] [patch 09/16] Kexec/Kdump: honour non-zero crashkernel offset
There seems to be a value in both allowing the kernel to determine the base offset of the crashkernel automatically and allowing users's to sepcify it. The old behaviour on ia64, which is still the current behaviour on most architectures is for the user to always specify the address. Recently ia64 was changed so that it is always automatically determined. With this patch the kernel automatically determines the offset if the supplied value is 0, otherwise it uses the value provided. This should probably be backed by a documentation change. Signed-Off-By: Simon Horman <horms@xxxxxxxxxxxx> Signed-off-by: Tony Luck <tony.luck@xxxxxxxxx> --- >From Linux upstream, commit ad1c3ba7e54fc38b119c1a7d5c98f9ffb8227fdb arch/ia64/kernel/setup.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) Date: Wed, 19 Sep 2007 12:03:48 +0900 From: Horms <horms@xxxxxxxxxxxx> Note that as his change is a backport of a change that has already been committed to upstream Linux, its really just part of the backport of ia64 kexec from Linux (~2.6.21) to linux-xen 2.6.18. For this reason I think that it should remain part of this patch-set. Index: linux-2.6.18-xen.hg/arch/ia64/kernel/setup.c =================================================================== --- linux-2.6.18-xen.hg.orig/arch/ia64/kernel/setup.c 2007-07-09 15:00:34.000000000 +0900 +++ linux-2.6.18-xen.hg/arch/ia64/kernel/setup.c 2007-07-09 15:03:32.000000000 +0900 @@ -299,7 +299,7 @@ reserve_memory (void) #ifdef CONFIG_KEXEC /* crashkernel=size@offset specifies the size to reserve for a crash - * kernel.(offset is ingored for keep compatibility with other archs) + * kernel. If offset is 0, then it is determined automatically. * By reserving this memory we guarantee that linux never set's it * up as a DMA target.Useful for holding code to do something * appropriate after a kernel panic. @@ -310,10 +310,16 @@ reserve_memory (void) #ifndef CONFIG_XEN if (from) { size = memparse(from + 12, &from); + if (*from == '@') + base = memparse(from+1, &from); + else + base = 0; if (size) { - sort_regions(rsvd_region, n); - base = kdump_find_rsvd_region(size, - rsvd_region, n); + if (!base) { + sort_regions(rsvd_region, n); + base = kdump_find_rsvd_region(size, + rsvd_region, n); + } if (base != ~0UL) { rsvd_region[n].start = (unsigned long)__va(base); -- -- Horms H: http://www.vergenet.net/~horms/ W: http://www.valinux.co.jp/en/ _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |