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] Properly pass iha/itir if data miss occurs when fetching

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Properly pass iha/itir if data miss occurs when fetching privop (by Matt Chapman)
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Sun, 20 Nov 2005 12:58:13 +0000
Delivery-date: Sun, 20 Nov 2005 12:59:25 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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 djm@xxxxxxxxxxxxxxx
# Node ID 14393678d999399af2b63617f01b18ec83948ae8
# Parent  ba78f3912b294e6a6f210e26d52776d03d57ca73
Properly pass iha/itir if data miss occurs when fetching privop (by Matt 
Chapman)

diff -r ba78f3912b29 -r 14393678d999 xen/arch/ia64/xen/process.c
--- a/xen/arch/ia64/xen/process.c       Fri Nov 18 16:01:10 2005
+++ b/xen/arch/ia64/xen/process.c       Fri Nov 18 16:58:03 2005
@@ -698,13 +698,10 @@
        IA64FAULT vector;
        struct domain *d = current->domain;
        struct vcpu *v = current;
-       // FIXME: no need to pass itir in to this routine as we need to
-       // compute the virtual itir anyway (based on domain's RR.ps)
-       // AND ACTUALLY reflect_interruption doesn't use it anyway!
        vector = priv_emulate(current,regs,isr);
        if (vector != IA64_NO_FAULT && vector != IA64_RFI_IN_PROGRESS) {
-               PSCB(current,itir) =
-                       vcpu_get_itir_on_fault(v,PSCB(current,ifa));
+               // Note: if a path results in a vector to reflect that requires
+               // iha/itir (e.g. vcpu_force_data_miss), they must be set there
                reflect_interruption(isr,regs,vector);
        }
 }
diff -r ba78f3912b29 -r 14393678d999 xen/arch/ia64/xen/vcpu.c
--- a/xen/arch/ia64/xen/vcpu.c  Fri Nov 18 16:01:10 2005
+++ b/xen/arch/ia64/xen/vcpu.c  Fri Nov 18 16:58:03 2005
@@ -1186,6 +1186,8 @@
 IA64FAULT vcpu_force_data_miss(VCPU *vcpu, UINT64 ifa)
 {
        PSCB(vcpu,ifa) = ifa;
+       PSCB(vcpu,itir) = vcpu_get_itir_on_fault(vcpu,ifa);
+       vcpu_thash(current, ifa, &PSCB(current,iha));
        return (vcpu_get_rr_ve(vcpu,ifa) ? IA64_DATA_TLB_VECTOR : 
IA64_ALT_DATA_TLB_VECTOR);
 }
 

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Properly pass iha/itir if data miss occurs when fetching privop (by Matt Chapman), Xen patchbot -unstable <=