WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] late lapic timer interrupts for hvm guest

To: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] late lapic timer interrupts for hvm guest
From: Juergen Gross <juergen.gross@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 28 Oct 2008 09:56:10 +0100
Cc:
Delivery-date: Tue, 28 Oct 2008 01:56:34 -0700
Domainkey-signature: s=s768; d=fujitsu-siemens.com; c=nofws; q=dns; h=X-SBRSScore:X-IronPort-AV:Received:X-IronPort-AV: Received:Received:Message-ID:Date:From:Organization: User-Agent:MIME-Version:To:Subject:References:In-Reply-To: Content-Type; b=NFIeWYzcaNX/1ZiDkbisMUM1xLiLdb3itbyv+lzek7CSQ3rPfNFoq0q0 20HmQ7/ZJ/SbwcGB5kp4zI+cslAQ+0es6vh0GYM8AEWYXF1ghj9fY2cgN 4LtfiHQiW5F58xe;
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C52C7967.1E99A%keir.fraser@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Fujitsu Siemens Computers
References: <C52C7967.1E99A%keir.fraser@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla-Thunderbird 2.0.0.16 (X11/20080724)
Keir Fraser wrote:
On 28/10/08 07:45, "Juergen Gross" <juergen.gross@xxxxxxxxxxxxxxxxxxx>
wrote:

     pt->scheduled = NOW() + period;
     /*
      * Offset LAPIC ticks from other timer ticks. Otherwise guests which use
      * LAPIC ticks for process accounting can see long sequences of process
      * ticks incorrectly accounted to interrupt processing.
      */
     if ( pt->source == PTSRC_lapic )
         pt->scheduled += period >> 1;

We have ported our mainframe OS BS2000 to x86_64/XEN and we are using the
lapic timer as the main timer interrupt source (one shot mode). Finally I've
found the above coding which seems to be the root cause of late interrupts.

I think the problem mentioned in the comment won't occur if the guest uses
the lapic timer in one shot mode with varying timer values (like BS2000). Or
am I wrong here?

Right. That extra code could be conditional on setting up a periodic LAPIC
timer.

Okay, here is the patch.

Juergen

--
Juergen Gross                             Principal Developer
IP SW OS6                      Telephone: +49 (0) 89 636 47950
Fujitsu Siemens Computers         e-mail: juergen.gross@xxxxxxxxxxxxxxxxxxx
Otto-Hahn-Ring 6                Internet: www.fujitsu-siemens.com
D-81739 Muenchen         Company details: www.fujitsu-siemens.com/imprint.html
When using lapic timer in one shot mode there is no need to delay timer
interrupts.

Signed-off-by: juergen.gross@xxxxxxxxxxxxxxxxxxx

# HG changeset patch
# User juergen.gross@xxxxxxxxxxxxxxxxxxx
# Date 1225183655 -3600
# Node ID 7640fba355fac233773d183077d7d01c8fd591f3
# Parent  874d0d673ecb55749cdc836942222ba684b365cb
don't delay lapic timer if one shot mode

diff -r 874d0d673ecb -r 7640fba355fa xen/arch/x86/hvm/vpt.c
--- a/xen/arch/x86/hvm/vpt.c    Thu Oct 23 15:38:52 2008 +0100
+++ b/xen/arch/x86/hvm/vpt.c    Tue Oct 28 09:47:35 2008 +0100
@@ -388,8 +388,9 @@
      * Offset LAPIC ticks from other timer ticks. Otherwise guests which use
      * LAPIC ticks for process accounting can see long sequences of process
      * ticks incorrectly accounted to interrupt processing.
+     * In one shot mode we assume this is no problem.
      */
-    if ( pt->source == PTSRC_lapic )
+    if ( period && (pt->source == PTSRC_lapic) )
         pt->scheduled += delta >> 1;
     pt->cb = cb;
     pt->priv = data;
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>