From: Juergen Gross Date: Fri, 20 Jan 2012 10:17:12 +0000 (+0000) Subject: x86/hvm: Allow wake up of offline vcpu via nmi-ipi X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~9221 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=696f3581a2272cdab7c0ca1f3bedade4934ecc76;p=xen.git x86/hvm: Allow wake up of offline vcpu via nmi-ipi On a real machine a cpu disabled via hlt with interrupts disabled can be reactivated via a nmi ipi. Enable the hypervisor to do this for hvm, too. Signed-off-by: Juergen Gross Signed-off-by: Keir Fraser Committed-by: Keir Fraser --- diff --git a/xen/arch/x86/hvm/vlapic.c b/xen/arch/x86/hvm/vlapic.c index b4142875ef..6e3dc86f8c 100644 --- a/xen/arch/x86/hvm/vlapic.c +++ b/xen/arch/x86/hvm/vlapic.c @@ -323,7 +323,16 @@ static int vlapic_accept_irq(struct vcpu *v, uint32_t icr_low) case APIC_DM_NMI: if ( !test_and_set_bool(v->nmi_pending) ) + { + bool_t wake = 0; + domain_lock(v->domain); + if ( v->is_initialised ) + wake = test_and_clear_bit(_VPF_down, &v->pause_flags); + domain_unlock(v->domain); + if ( wake ) + vcpu_wake(v); vcpu_kick(v); + } break; case APIC_DM_INIT: