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

Re: [Xen-devel] Xen PANIC in MCE interrupt context : can global variable

To: "Yunhong Jiang" <yunhong.jiang@xxxxxxxxx>, "Ashwin Pankaj" <ashwin.pankaj@xxxxxxx>
Subject: Re: [Xen-devel] Xen PANIC in MCE interrupt context : can global variable dom0 be NULL ?
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: Tue, 16 Feb 2010 09:05:33 +0000
Cc: Xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 16 Feb 2010 01:06:17 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <4B795809.5070304@xxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4B795809.5070304@xxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>>> Ashwin Pankaj <ashwin.pankaj@xxxxxxx> 15.02.10 15:19 >>>
>  After some digging, probable culprit seems to be smp_cmci_interrupt
>
>> if (bs.errcnt && mctc != NULL) {
>>         if (guest_enabled_event(dom0->vcpu[0], 
>> <------------------------------------ here
>>                      VIRQ_MCA)) {
>>             mctelem_commit(mctc);
>>             printk(KERN_DEBUG "CMCI: send CMCI to DOM0 through virq\n");
>>             send_guest_global_virq(dom0, VIRQ_MCA);
>>         } else {
>>             x86_mcinfo_dump(mctelem_dataptr(mctc));
>>             mctelem_dismiss(mctc);
>>        }
>
>
>Looks like dom0 is NULL here ( vcpu[0] offset is 0x468). Is this possible?

Yes, your call trace confirms this.

>Other functions like mce_softirq() perform a NULL check on dom0 before 
>accessing it's members ....

The majority of uses doesn't seem to do that check, yet it is essential
if CMCIs occur during boot of Xen. Even more, it should not only be
dom0 that is checked against NULL, but also dom0->vcpu (or
dom0->max_vcpus) and dom0->vcpu[0].

Jan


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

<Prev in Thread] Current Thread [Next in Thread>