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] vti fault handler clean up: make V

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] vti fault handler clean up: make VTI_DEBUG configurable
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 23 Jan 2008 01:10:35 -0800
Delivery-date: Wed, 23 Jan 2008 01:12:49 -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 1197662942 25200
# Node ID ba569af64b44c9514314f8c77283d45c8cf4b49f
# Parent  0f5926ba1d282d2552a6ebead7f5680660fa2699
[IA64] vti fault handler clean up: make VTI_DEBUG configurable

And make IVT_DEBUG_MAX changable.

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 xen/arch/ia64/Rules.mk         |    5 ++++-
 xen/arch/ia64/asm-offsets.c    |    1 +
 xen/arch/ia64/vmx/vmx_ivt.S    |    5 +++--
 xen/arch/ia64/vmx/vmx_vcpu.c   |    3 ---
 xen/include/asm-ia64/vmx_vpd.h |   12 +++++++++++-
 5 files changed, 19 insertions(+), 7 deletions(-)

diff -r 0f5926ba1d28 -r ba569af64b44 xen/arch/ia64/Rules.mk
--- a/xen/arch/ia64/Rules.mk    Fri Dec 14 13:07:01 2007 -0700
+++ b/xen/arch/ia64/Rules.mk    Fri Dec 14 13:09:02 2007 -0700
@@ -6,6 +6,7 @@ HAS_VGA  := y
 HAS_VGA  := y
 xenoprof := y
 no_warns ?= n
+vti_debug ?= n
 xen_ia64_expose_p2m    ?= y
 xen_ia64_pervcpu_vhpt  ?= y
 xen_ia64_tlb_track     ?= y
@@ -36,7 +37,9 @@ CFLAGS        += -DIA64 -DXEN -DLINUX_2_6
 CFLAGS += -DIA64 -DXEN -DLINUX_2_6
 CFLAGS += -ffixed-r13 -mfixed-range=f2-f5,f12-f127,b2-b5
 CFLAGS += -g
-#CFLAGS  += -DVTI_DEBUG
+ifeq ($(vti_debug),y)
+CFLAGS  += -DVTI_DEBUG
+endif
 ifeq ($(xen_ia64_expose_p2m),y)
 CFLAGS += -DCONFIG_XEN_IA64_EXPOSE_P2M
 endif
diff -r 0f5926ba1d28 -r ba569af64b44 xen/arch/ia64/asm-offsets.c
--- a/xen/arch/ia64/asm-offsets.c       Fri Dec 14 13:07:01 2007 -0700
+++ b/xen/arch/ia64/asm-offsets.c       Fri Dec 14 13:09:02 2007 -0700
@@ -46,6 +46,7 @@ void foo(void)
 #ifdef   VTI_DEBUG
        DEFINE(IVT_CUR_OFS, offsetof(struct vcpu, arch.arch_vmx.ivt_current));
        DEFINE(IVT_DBG_OFS, offsetof(struct vcpu, arch.arch_vmx.ivt_debug));
+       DEFINE(IVT_DEBUG_SIZE, sizeof(struct ivt_debug));
 #endif
        DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
        DEFINE(TI_PRE_COUNT, offsetof(struct thread_info, preempt_count));
diff -r 0f5926ba1d28 -r ba569af64b44 xen/arch/ia64/vmx/vmx_ivt.S
--- a/xen/arch/ia64/vmx/vmx_ivt.S       Fri Dec 14 13:07:01 2007 -0700
+++ b/xen/arch/ia64/vmx/vmx_ivt.S       Fri Dec 14 13:09:02 2007 -0700
@@ -70,6 +70,7 @@
 
 
 #ifdef VTI_DEBUG
+#define IVT_DEBUG_MASK  (IVT_DEBUG_SIZE * (IVT_DEBUG_MAX - 1))
 #define VMX_DBG_FAULT(i)                \
     add r16=IVT_CUR_OFS,r21;            \
     add r17=IVT_DBG_OFS,r21;;           \
@@ -80,9 +81,9 @@
     mov r22=cr.ifa;                     \
     mov r23=i;;                         \
     st8 [r17]=r19,8;                    \
-    add r18=32,r18;;                    \
+    add r18=IVT_DEBUG_SIZE,r18;;        \
     st8 [r17]=r20,8;                    \
-    mov r19=0xfe0;;                     \
+    mov r19=IVT_DEBUG_MASK;;            \
     st8 [r17]=r22,8;                    \
     and r18=r19,r18;;                   \
     st8 [r17]=r23;                      \
diff -r 0f5926ba1d28 -r ba569af64b44 xen/arch/ia64/vmx/vmx_vcpu.c
--- a/xen/arch/ia64/vmx/vmx_vcpu.c      Fri Dec 14 13:07:01 2007 -0700
+++ b/xen/arch/ia64/vmx/vmx_vcpu.c      Fri Dec 14 13:09:02 2007 -0700
@@ -111,13 +111,10 @@ vmx_vcpu_set_psr(VCPU *vcpu, unsigned lo
     }
     new_psr.val=VCPU(vcpu, vpsr);
 #ifdef VTI_DEBUG    
-    {
-    struct pt_regs *regs = vcpu_regs(vcpu);
     guest_psr_buf[guest_psr_index].ip = regs->cr_iip;
     guest_psr_buf[guest_psr_index].psr = new_psr.val;
     if (++guest_psr_index >= 100)
         guest_psr_index = 0;
-    }
 #endif    
 #if 0
     if (old_psr.i != new_psr.i) {
diff -r 0f5926ba1d28 -r ba569af64b44 xen/include/asm-ia64/vmx_vpd.h
--- a/xen/include/asm-ia64/vmx_vpd.h    Fri Dec 14 13:07:01 2007 -0700
+++ b/xen/include/asm-ia64/vmx_vpd.h    Fri Dec 14 13:09:02 2007 -0700
@@ -22,6 +22,17 @@
 #ifndef _ASM_IA64_VMX_VPD_H_
 #define _ASM_IA64_VMX_VPD_H_
 
+#ifdef VTI_DEBUG
+/*
+ * must be power of 2.
+ * Be carefull to avoid stack over flow keeping
+ * struct arch_vmx_struct(i.e. struct vcpu) small enough.
+ * sizeof(struct ivt_debug) * IVT_DEBUG_MAX = 32 * IVT_DEBUG_MAX
+ */
+//#define IVT_DEBUG_MAX 128     /* 4096 bytes */
+#define IVT_DEBUG_MAX 16        /*  512 bytes */
+#endif
+
 #ifndef __ASSEMBLY__
 
 #include <asm/vtm.h>
@@ -39,7 +50,6 @@ struct ivt_debug{
     unsigned long ifa;
     unsigned long vector;
 };
-#define IVT_DEBUG_MAX 128
 #endif
 
 struct arch_vmx_struct {

_______________________________________________
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] vti fault handler clean up: make VTI_DEBUG configurable, Xen patchbot-unstable <=