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] Make vmx_swtich_rr7() consistent t

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] Make vmx_swtich_rr7() consistent to ia64_new_rr7() so that it maps stack.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 23 Jan 2008 01:10:52 -0800
Delivery-date: Wed, 23 Jan 2008 01:13:48 -0800
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 1200596743 25200
# Node ID 70db89a4beab523df0d619f4ab2932130c85e1fb
# Parent  50ac3b26b2521dd74058bde182a6121c39aa02b1
[IA64] Make vmx_swtich_rr7() consistent to ia64_new_rr7() so that it maps stack.

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 xen/arch/ia64/vmx/vmx_entry.S |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diff -r 50ac3b26b252 -r 70db89a4beab xen/arch/ia64/vmx/vmx_entry.S
--- a/xen/arch/ia64/vmx/vmx_entry.S     Thu Jan 17 12:05:43 2008 -0700
+++ b/xen/arch/ia64/vmx/vmx_entry.S     Thu Jan 17 12:05:43 2008 -0700
@@ -627,7 +627,6 @@ END(ia64_leave_hypercall)
 #define PSR_BITS_TO_SET    IA64_PSR_BN
 
 //extern void vmx_switch_rr7(unsigned long rid, void *guest_vhpt, void * 
pal_vaddr );
-
 GLOBAL_ENTRY(vmx_switch_rr7)
        // not sure this unwind statement is correct...
        .prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(1)
@@ -679,6 +678,7 @@ 1:
        mov cr.ifa=r17
        mov r16=IA64_TR_KERNEL
        movl r25 = PAGE_KERNEL
+       // r2=KERNEL_TR_PAGE_SHIFT truncated physicall address of ip
        dep r2=0,r3,0,KERNEL_TR_PAGE_SHIFT
        ;;
        or r24=r2,r25
@@ -700,6 +700,25 @@ 1:
        itr.d dtr[r16]=r24
        ;;
 
+       // re-pin mapping for stack (current)
+       // unless overlaps with IA64_TR_XEN_HEAP_REGS
+       mov r26=IA64_GRANULE_SHIFT<<2
+       dep r21=0,r13,60,4              // physical address of "current"
+       ;;
+       dep r3=0,r21,0,KERNEL_TR_PAGE_SHIFT
+       ;; 
+       cmp.eq p7,p0=r2,r3
+(p7)   br.cond.sptk .stack_overlaps
+       ;;
+       ptr.d   r13,r26
+       or r23=r21,r25                  // construct PA | page properties
+       mov cr.itir=r26
+       mov cr.ifa=r13                  // VA of next task...
+       mov r18=IA64_TR_CURRENT_STACK
+       ;;
+       itr.d dtr[r18]=r23              // wire in new mapping...
+.stack_overlaps:
+
        // re-pin mappings for per-cpu data
        movl r22 = PERCPU_ADDR
        ;;
@@ -716,8 +735,16 @@ 1:
        ;;
 
        // re-pin mappings for guest_vhpt
+       // unless overlaps with IA64_TR_XEN_HEAP_REGS or IA64_TR_CURRENT_STACK
+       dep r18=0,loc5,0,KERNEL_TR_PAGE_SHIFT
+       dep r21=0,r21,0,IA64_GRANULE_SHIFT 
+       dep r17=0,loc5,0,IA64_GRANULE_SHIFT 
+       ;;
+       cmp.eq p6,p0=r18,r2             // check overlap with xen heap
+       cmp.eq p7,p0=r17,r21            // check overlap with current stack
+(p6)   br.cond.sptk .vhpt_overlaps
+(p7)   br.cond.sptk .vhpt_overlaps
        mov r24=IA64_TR_VHPT
-       movl r25=PAGE_KERNEL
        ;;
        or loc5 = r25,loc5              // construct PA | page properties
        mov r23 = IA64_GRANULE_SHIFT <<2
@@ -729,6 +756,7 @@ 1:
        ;;
        itr.d dtr[r24]=loc5             // wire in new mapping...
        ;;
+.vhpt_overlaps:
 
        // re-pin mappings for PAL code section
        mov r24=IA64_TR_PALCODE

_______________________________________________
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] Make vmx_swtich_rr7() consistent to ia64_new_rr7() so that it maps stack., Xen patchbot-unstable <=