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/
Home Products Support Community News


[Xen-changelog] [xen-unstable] [IA64] let VMM do itc sync for guest on V

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] let VMM do itc sync for guest on VTI domain
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 16 Jun 2006 18:41:31 +0000
Delivery-date: Fri, 16 Jun 2006 11:47:29 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID d33add81096b057f98fa740ab88d6c17426f8d68
# Parent  d0a77e90eaa308f49439eb14700e428e7cfc7d58
[IA64] let VMM do itc sync for guest on VTI domain

Previously, on SMP VTI-domain, Guest OS was responsible for
syncing itc by calling ia64_sync_itc, but the round trip may
be very large on VTI domain, that may cause guest itcs are
not synced well and cause guest wall clock is not accurate.

This patch intends to fix this issue, when guest wants to sync
itc( vcpus other than vcpu0 write itc), VMM directly get vcpu0
itc for other vcpus.

Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx>
 xen/arch/ia64/vmx/vlsapic.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff -r d0a77e90eaa3 -r d33add81096b xen/arch/ia64/vmx/vlsapic.c
--- a/xen/arch/ia64/vmx/vlsapic.c       Wed Jun 14 16:05:44 2006 -0600
+++ b/xen/arch/ia64/vmx/vlsapic.c       Wed Jun 14 16:05:45 2006 -0600
@@ -140,8 +140,6 @@ uint64_t vtm_get_itc(VCPU *vcpu)
 void vtm_set_itc(VCPU *vcpu, uint64_t new_itc)
     uint64_t    vitm, vitv;
@@ -149,8 +147,15 @@ void vtm_set_itc(VCPU *vcpu, uint64_t ne
     vitm = VCPU(vcpu,itm);
     vitv = VCPU(vcpu,itv);
-    vtm->vtm_offset = new_itc - ia64_get_itc();
-    vtm->last_itc = new_itc;
+    if(vcpu->vcpu_id == 0){
+        vtm->vtm_offset = new_itc - ia64_get_itc();
+        vtm->last_itc = new_itc;
+    }
+    else{
+        vtm->vtm_offset = vcpu->domain->vcpu[0]->arch.arch_vmx.vtm.vtm_offset;
+        new_itc=vtm->vtm_offset + ia64_get_itc();
+        vtm->last_itc = new_itc;
+    }
     if(vitm < new_itc){
         clear_bit(ITV_VECTOR(vitv), &VCPU(vcpu, irr[0]));

Xen-changelog mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [IA64] let VMM do itc sync for guest on VTI domain, Xen patchbot-unstable <=