RE: [patch 2/3] IA64: log insertion of crashkernel region

From: Zou, Nanhai <nanhai.zou_at_intel.com>
Date: 2007-03-06 19:29:51
> -----Original Message-----
> From: linux-ia64-owner@vger.kernel.org
> [mailto:linux-ia64-owner@vger.kernel.org] On Behalf Of Horms
> Sent: 200736 15:29
> To: Linux-IA64; fastboot@lists.osdl.org
> Cc: Luck, Tony; Zou, Nanhai; Magnus Damm
> Subject: [patch 2/3] IA64: log insertion of crashkernel region
> 
> This patch adds a faclilty to print out a message regarding the success or
> failure of inserting the crashkernel region. On systems with a large
> ammount of memory, the chances of failure tend to be quite low, especially
> now that the base address of the region can be determined by the kernel.
> However, on systems with less memory, such as Xen's Domain 0, it
> can occur, and silently failing is confusing to say the least.
> 
> It also updates the error message generated by kdump_find_rsvd_region()
> if it can't locate a base address for the requested crashkernel region,
> which is really just another failure mode for the problem detailed
> in the paragraph above.
> 
> Signed-off-by: Simon Horman <horms@verge.net.au>
> 
>  linux-2.6/arch/ia64/kernel/efi.c |   25 +++++++++++++++++++++----
>  1 file changed, 21 insertions(+), 4 deletions(-)
> 
> Index: linux-2.6/arch/ia64/kernel/efi.c
> ===================================================================
> --- linux-2.6.orig/arch/ia64/kernel/efi.c	2007-03-06 16:25:46.000000000
> +0900
> +++ linux-2.6/arch/ia64/kernel/efi.c	2007-03-06 16:25:46.000000000 +0900
> @@ -1049,6 +1049,9 @@
>  	u64 efi_desc_size;
>  	char *name;
>  	unsigned long flags;
> +#ifdef CONFIG_KEXEC
> +	int crashk_res_inserted = 0;
> +#endif
> 
>  	efi_map_start = __va(ia64_boot_param->efi_memmap);
>  	efi_map_end   = efi_map_start + ia64_boot_param->efi_memmap_size;
> @@ -1125,11 +1128,25 @@
>  #ifdef CONFIG_KEXEC
>                          insert_resource(res, &efi_memmap_res);
>                          insert_resource(res, &boot_param_res);
> -			if (crashk_res.end > crashk_res.start)
> -				insert_resource(res, &crashk_res);
> +			if (!crashk_res_inserted &&
> +			    crashk_res.end > crashk_res.start &&
> +			    insert_resource(res, &crashk_res) >= 0)
> +				crashk_res_inserted = 1;
> +
>  #endif
>  		}
>  	}
> +
> +	if (crashk_res.end > crashk_res.start) {
> +		if (crashk_res_inserted)
> +			printk(KERN_ERR "Kdump: registered crashdump: "
> +			       "0x%08lx-0x%08lx\n", crashk_res.start,
> +			       crashk_res.end);
> +		else
> +			printk(KERN_ERR "Kdump: failed to insert resource for "
> +			       "crashdump: 0x%08lx-0x%08lx\n",
> +			       crashk_res.start, crashk_res.end);
> +	}
>  }
> 
>  #ifdef CONFIG_KEXEC
> @@ -1172,8 +1189,8 @@
>  		return start;
>    }
> 
> -  printk(KERN_WARNING "Cannot reserve 0x%lx byte of memory for crashdump\n",
> -	size);
> +  printk(KERN_WARNING "Kdump: failed to find a base address for 0x%lx bytes"
> +	 "of memory for crashdump\n", size);
>    return ~0UL;
>  }
>  #endif
> 
> --
> 

 
 You can check if crash_res is inserted from /proc/iomem.
Thanks
Zou Nan hai

> --
> Horms
>   H: http://www.vergenet.net/~horms/
>   W: http://www.valinux.co.jp/en/
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Tue Mar 06 19:31:35 2007

This archive was generated by hypermail 2.1.8 : 2007-03-06 19:31:51 EST