From 696f3581a2272cdab7c0ca1f3bedade4934ecc76 Mon Sep 17 00:00:00 2001 From: Juergen Gross Date: Fri, 20 Jan 2012 10:17:12 +0000 Subject: [PATCH] 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 --- xen/arch/x86/hvm/vlapic.c | 9 +++++++++ 1 file changed, 9 insertions(+) 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: -- 2.30.2