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/
Home Products Support Community News


Re: [Xen-devel] NMI deferral on i386

To: Jan Beulich <jbeulich@xxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] NMI deferral on i386
From: Keir Fraser <keir@xxxxxxxxxxxxx>
Date: Tue, 15 May 2007 16:00:32 +0100
Delivery-date: Tue, 15 May 2007 07:59:10 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <4649E3C8.76E4.0078.0@xxxxxxxxxx>
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AceXAcifB3JteQL1EdyS/wAX8io7RQ==
Thread-topic: [Xen-devel] NMI deferral on i386
User-agent: Microsoft-Entourage/
On 15/5/07 15:46, "Jan Beulich" <jbeulich@xxxxxxxxxx> wrote:

> - by using iret, the NMI is being acknowledged to the CPU, and since nothing
>   was done to address its reason, I can't see why it shouldn't re-trigger
>   right after that iret (unless it was sent as an IPI)

Yes, it's good enough for watchdog and oprofile. Level-triggered external
NMIs will of course be a problem. We could possibly work around this by
masking LINT1 if we are CPU0 (and, of course, if LAPIC is enabled) and then
unmasking only at the end of real NMI handler. And of course x86/64 doesn't
have this problem at all, and practically speaking is pretty much the only
hypervisor build that vendors seem to care about.

> - by re-issuing it on vector 31, the resulting interrupt will have lower
> priority
>   than any external interrupt, hence all pending interrupts will be serviced
>   before getting to actually handle the NMI; ideally this should use the
> highest
>   possible vector, but since priorities are grouped anyway, at least
> allocating
>   the vector from the high priority pool would seem necessary

Yes, this is true.

 -- Keir

Xen-devel mailing list