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-changelog

[Xen-changelog] [xen-unstable] [IA64] ptc.g virtualization fix

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] ptc.g virtualization fix
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 03 Jul 2006 10:20:42 +0000
Delivery-date: Mon, 03 Jul 2006 03:28:14 -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 3dca270188da9065b10c60e5d5459239badf161b
# Parent  d4e799a1fa9c549b31820431df357a00095ef18f
[IA64] ptc.g virtualization fix

VMM only needs to switch rr0 and pta when emulating ptc.g.
Because VMM only use rr0 and pta to do global purge on other LPs.
VMM doesn't need to switch rr7, it is time consuming operation.

Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx>
---
 xen/arch/ia64/vmx/vmmu.c |    5 ++++-
 xen/arch/ia64/vmx/vtlb.c |   12 ------------
 2 files changed, 4 insertions(+), 13 deletions(-)

diff -r d4e799a1fa9c -r 3dca270188da xen/arch/ia64/vmx/vmmu.c
--- a/xen/arch/ia64/vmx/vmmu.c  Fri Jun 23 16:10:32 2006 -0600
+++ b/xen/arch/ia64/vmx/vmmu.c  Mon Jun 26 14:33:01 2006 -0600
@@ -517,7 +517,7 @@ struct ptc_ga_args {
 
 static void ptc_ga_remote_func (void *varg)
 {
-    u64 oldrid, moldrid;
+    u64 oldrid, moldrid, mpta;
     struct ptc_ga_args *args = (struct ptc_ga_args *)varg;
     VCPU *v = args->vcpu;
 
@@ -525,10 +525,13 @@ static void ptc_ga_remote_func (void *va
     VMX(v, vrr[0]) = args->rid;
     moldrid = ia64_get_rr(0x0);
     ia64_set_rr(0x0,vrrtomrr(v,args->rid));
+    mpta = ia64_get_pta();
+    ia64_set_pta(v->arch.arch_vmx.mpta);
     ia64_srlz_d();
     vmx_vcpu_ptc_l(v, args->vadr, args->ps);
     VMX(v, vrr[0]) = oldrid; 
     ia64_set_rr(0x0,moldrid);
+    ia64_set_pta(mpta);
     ia64_dv_serialize_data();
 }
 
diff -r d4e799a1fa9c -r 3dca270188da xen/arch/ia64/vmx/vtlb.c
--- a/xen/arch/ia64/vmx/vtlb.c  Fri Jun 23 16:10:32 2006 -0600
+++ b/xen/arch/ia64/vmx/vtlb.c  Mon Jun 26 14:33:01 2006 -0600
@@ -267,14 +267,6 @@ static void vtlb_purge(VCPU *v, u64 va, 
 //    machine_tlb_purge(va, ps);
 }
 
-static void
-switch_rr7_and_pta(VCPU* v)
-{
-    if (VMX_DOMAIN(v))
-        vmx_load_rr7_and_pta(v);
-    else
-        load_region_reg7_and_pta(v);
-}
 
 /*
  *  purge VHPT and machine TLB
@@ -287,8 +279,6 @@ static void vhpt_purge(VCPU *v, u64 va, 
     size = PSIZE(ps);
     start = va & (-size);
     end = start + size;
-    if (current != v)
-        switch_rr7_and_pta(v);
     while(start < end){
         hash_table = (thash_data_t *)ia64_thash(start);
         tag = ia64_ttag(start);
@@ -310,8 +300,6 @@ static void vhpt_purge(VCPU *v, u64 va, 
         start += PAGE_SIZE;
     }
     machine_tlb_purge(va, ps);
-    if (current != v)
-        switch_rr7_and_pta(current);
 }
 
 /*

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [IA64] ptc.g virtualization fix, Xen patchbot-unstable <=