Hi, Alex and Aron

  Thank you for your various comments,
I attach the patche which reflect this discussion.
Please edit the comment line in patches, as you like.
I change the last line of document from previous mail.

Thanks
Atsushi SAKAI


==========================================

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),
Some occasion, 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 [EMAIL PROTECTED]
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 <[EMAIL PROTECTED]>

==========================================


Alex Williamson <[EMAIL PROTECTED]> wrote:

> On Tue, 2007-01-23 at 16:44 -0500, Aron Griffis wrote:
> > Atsushi SAKAI wrote:  [Mon Jan 22 2007, 07:36:55PM EST]
> > > 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)
> > ...
> > > 
> > > These oops messages are generated
> > > because timer_interrupt checks the condition itc > itm.
> > 
> > Is that the right comparison though?  itc isn't guaranteed to return
> > different values on subsequent fetches, and the interrupt is generated
> > when itc == itm, right?  So shouldn't the condition be itc >= itm?
> 
>    Good point.  With the slower ITC on a Montecito system, I don't know
> if anything would prevent you hitting the interrupt handler when itc ==
> itm.  Perhaps a Montecito fix for Linux-ia64 to use time_after_eq()
> would eliminate this problem.
> 
>       Alex
> -- 
> Alex Williamson                             HP Open Source & Linux Org.
> 

Attachment: fix-vti-oops-take2.patch
Description: Binary data

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel

Reply via email to