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] Minimal long vhpt format support

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] Minimal long vhpt format support
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 07 Sep 2007 09:12:58 -0700
Delivery-date: Fri, 07 Sep 2007 09:17:56 -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 Alex Williamson <alex.williamson@xxxxxx>
# Date 1186942402 21600
# Node ID 54c721bb6d452d8eb97a151c847c9276868ae5c5
# Parent  82f5fbe59e264465397d757b70874f45dd8c2b6c
[IA64] Minimal long vhpt format support

Signed-off-by: Juergen Gross juergen.gross@xxxxxxxxxxxxxxxxxxx
---
 xen/arch/ia64/xen/hyperprivop.S |   10 +++++-----
 xen/arch/ia64/xen/vcpu.c        |   16 +++++++---------
 2 files changed, 12 insertions(+), 14 deletions(-)

diff -r 82f5fbe59e26 -r 54c721bb6d45 xen/arch/ia64/xen/hyperprivop.S
--- a/xen/arch/ia64/xen/hyperprivop.S   Sun Aug 12 12:06:43 2007 -0600
+++ b/xen/arch/ia64/xen/hyperprivop.S   Sun Aug 12 12:13:22 2007 -0600
@@ -844,19 +844,19 @@ fast_tlb_no_tr_match:
        
 1:     // check the guest VHPT
        adds r19 = XSI_PTA_OFS-XSI_PSR_IC_OFS, r18;;
-       ld8 r19=[r19];;
-       tbit.nz p7,p0=r19,IA64_PTA_VF_BIT;;     // long format VHPT
-(p7)   br.cond.spnt.few page_fault;;
+       ld8 r19=[r19]
        // if (!rr.ve || !(pta & IA64_PTA_VE)) take slow way for now
        // FIXME: later, we deliver an alt_d/i vector after thash and itir
-       tbit.z p7,p0=r19,IA64_PTA_VE_BIT
-(p7)   br.cond.spnt.few page_fault;;
        extr.u r25=r17,61,3
        adds r21=XSI_RR0_OFS-XSI_PSR_IC_OFS,r18 ;;
        shl r25=r25,3;;
        add r21=r21,r25;;
        ld8 r22=[r21];;
        tbit.z p7,p0=r22,0
+(p7)   br.cond.spnt.few page_fault;;
+       tbit.z p7,p0=r19,IA64_PTA_VE_BIT
+(p7)   br.cond.spnt.few page_fault;;
+       tbit.nz p7,p0=r19,IA64_PTA_VF_BIT       // long format VHPT
 (p7)   br.cond.spnt.few page_fault;;
 
        // compute and save away itir (r22 & RR_PS_MASK)
diff -r 82f5fbe59e26 -r 54c721bb6d45 xen/arch/ia64/xen/vcpu.c
--- a/xen/arch/ia64/xen/vcpu.c  Sun Aug 12 12:06:43 2007 -0600
+++ b/xen/arch/ia64/xen/vcpu.c  Sun Aug 12 12:13:22 2007 -0600
@@ -49,7 +49,6 @@ typedef union {
 #define        IA64_PTA_SZ_BIT         2
 #define        IA64_PTA_VF_BIT         8
 #define        IA64_PTA_BASE_BIT       15
-#define        IA64_PTA_LFMT           (1UL << IA64_PTA_VF_BIT)
 #define        IA64_PTA_SZ(x)          (x##UL << IA64_PTA_SZ_BIT)
 
 #define IA64_PSR_NON_VIRT_BITS                         \
@@ -755,10 +754,6 @@ IA64FAULT vcpu_set_iva(VCPU * vcpu, u64 
 
 IA64FAULT vcpu_set_pta(VCPU * vcpu, u64 val)
 {
-       if (val & IA64_PTA_LFMT) {
-               printk("*** No support for VHPT long format yet!!\n");
-               return IA64_ILLOP_FAULT;
-       }
        if (val & (0x3f << 9))  /* reserved fields */
                return IA64_RSVDREG_FAULT;
        if (val & 2)            /* reserved fields */
@@ -1753,10 +1748,6 @@ IA64FAULT vcpu_translate(VCPU * vcpu, u6
 
        /* check guest VHPT */
        pta = PSCB(vcpu, pta);
-       if (pta & IA64_PTA_VF) { /* long format VHPT - not implemented */
-               panic_domain(vcpu_regs(vcpu), "can't do long format VHPT\n");
-               //return is_data ? IA64_DATA_TLB_VECTOR:IA64_INST_TLB_VECTOR;
-       }
 
        *itir = rr & (RR_RID_MASK | RR_PS_MASK);
        // note: architecturally, iha is optionally set for alt faults but
@@ -1778,6 +1769,13 @@ IA64FAULT vcpu_translate(VCPU * vcpu, u6
                        IA64_ALT_INST_TLB_VECTOR;
        }
 
+       if (pta & IA64_PTA_VF) { /* long format VHPT - not implemented */
+               /*
+                * minimal support: vhpt walker is really dumb and won't find
+                * anything
+                */
+               return is_data ? IA64_DATA_TLB_VECTOR : IA64_INST_TLB_VECTOR;
+       }
        /* avoid recursively walking (short format) VHPT */
        if (((address ^ pta) & ((itir_mask(pta) << 3) >> 3)) == 0)
                return is_data ? IA64_DATA_TLB_VECTOR : IA64_INST_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] [xen-unstable] [IA64] Minimal long vhpt format support, Xen patchbot-unstable <=