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-ia64-devel

[Xen-ia64-devel] [PATCH 8/16] domheap: don't refer domain->arch.rid_bits

To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-ia64-devel] [PATCH 8/16] domheap: don't refer domain->arch.rid_bits from optfaults.S.
From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Date: Mon, 7 Jan 2008 16:52:34 +0900
Cc: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Delivery-date: Sun, 06 Jan 2008 23:55:41 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.4.2.1i
# HG changeset patch
# User yamahata@xxxxxxxxxxxxx
# Date 1199690089 -32400
# Node ID 105c577732e610b2a20d44098aab17615e2e47d6
# Parent  3fa9bfb63a947099e0202c25437eb785507d6025
don't refer domain->arch.rid_bits from optfaults.S.
copy it to struct arch_vcpu.
PATCHNAME: arch_vcpu_rid_bits

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>

diff -r 3fa9bfb63a94 -r 105c577732e6 xen/arch/ia64/asm-offsets.c
--- a/xen/arch/ia64/asm-offsets.c       Fri Dec 28 13:04:47 2007 +0900
+++ b/xen/arch/ia64/asm-offsets.c       Mon Jan 07 16:14:49 2008 +0900
@@ -69,6 +69,7 @@ void foo(void)
        DEFINE(IA64_VCPU_INSVC3_OFFSET, offsetof (struct vcpu, arch.insvc[3]));
        DEFINE(IA64_VCPU_STARTING_RID_OFFSET, offsetof (struct vcpu, 
arch.starting_rid));
        DEFINE(IA64_VCPU_ENDING_RID_OFFSET, offsetof (struct vcpu, 
arch.ending_rid));
+       DEFINE(IA64_VCPU_RID_BITS_OFFSET, offsetof (struct vcpu, 
arch.rid_bits));
        DEFINE(IA64_VCPU_DOMAIN_ITM_OFFSET, offsetof (struct vcpu, 
arch.domain_itm));
        DEFINE(IA64_VCPU_DOMAIN_ITM_LAST_OFFSET, offsetof (struct vcpu, 
arch.domain_itm_last));
        DEFINE(IA64_VCPU_ITLB_OFFSET, offsetof (struct vcpu, arch.itlb));
@@ -78,7 +79,6 @@ void foo(void)
        BLANK();
 
        DEFINE(IA64_DOMAIN_SHADOW_BITMAP_OFFSET, offsetof (struct domain, 
arch.shadow_bitmap));
-       DEFINE(IA64_DOMAIN_RID_BITS_OFFSET, offsetof (struct domain, 
arch.rid_bits));
 
        BLANK();
 
diff -r 3fa9bfb63a94 -r 105c577732e6 xen/arch/ia64/vmx/optvfault.S
--- a/xen/arch/ia64/vmx/optvfault.S     Fri Dec 28 13:04:47 2007 +0900
+++ b/xen/arch/ia64/vmx/optvfault.S     Mon Jan 07 16:14:49 2008 +0900
@@ -95,11 +95,10 @@ GLOBAL_ENTRY(vmx_asm_mov_to_rr)
 #ifndef ACCE_MOV_TO_RR
     br.many vmx_virtualization_fault_back
 #endif
-    add r22=IA64_VCPU_DOMAIN_OFFSET,r21
+    add r22=IA64_VCPU_RID_BITS_OFFSET,r21
     extr.u r16=r25,20,7                // r3
     extr.u r17=r25,13,7                // r2
     ;;
-    ld8 r22=[r22]              // Get domain
     movl r20=asm_mov_from_reg
     ;;
     adds r30=vmx_asm_mov_to_rr_back_1-asm_mov_from_reg,r20
@@ -126,7 +125,6 @@ vmx_asm_mov_to_rr_back_2:
 vmx_asm_mov_to_rr_back_2: 
     adds r30=vmx_resume_to_guest-asm_mov_from_reg,r20
     shladd r27=r23,3,r27       // address of VRR
-    add r22=IA64_DOMAIN_RID_BITS_OFFSET,r22
     ;;
     ld1 r22=[r22]              // Load rid_bits from domain
     mov b0=r18                 // restore b0
diff -r 3fa9bfb63a94 -r 105c577732e6 xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c        Fri Dec 28 13:04:47 2007 +0900
+++ b/xen/arch/ia64/xen/domain.c        Mon Jan 07 16:14:49 2008 +0900
@@ -466,6 +466,7 @@ int vcpu_initialise(struct vcpu *v)
 
            v->arch.starting_rid = d->arch.starting_rid;
            v->arch.ending_rid = d->arch.ending_rid;
+           v->arch.rid_bits = d->arch.rid_bits;
            v->arch.breakimm = d->arch.breakimm;
            v->arch.last_processor = INVALID_PROCESSOR;
            v->arch.vhpt_pg_shift = PAGE_SHIFT;
diff -r 3fa9bfb63a94 -r 105c577732e6 xen/include/asm-ia64/domain.h
--- a/xen/include/asm-ia64/domain.h     Fri Dec 28 13:04:47 2007 +0900
+++ b/xen/include/asm-ia64/domain.h     Mon Jan 07 16:14:49 2008 +0900
@@ -263,6 +263,7 @@ struct arch_vcpu {
     int breakimm;                      // from arch_domain (so is pinned)
     int starting_rid;          /* first RID assigned to domain */
     int ending_rid;            /* one beyond highest RID assigned to domain */
+    unsigned char rid_bits;     // from arch_domain (so is pinned)
 
     /* Bitset for debug register use.  */
     unsigned int dbg_used;

Attachment: 16702_105c577732e6_arch_vcpu_rid_bits.patch
Description: Text Data

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-ia64-devel] [PATCH 8/16] domheap: don't refer domain->arch.rid_bits from optfaults.S., Isaku Yamahata <=