ChangeSet 1.1369.1.2, 2005/03/30 09:49:22-07:00, djm@xxxxxxxxxxxxxxx
ivt.S:
ia64: oops, missing file for vhpt patch
ivt.S | 76 ++++++++++++++++++++++++++++++++----------------------------------
1 files changed, 37 insertions(+), 39 deletions(-)
diff -Nru a/xen/arch/ia64/patch/linux-2.6.7/ivt.S
b/xen/arch/ia64/patch/linux-2.6.7/ivt.S
--- a/xen/arch/ia64/patch/linux-2.6.7/ivt.S 2005-04-01 19:03:04 -05:00
+++ b/xen/arch/ia64/patch/linux-2.6.7/ivt.S 2005-04-01 19:03:04 -05:00
@@ -1,5 +1,5 @@
---- /home/djm/src/xen/xeno-ia64.bk/xen/linux-2.6.7/arch/ia64/kernel/ivt.S
2004-06-15 23:18:59.000000000 -0600
-+++ /home/djm/src/xen/xeno-ia64.bk/xen/arch/ia64/ivt.S 2004-12-17
13:47:03.000000000 -0700
+--- ../../linux-2.6.7/arch/ia64/kernel/ivt.S 2004-06-15 23:18:59.000000000
-0600
++++ arch/ia64/ivt.S 2005-03-28 20:16:02.000000000 -0700
@@ -1,3 +1,21 @@
+
+#ifdef XEN
@@ -36,49 +36,63 @@
.section .text.ivt,"ax"
.align 32768 // align on 32KB boundary
-@@ -213,6 +238,9 @@
+@@ -213,6 +238,13 @@
// 0x0400 Entry 1 (size 64 bundles) ITLB (21)
ENTRY(itlb_miss)
DBG_FAULT(1)
+#ifdef XEN
+ VHPT_CCHAIN_LOOKUP(itlb_miss,i)
++#ifdef VHPT_GLOBAL
++ br.cond.sptk page_fault
++ ;;
++#endif
+#endif
/*
* The ITLB handler accesses the L3 PTE via the virtually mapped linear
* page table. If a nested TLB miss occurs, we switch into physical
-@@ -257,6 +285,9 @@
+@@ -257,6 +289,13 @@
// 0x0800 Entry 2 (size 64 bundles) DTLB (9,48)
ENTRY(dtlb_miss)
DBG_FAULT(2)
+#ifdef XEN
+ VHPT_CCHAIN_LOOKUP(dtlb_miss,d)
++#ifdef VHPT_GLOBAL
++ br.cond.sptk page_fault
++ ;;
++#endif
+#endif
/*
* The DTLB handler accesses the L3 PTE via the virtually mapped linear
* page table. If a nested TLB miss occurs, we switch into physical
-@@ -301,6 +332,10 @@
+@@ -301,6 +340,13 @@
// 0x0c00 Entry 3 (size 64 bundles) Alt ITLB (19)
ENTRY(alt_itlb_miss)
DBG_FAULT(3)
+#ifdef XEN
-+// I think this is superfluous, once all regions have VHPT enabled
++//#ifdef VHPT_GLOBAL
+// VHPT_CCHAIN_LOOKUP(alt_itlb_miss,i)
++// br.cond.sptk page_fault
++// ;;
++//#endif
+#endif
mov r16=cr.ifa // get address that caused the TLB miss
movl r17=PAGE_KERNEL
mov r21=cr.ipsr
-@@ -339,6 +374,10 @@
+@@ -339,6 +385,13 @@
// 0x1000 Entry 4 (size 64 bundles) Alt DTLB (7,46)
ENTRY(alt_dtlb_miss)
DBG_FAULT(4)
+#ifdef XEN
-+// I think this is superfluous, once all regions have VHPT enabled
++//#ifdef VHPT_GLOBAL
+// VHPT_CCHAIN_LOOKUP(alt_dtlb_miss,d)
++// br.cond.sptk page_fault
++// ;;
++//#endif
+#endif
mov r16=cr.ifa // get address that caused the TLB miss
movl r17=PAGE_KERNEL
mov r20=cr.isr
-@@ -368,6 +407,17 @@
+@@ -368,6 +421,17 @@
cmp.ne p8,p0=r0,r23
(p9) cmp.eq.or.andcm p6,p7=IA64_ISR_CODE_LFETCH,r22 // check isr.code field
(p8) br.cond.spnt page_fault
@@ -96,7 +110,7 @@
dep r21=-1,r21,IA64_PSR_ED_BIT,1
or r19=r19,r17 // insert PTE control bits into r19
-@@ -448,6 +498,9 @@
+@@ -448,6 +512,9 @@
/////////////////////////////////////////////////////////////////////////////////////////
// 0x1800 Entry 6 (size 64 bundles) Instruction Key Miss (24)
ENTRY(ikey_miss)
@@ -106,7 +120,7 @@
DBG_FAULT(6)
FAULT(6)
END(ikey_miss)
-@@ -460,9 +513,16 @@
+@@ -460,9 +527,16 @@
srlz.i
;;
SAVE_MIN_WITH_COVER
@@ -123,7 +137,7 @@
adds r3=8,r2 // set up second base pointer
;;
ssm psr.ic | PSR_DEFAULT_BITS
-@@ -483,6 +543,9 @@
+@@ -483,6 +557,9 @@
/////////////////////////////////////////////////////////////////////////////////////////
// 0x1c00 Entry 7 (size 64 bundles) Data Key Miss (12,51)
ENTRY(dkey_miss)
@@ -133,7 +147,7 @@
DBG_FAULT(7)
FAULT(7)
END(dkey_miss)
-@@ -491,6 +554,9 @@
+@@ -491,6 +568,9 @@
/////////////////////////////////////////////////////////////////////////////////////////
// 0x2000 Entry 8 (size 64 bundles) Dirty-bit (54)
ENTRY(dirty_bit)
@@ -143,7 +157,7 @@
DBG_FAULT(8)
/*
* What we do here is to simply turn on the dirty bit in the PTE. We
need to
-@@ -553,6 +619,9 @@
+@@ -553,6 +633,9 @@
/////////////////////////////////////////////////////////////////////////////////////////
// 0x2400 Entry 9 (size 64 bundles) Instruction Access-bit (27)
ENTRY(iaccess_bit)
@@ -153,7 +167,7 @@
DBG_FAULT(9)
// Like Entry 8, except for instruction access
mov r16=cr.ifa // get the address that caused
the fault
-@@ -618,6 +687,9 @@
+@@ -618,6 +701,9 @@
/////////////////////////////////////////////////////////////////////////////////////////
// 0x2800 Entry 10 (size 64 bundles) Data Access-bit (15,55)
ENTRY(daccess_bit)
@@ -163,7 +177,7 @@
DBG_FAULT(10)
// Like Entry 8, except for data access
mov r16=cr.ifa // get the address that caused
the fault
-@@ -686,6 +758,16 @@
+@@ -686,6 +772,16 @@
* to prevent leaking bits from kernel to user level.
*/
DBG_FAULT(11)
@@ -180,7 +194,7 @@
mov r16=IA64_KR(CURRENT) // r16 = current task; 12 cycle
read lat.
mov r17=cr.iim
mov r18=__IA64_BREAK_SYSCALL
-@@ -696,7 +778,9 @@
+@@ -696,7 +792,9 @@
mov r27=ar.rsc
mov r26=ar.pfs
mov r28=cr.iip
@@ -190,7 +204,7 @@
mov r20=r1
;;
adds r16=IA64_TASK_THREAD_ON_USTACK_OFFSET,r16
-@@ -792,6 +876,36 @@
+@@ -792,6 +890,36 @@
DBG_FAULT(13)
FAULT(13)
@@ -227,7 +241,7 @@
.org ia64_ivt+0x3800
/////////////////////////////////////////////////////////////////////////////////////////
// 0x3800 Entry 14 (size 64 bundles) Reserved
-@@ -842,9 +956,11 @@
+@@ -842,9 +970,11 @@
* - ar.fpsr: set to kernel settings
*/
GLOBAL_ENTRY(ia64_syscall_setup)
@@ -239,7 +253,7 @@
st8 [r1]=r19 // save b6
add r16=PT(CR_IPSR),r1 // initialize first base pointer
add r17=PT(R11),r1 // initialize second base
pointer
-@@ -974,6 +1090,37 @@
+@@ -974,6 +1104,37 @@
DBG_FAULT(16)
FAULT(16)
@@ -277,7 +291,7 @@
.org ia64_ivt+0x4400
/////////////////////////////////////////////////////////////////////////////////////////
// 0x4400 Entry 17 (size 64 bundles) Reserved
-@@ -1090,6 +1237,9 @@
+@@ -1090,6 +1251,9 @@
/////////////////////////////////////////////////////////////////////////////////////////
// 0x5000 Entry 20 (size 16 bundles) Page Not Present (10,22,49)
ENTRY(page_not_present)
@@ -287,7 +301,7 @@
DBG_FAULT(20)
mov r16=cr.ifa
rsm psr.dt
-@@ -1110,6 +1260,9 @@
+@@ -1110,6 +1274,9 @@
/////////////////////////////////////////////////////////////////////////////////////////
// 0x5100 Entry 21 (size 16 bundles) Key Permission (13,25,52)
ENTRY(key_permission)
@@ -297,7 +311,7 @@
DBG_FAULT(21)
mov r16=cr.ifa
rsm psr.dt
-@@ -1123,6 +1276,9 @@
+@@ -1123,6 +1290,9 @@
/////////////////////////////////////////////////////////////////////////////////////////
// 0x5200 Entry 22 (size 16 bundles) Instruction Access Rights (26)
ENTRY(iaccess_rights)
@@ -307,7 +321,7 @@
DBG_FAULT(22)
mov r16=cr.ifa
rsm psr.dt
-@@ -1136,6 +1292,9 @@
+@@ -1136,6 +1306,9 @@
/////////////////////////////////////////////////////////////////////////////////////////
// 0x5300 Entry 23 (size 16 bundles) Data Access Rights (14,53)
ENTRY(daccess_rights)
@@ -317,7 +331,7 @@
DBG_FAULT(23)
mov r16=cr.ifa
rsm psr.dt
-@@ -1153,8 +1312,13 @@
+@@ -1153,8 +1326,13 @@
mov r16=cr.isr
mov r31=pr
;;
@@ -331,7 +345,7 @@
;;
mov r19=24 // fault number
br.sptk.many dispatch_to_fault_handler
-@@ -1164,6 +1328,9 @@
+@@ -1164,6 +1342,9 @@
/////////////////////////////////////////////////////////////////////////////////////////
// 0x5500 Entry 25 (size 16 bundles) Disabled FP-Register (35)
ENTRY(disabled_fp_reg)
@@ -341,7 +355,7 @@
DBG_FAULT(25)
rsm psr.dfh // ensure we can access fph
;;
-@@ -1177,6 +1344,9 @@
+@@ -1177,6 +1358,9 @@
/////////////////////////////////////////////////////////////////////////////////////////
// 0x5600 Entry 26 (size 16 bundles) Nat Consumption (11,23,37,50)
ENTRY(nat_consumption)
@@ -351,7 +365,7 @@
DBG_FAULT(26)
FAULT(26)
END(nat_consumption)
-@@ -1185,6 +1355,10 @@
+@@ -1185,6 +1369,10 @@
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|