X86: Make the page not present panic more descriptive.
authorGabe Black <gblack@eecs.umich.edu>
Sun, 2 Dec 2007 09:46:14 +0000 (01:46 -0800)
committerGabe Black <gblack@eecs.umich.edu>
Sun, 2 Dec 2007 09:46:14 +0000 (01:46 -0800)
--HG--
extra : convert_revision : 9360e47adb61e164ac218f2ea231eaa60bf3229d

src/arch/x86/pagetable_walker.cc

index 0472dcd21a99c9b495e2f3a392f580400c5d2b86..e70c16b1dbb73caadcc713a21401e2d40e1933ec 100644 (file)
@@ -110,7 +110,7 @@ Walker::doNext(PacketPtr &read, PacketPtr &write)
             panic("NX violation!\n");
         entry.noExec = pte.nx;
         if (!pte.p)
-            panic("Page not present!\n");
+            panic("Page at %#x not present!\n", entry.vaddr);
         nextState = LongPDP;
         break;
       case LongPDP:
@@ -122,7 +122,7 @@ Walker::doNext(PacketPtr &read, PacketPtr &write)
         if (badNX)
             panic("NX violation!\n");
         if (!pte.p)
-            panic("Page not present!\n");
+            panic("Page at %#x not present!\n", entry.vaddr);
         nextState = LongPD;
         break;
       case LongPD:
@@ -133,7 +133,7 @@ Walker::doNext(PacketPtr &read, PacketPtr &write)
         if (badNX)
             panic("NX violation!\n");
         if (!pte.p)
-            panic("Page not present!\n");
+            panic("Page at %#x not present!\n", entry.vaddr);
         if (!pte.ps) {
             // 4 KB page
             entry.size = 4 * (1 << 10);
@@ -164,7 +164,7 @@ Walker::doNext(PacketPtr &read, PacketPtr &write)
         if (badNX)
             panic("NX violation!\n");
         if (!pte.p)
-            panic("Page not present!\n");
+            panic("Page at %#x not present!\n", entry.vaddr);
         entry.paddr = (uint64_t)pte & (mask(40) << 12);
         entry.uncacheable = uncacheable;
         entry.global = pte.g;
@@ -179,7 +179,7 @@ Walker::doNext(PacketPtr &read, PacketPtr &write)
       case PAEPDP:
         nextRead = ((uint64_t)pte & (mask(40) << 12)) + vaddr.pael2 * size;
         if (!pte.p)
-            panic("Page not present!\n");
+            panic("Page at %#x not present!\n", entry.vaddr);
         nextState = PAEPD;
         break;
       case PAEPD:
@@ -190,7 +190,7 @@ Walker::doNext(PacketPtr &read, PacketPtr &write)
         if (badNX)
             panic("NX violation!\n");
         if (!pte.p)
-            panic("Page not present!\n");
+            panic("Page at %#x not present!\n", entry.vaddr);
         if (!pte.ps) {
             // 4 KB page
             entry.size = 4 * (1 << 10);
@@ -220,7 +220,7 @@ Walker::doNext(PacketPtr &read, PacketPtr &write)
         if (badNX)
             panic("NX violation!\n");
         if (!pte.p)
-            panic("Page not present!\n");
+            panic("Page at %#x not present!\n", entry.vaddr);
         entry.paddr = (uint64_t)pte & (mask(40) << 12);
         entry.uncacheable = uncacheable;
         entry.global = pte.g;
@@ -238,7 +238,7 @@ Walker::doNext(PacketPtr &read, PacketPtr &write)
         entry.writable = pte.w;
         entry.user = pte.u;
         if (!pte.p)
-            panic("Page not present!\n");
+            panic("Page at %#x not present!\n", entry.vaddr);
         if (!pte.ps) {
             // 4 KB page
             entry.size = 4 * (1 << 10);
@@ -267,7 +267,7 @@ Walker::doNext(PacketPtr &read, PacketPtr &write)
         entry.writable = pte.w;
         entry.user = pte.u;
         if (!pte.p)
-            panic("Page not present!\n");
+            panic("Page at %#x not present!\n", entry.vaddr);
         // 4 KB page
         entry.size = 4 * (1 << 10);
         nextRead = ((uint64_t)pte & (mask(20) << 12)) + vaddr.norml2 * size;
@@ -281,7 +281,7 @@ Walker::doNext(PacketPtr &read, PacketPtr &write)
         entry.writable = pte.w;
         entry.user = pte.u;
         if (!pte.p)
-            panic("Page not present!\n");
+            panic("Page at %#x not present!\n", entry.vaddr);
         entry.paddr = (uint64_t)pte & (mask(20) << 12);
         entry.uncacheable = uncacheable;
         entry.global = pte.g;