WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [PATCH] kexec: framework and i386 (Take XIV)

On Thu, Aug 31, 2006 at 05:55:52PM +0900, Akio Takebe wrote:
> Hi, Horms and Magnus
> 
> Good work. :-)
> I have one commet.
> 
> I believe crash_kexec should be directly called 
> when unknown NMI is occurred.
> In your patch, crash_kexec is called as the bellow.
>   1. unknown NMI is occurred. (e.g. by pushing NMI botton)
>   2. xen recieved NMI and call do_nmi.
>   3. xen report to dom0 by using raise_softirq(NMI_SOFTIRQ).
>   4. dom0 call crash_kexec of dom0.
>   5. crash_kexec of dom0 call crash_kexec of xen
> 
> Am I correct?
> The above process is not reliable if I'm correct.
> So I belive crash_kexec of xen should be directly called like the 
> following patch.
> 
> diff -r 9611a5c9e1a1 xen/arch/x86/traps.c
> --- a/xen/arch/x86/traps.c      Thu Aug 31 13:12:26 2006 +0900
> +++ b/xen/arch/x86/traps.c      Thu Aug 31 17:40:19 2006 +0900
> @@ -1612,6 +1612,7 @@ asmlinkage void do_nmi(struct cpu_user_r
>          else if ( reason & 0x40 )
>              io_check_error(regs);
>          else if ( !nmi_watchdog )
> +            crash_kexec(NULL);
>              unknown_nmi_error((unsigned char)(reason&0xff));
>      }
>  }
> 
> What do you think about it?

That seems like a good idea to me. Though I think you are missing { }.
Can you test to see if this works?

--- a/xen/arch/x86/traps.c      2006-09-01 11:53:44.000000000 +0900
+++ b/xen/arch/x86/traps.c      2006-09-01 11:53:56.000000000 +0900
@@ -1611,8 +1611,10 @@
             mem_parity_error(regs);
         else if ( reason & 0x40 )
             io_check_error(regs);
-        else if ( !nmi_watchdog )
+        else if ( !nmi_watchdog ) {
+           crash_kexec(NULL);
             unknown_nmi_error((unsigned char)(reason&0xff));
+       }
     }
 }
 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel