[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] Fix oops message from timer_interrupton VTI domain
# HG changeset patch # User awilliam@xxxxxxxxxxxx # Date 1169666885 25200 # Node ID b4df7de0cbf7530c3248956243bc9c520db2d609 # Parent b8de061f3dc6d60e73279c41935138686860a170 [IA64] Fix oops message from timer_interrupton VTI domain This patch intends to fix the oops message from timer_interrupt on VTI domain. This problem occurred when we test PV-on-HVM driver by ltp-20061121. Typical message shown as follows. ltp Now Running...( Exception mode ) dom=domVTI 1 times Unable to find swap-space signature Oops: timer tick before it's due (itc=ed98bb5849,itm=ed98bb5849) Oops: timer tick before it's due (itc=f20bca8ca3,itm=f20bca8ca3) Oops: timer tick before it's due (itc=f4ea4e2b32,itm=f4ea4e2b32) mmap1(7392): unaligned access to 0x60000fffffffb634, ip=0x200000000004fad0 mmap1(7392): unaligned access to 0x60000fffffffb634, ip=0x200000000004fad0 ltp End These oops messages are generated because timer_interrupt checks the condition itc > itm. Currently Xen-hypervisor outputs following values, max(current_itc,vtm->last_itc). Sometimes oops message appeared if we use the value of vtm->last_itc as ia64_get_itc() return value, because the vtm->last_itc is same as itm. To fix this issue, it needs to add return value like +1. But, ia64_get_itc() is handled at vmx_asm_mov_from_ar@xxxxxxxxxxx and it works same logic of now_itc()@vlsapic.c. And these routines shared vtm->last_itc. So I fix this problem by adding +1 at caller of update_last_itc. Signed-off-by: Atsushi SAKAI <sakaia@xxxxxxxxxxxxxx> --- xen/arch/ia64/vmx/vlsapic.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletion(-) diff -r b8de061f3dc6 -r b4df7de0cbf7 xen/arch/ia64/vmx/vlsapic.c --- a/xen/arch/ia64/vmx/vlsapic.c Wed Jan 24 12:21:37 2007 -0700 +++ b/xen/arch/ia64/vmx/vlsapic.c Wed Jan 24 12:28:05 2007 -0700 @@ -171,7 +171,12 @@ static void vtm_timer_fn(void *data) } else vtm->pending = 1; - update_last_itc(vtm, VCPU(vcpu, itm)); // update vITC + /* + * "+ 1" is for fixing oops message at timer_interrupt() on VTI guest. + * If oops checking condition changed to timer_after_eq() on VTI guest, + * this parameter should be erased. + */ + update_last_itc(vtm, VCPU(vcpu, itm) + 1); // update vITC } void vtm_init(VCPU *vcpu) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |