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] ivt patch

To: "Magenheimer, Dan (HP Labs Fort Collins)" <dan.magenheimer@xxxxxx>
Subject: [Xen-ia64-devel] ivt patch
From: Tristan Gingold <Tristan.Gingold@xxxxxxxx>
Date: Wed, 12 Oct 2005 18:20:21 +0200
Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Wed, 12 Oct 2005 15:15:13 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
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: KMail/1.5
Hi,

here is the ivt changeset.  Only to be used while debugging.

I am not sure I will be able to generate the SMP patch today.  I got a freeze.

Tristan.


# HG changeset patch
# User tristan.gingold@xxxxxxxx
# Node ID d962821aa0e7c024bf7f4a978504ef7f028703d2
# Parent  276744d6f43efc3a2f885d5ade6b9a56733df81c
Move all DBG_FAULT in front of handlers (but not activated).
This is very useful during debugging.

diff -r 276744d6f43e -r d962821aa0e7 xen/arch/ia64/xen/ivt.S
--- a/xen/arch/ia64/xen/ivt.S   Wed Oct 12 12:51:31 2005
+++ b/xen/arch/ia64/xen/ivt.S   Wed Oct 12 14:03:22 2005
@@ -484,6 +484,7 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x1400 Entry 5 (size 64 bundles) Data nested TLB (6,45)
 ENTRY(nested_dtlb_miss)
+       DBG_FAULT(5)
        /*
         * In the absence of kernel bugs, we get here when the virtually mapped 
linear
         * page table is accessed non-speculatively (e.g., in the Dirty-bit, 
Instruction
@@ -552,10 +553,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x1800 Entry 6 (size 64 bundles) Instruction Key Miss (24)
 ENTRY(ikey_miss)
+       DBG_FAULT(6)
 #ifdef XEN
        REFLECT(6)
 #endif
-       DBG_FAULT(6)
        FAULT(6)
 END(ikey_miss)
 
@@ -597,10 +598,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x1c00 Entry 7 (size 64 bundles) Data Key Miss (12,51)
 ENTRY(dkey_miss)
+       DBG_FAULT(7)
 #ifdef XEN
        REFLECT(7)
 #endif
-       DBG_FAULT(7)
        FAULT(7)
 END(dkey_miss)
 
@@ -608,10 +609,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x2000 Entry 8 (size 64 bundles) Dirty-bit (54)
 ENTRY(dirty_bit)
+       DBG_FAULT(8)
 #ifdef XEN
        REFLECT(8)
 #endif
-       DBG_FAULT(8)
        /*
         * What we do here is to simply turn on the dirty bit in the PTE.  We 
need 
to
         * update both the page-table and the TLB entry.  To efficiently access 
the 
PTE,
@@ -673,6 +674,7 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x2400 Entry 9 (size 64 bundles) Instruction Access-bit (27)
 ENTRY(iaccess_bit)
+       DBG_FAULT(9)
 #ifdef XEN
        mov r31=pr;
        mov r16=cr.isr
@@ -681,7 +683,6 @@
        movl r20=0x2400
        br.sptk.many fast_access_reflect;;
 #endif
-       DBG_FAULT(9)
        // Like Entry 8, except for instruction access
        mov r16=cr.ifa                          // get the address that caused 
the fault
        movl r30=1f                             // load continuation point in 
case of nested fault
@@ -746,6 +747,7 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x2800 Entry 10 (size 64 bundles) Data Access-bit (15,55)
 ENTRY(daccess_bit)
+       DBG_FAULT(10)
 #ifdef XEN
        mov r31=pr;
        mov r16=cr.isr
@@ -754,7 +756,6 @@
        movl r20=0x2800
        br.sptk.many fast_access_reflect;;
 #endif
-       DBG_FAULT(10)
        // Like Entry 8, except for data access
        mov r16=cr.ifa                          // get the address that caused 
the fault
        movl r30=1f                             // load continuation point in 
case of nested fault
@@ -971,8 +972,10 @@
        mov out0=cr.ivr         // pass cr.ivr as first arg
 #endif
        add out1=16,sp          // pass pointer to pt_regs as second arg
+#ifndef XEN
        ;;
        srlz.d                  // make sure we see the effect of cr.ivr
+#endif
        movl r14=ia64_leave_kernel
        ;;
        mov rp=r14
@@ -1363,10 +1366,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5000 Entry 20 (size 16 bundles) Page Not Present (10,22,49)
 ENTRY(page_not_present)
+       DBG_FAULT(20)
 #ifdef XEN
        REFLECT(20)
 #endif
-       DBG_FAULT(20)
        mov r16=cr.ifa
        rsm psr.dt
        /*
@@ -1386,10 +1389,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5100 Entry 21 (size 16 bundles) Key Permission (13,25,52)
 ENTRY(key_permission)
+       DBG_FAULT(21)
 #ifdef XEN
        REFLECT(21)
 #endif
-       DBG_FAULT(21)
        mov r16=cr.ifa
        rsm psr.dt
        mov r31=pr
@@ -1402,10 +1405,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5200 Entry 22 (size 16 bundles) Instruction Access Rights (26)
 ENTRY(iaccess_rights)
+       DBG_FAULT(22)
 #ifdef XEN
        REFLECT(22)
 #endif
-       DBG_FAULT(22)
        mov r16=cr.ifa
        rsm psr.dt
        mov r31=pr
@@ -1418,6 +1421,7 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5300 Entry 23 (size 16 bundles) Data Access Rights (14,53)
 ENTRY(daccess_rights)
+       DBG_FAULT(23)
 #ifdef XEN
        mov r31=pr;
        mov r16=cr.isr
@@ -1426,7 +1430,6 @@
        movl r20=0x5300
        br.sptk.many fast_access_reflect;;
 #endif
-       DBG_FAULT(23)
        mov r16=cr.ifa
        rsm psr.dt
        mov r31=pr
@@ -1459,10 +1462,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5500 Entry 25 (size 16 bundles) Disabled FP-Register (35)
 ENTRY(disabled_fp_reg)
+       DBG_FAULT(25)
 #ifdef XEN
        REFLECT(25)
 #endif
-       DBG_FAULT(25)
        rsm psr.dfh             // ensure we can access fph
        ;;
        srlz.d
@@ -1475,10 +1478,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5600 Entry 26 (size 16 bundles) Nat Consumption (11,23,37,50)
 ENTRY(nat_consumption)
+       DBG_FAULT(26)
 #ifdef XEN
        REFLECT(26)
 #endif
-       DBG_FAULT(26)
        FAULT(26)
 END(nat_consumption)
 
@@ -1486,11 +1489,11 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5700 Entry 27 (size 16 bundles) Speculation (40)
 ENTRY(speculation_vector)
+       DBG_FAULT(27)
 #ifdef XEN
        // this probably need not reflect...
        REFLECT(27)
 #endif
-       DBG_FAULT(27)
        /*
         * A [f]chk.[as] instruction needs to take the branch to the recovery 
code 
but
         * this part of the architecture is not implemented in hardware on some 
CPUs, such
@@ -1533,10 +1536,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5900 Entry 29 (size 16 bundles) Debug (16,28,56)
 ENTRY(debug_vector)
+       DBG_FAULT(29)
 #ifdef XEN
        REFLECT(29)
 #endif
-       DBG_FAULT(29)
        FAULT(29)
 END(debug_vector)
 
@@ -1544,10 +1547,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5a00 Entry 30 (size 16 bundles) Unaligned Reference (57)
 ENTRY(unaligned_access)
+       DBG_FAULT(30)
 #ifdef XEN
        REFLECT(30)
 #endif
-       DBG_FAULT(30)
        mov r16=cr.ipsr
        mov r31=pr              // prepare to save predicates
        ;;
@@ -1558,10 +1561,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5b00 Entry 31 (size 16 bundles) Unsupported Data Reference (57)
 ENTRY(unsupported_data_reference)
+       DBG_FAULT(31)
 #ifdef XEN
        REFLECT(31)
 #endif
-       DBG_FAULT(31)
        FAULT(31)
 END(unsupported_data_reference)
 
@@ -1569,10 +1572,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5c00 Entry 32 (size 16 bundles) Floating-Point Fault (64)
 ENTRY(floating_point_fault)
+       DBG_FAULT(32)
 #ifdef XEN
        REFLECT(32)
 #endif
-       DBG_FAULT(32)
        FAULT(32)
 END(floating_point_fault)
 
@@ -1580,10 +1583,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5d00 Entry 33 (size 16 bundles) Floating Point Trap (66)
 ENTRY(floating_point_trap)
+       DBG_FAULT(33)
 #ifdef XEN
        REFLECT(33)
 #endif
-       DBG_FAULT(33)
        FAULT(33)
 END(floating_point_trap)
 
@@ -1591,10 +1594,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5e00 Entry 34 (size 16 bundles) Lower Privilege Transfer Trap (66)
 ENTRY(lower_privilege_trap)
+       DBG_FAULT(34)
 #ifdef XEN
        REFLECT(34)
 #endif
-       DBG_FAULT(34)
        FAULT(34)
 END(lower_privilege_trap)
 
@@ -1602,10 +1605,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x5f00 Entry 35 (size 16 bundles) Taken Branch Trap (68)
 ENTRY(taken_branch_trap)
+       DBG_FAULT(35)
 #ifdef XEN
        REFLECT(35)
 #endif
-       DBG_FAULT(35)
        FAULT(35)
 END(taken_branch_trap)
 
@@ -1613,10 +1616,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x6000 Entry 36 (size 16 bundles) Single Step Trap (69)
 ENTRY(single_step_trap)
+       DBG_FAULT(36)
 #ifdef XEN
        REFLECT(36)
 #endif
-       DBG_FAULT(36)
        FAULT(36)
 END(single_step_trap)
 
@@ -1672,10 +1675,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x6900 Entry 45 (size 16 bundles) IA-32 Exeception 
(17,18,29,41,42,43,44,58,60,61,62,72,73,75,76,77)
 ENTRY(ia32_exception)
+       DBG_FAULT(45)
 #ifdef XEN
        REFLECT(45)
 #endif
-       DBG_FAULT(45)
        FAULT(45)
 END(ia32_exception)
 
@@ -1683,10 +1686,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x6a00 Entry 46 (size 16 bundles) IA-32 Intercept  (30,31,59,70,71)
 ENTRY(ia32_intercept)
+       DBG_FAULT(46)
 #ifdef XEN
        REFLECT(46)
 #endif
-       DBG_FAULT(46)
 #ifdef CONFIG_IA32_SUPPORT
        mov r31=pr
        mov r16=cr.isr
@@ -1716,10 +1719,10 @@
 
/////////////////////////////////////////////////////////////////////////////////////////
 // 0x6b00 Entry 47 (size 16 bundles) IA-32 Interrupt  (74)
 ENTRY(ia32_interrupt)
+       DBG_FAULT(47)
 #ifdef XEN
        REFLECT(47)
 #endif
-       DBG_FAULT(47)
 #ifdef CONFIG_IA32_SUPPORT
        mov r31=pr
        br.sptk.many dispatch_to_ia32_handler


_______________________________________________
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] ivt patch, Tristan Gingold <=