[PATCH] Enable kdump if 2nd-kernel is loaded.

Ken'ichi Ohmichi oomichi at mxs.nes.nec.co.jp
Wed Jul 8 20:43:19 EDT 2009


Hi Simon,

Thank you for the comment.

Simon Horman wrote:
> On Wed, Jul 08, 2009 at 01:38:59PM +0900, Ken'ichi Ohmichi wrote:
>> Hi,
>>
>> This patch enables a kdump if 2nd-kernel is loaded.
>> (The patch is based on linux-2.6.31-rc2.)
>>
>> Now, a kdump is enabled if a kernel parameter "oops=panic" is specified and
>> 2nd-kernel is loaded. I think that a kdump should be enabled regardless of
>> "oops=panic" if 2nd-kernel is loaded, because a system administrator loads
>> 2nd-kernel for enabling a kdump.
> 
> I'm not sure that I like this change. To my mind, panic on oops
> should only occur if specifically requested.

My patch does not make panic_on_oops effective when 2nd-kernel is loaded,
and it makes a kdump effective.

kexec_should_crash() is called only by oops_end() for checking whether to
call crash_kexec(). crash_kexec() is not panic, and I feel it is better
that crash_kexec() is called when 2nd-kernel is loaded.


I tried to test a kdump on linux-2.6.31-rc1 *without* a kernel parameter
"oops=panic" by `echo c > /proc/sysrq-trigger`, but a kdump did not work
because a kdump, which is occurred by `echo c > /proc/sysrq-trigger`, has
been changed to a NULL pointer error instead of calling crash_kexec()
since linux-2.6.31-rc1. Then I tried to boot linux-2.6.31-rc1 *with* a
kernel parameter "oops=panic", the kernel got a panic while kernel booting
due to a problem other than a kdump. 
So I think a kdump should be enabled when 2nd-kernel is loaded.


Thanks
Ken'ichi Ohmichi

>> Signed-off-by: Ken'ichi Ohmichi <oomichi at mxs.nes.nec.co.jp>
>> ---
>> --- a/kernel/kexec.c	2009-07-08 12:30:26.000000000 +0900
>> +++ b/kernel/kexec.c	2009-07-08 12:38:08.000000000 +0900
>> @@ -57,6 +57,8 @@ struct resource crashk_res = {
>>  
>>  int kexec_should_crash(struct task_struct *p)
>>  {
>> +	if (kexec_crash_image)
>> +		return 1;
>>  	if (in_interrupt() || !p->pid || is_global_init(p) || panic_on_oops)
>>  		return 1;
>>  	return 0;
>>
>> _______________________________________________
>> kexec mailing list
>> kexec at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/kexec
> 
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
> 




More information about the kexec mailing list