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] fix domain_flush_vtlb_all()

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] fix domain_flush_vtlb_all()
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 28 Jul 2006 16:20:28 +0000
Delivery-date: Fri, 28 Jul 2006 09:24:34 -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 72caf2612e526b09e8d57ffd526d9b4ae7ea0d13
# Parent  37c8b562a8f10c1f3b59db07e11def70cc2e9e1a
[IA64] fix domain_flush_vtlb_all()

It should purge software tlb entry of specified vcpu, not current.

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 xen/arch/ia64/xen/vcpu.c        |    2 +-
 xen/arch/ia64/xen/vhpt.c        |   20 +++++++++++---------
 xen/include/asm-ia64/tlbflush.h |    2 +-
 3 files changed, 13 insertions(+), 11 deletions(-)

diff -r 37c8b562a8f1 -r 72caf2612e52 xen/arch/ia64/xen/vcpu.c
--- a/xen/arch/ia64/xen/vcpu.c  Wed Jul 05 09:59:40 2006 -0600
+++ b/xen/arch/ia64/xen/vcpu.c  Wed Jul 05 10:03:20 2006 -0600
@@ -2065,7 +2065,7 @@ IA64FAULT vcpu_ptc_e(VCPU *vcpu, UINT64 
        // architected loop to purge the entire TLB, should use
        //  base = stride1 = stride2 = 0, count0 = count 1 = 1
 
-       vcpu_flush_vtlb_all ();
+       vcpu_flush_vtlb_all(current);
 
        return IA64_NO_FAULT;
 }
diff -r 37c8b562a8f1 -r 72caf2612e52 xen/arch/ia64/xen/vhpt.c
--- a/xen/arch/ia64/xen/vhpt.c  Wed Jul 05 09:59:40 2006 -0600
+++ b/xen/arch/ia64/xen/vhpt.c  Wed Jul 05 10:03:20 2006 -0600
@@ -129,10 +129,8 @@ void vhpt_init(void)
 }
 
 
-void vcpu_flush_vtlb_all (void)
-{
-       struct vcpu *v = current;
-
+void vcpu_flush_vtlb_all(struct vcpu *v)
+{
        /* First VCPU tlb.  */
        vcpu_purge_tr_entry(&PSCBX(v,dtlb));
        vcpu_purge_tr_entry(&PSCBX(v,itlb));
@@ -148,6 +146,11 @@ void vcpu_flush_vtlb_all (void)
           check this.  */
 }
 
+static void __vcpu_flush_vtlb_all(void *vcpu)
+{
+       vcpu_flush_vtlb_all((struct vcpu*)vcpu);
+}
+
 void domain_flush_vtlb_all (void)
 {
        int cpu = smp_processor_id ();
@@ -158,12 +161,11 @@ void domain_flush_vtlb_all (void)
                        continue;
 
                if (v->processor == cpu)
-                       vcpu_flush_vtlb_all ();
+                       vcpu_flush_vtlb_all(v);
                else
-                       smp_call_function_single
-                               (v->processor,
-                                (void(*)(void *))vcpu_flush_vtlb_all,
-                                NULL,1,1);
+                       smp_call_function_single(v->processor,
+                                                __vcpu_flush_vtlb_all,
+                                                v, 1, 1);
        }
 }
 
diff -r 37c8b562a8f1 -r 72caf2612e52 xen/include/asm-ia64/tlbflush.h
--- a/xen/include/asm-ia64/tlbflush.h   Wed Jul 05 09:59:40 2006 -0600
+++ b/xen/include/asm-ia64/tlbflush.h   Wed Jul 05 10:03:20 2006 -0600
@@ -11,7 +11,7 @@
 */
 
 /* Local all flush of vTLB.  */
-void vcpu_flush_vtlb_all (void);
+void vcpu_flush_vtlb_all(struct vcpu *v);
 
 /* Local range flush of machine TLB only (not full VCPU virtual TLB!!!)  */
 void vcpu_flush_tlb_vhpt_range (u64 vadr, u64 log_range);

_______________________________________________
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] fix domain_flush_vtlb_all(), Xen patchbot-unstable <=