From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhai, Edwin" Subject: [PATCH][HVM] fix smp guest hang after restore Date: Tue, 30 Jan 2007 19:45:01 +0800 Message-ID: <20070130114501.GA22389@edwin-gen.sh.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Ian Pratt , Keir Fraser , Tim Deegan Cc: xen-devel@lists.xensource.com, edwin.zhai@intel.com List-Id: xen-devel@lists.xenproject.org [PATCH][HVM] fix smp guest hang after restore Signed-off-by: Zhai Edwin update the pt irq after restore, otherwise all lapic timer intr are lost diff -r 6b5606877bb4 xen/arch/x86/hvm/vlapic.c --- a/xen/arch/x86/hvm/vlapic.c Fri Sep 15 17:05:38 2006 +0800 +++ b/xen/arch/x86/hvm/vlapic.c Tue Jan 30 18:03:19 2007 +0800 @@ -836,14 +836,16 @@ static int lapic_load(hvm_domain_context tmict = vlapic_get_reg(s, APIC_TMICT); if (tmict > 0) { uint64_t period = APIC_BUS_CYCLE_NS * (uint32_t)tmict * s->hw.timer_divisor; - + uint32_t lvtt = vlapic_get_reg(s, APIC_LVTT); + + s->pt.irq = lvtt & APIC_VECTOR_MASK; create_periodic_time(v, &s->pt, period, s->pt.irq, vlapic_lvtt_period(s), NULL, s); printk("lapic_load to rearm the actimer:" "bus cycle is %uns, " - "saved tmict count %lu, period %"PRIu64"ns\n", - APIC_BUS_CYCLE_NS, tmict, period); + "saved tmict count %lu, period %"PRIu64"ns, irq=%"PRIu8"\n", + APIC_BUS_CYCLE_NS, tmict, period, s->pt.irq); }