|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   xen-bugs
[Xen-bugs] [Bug 1087] New: message on console for level> 2	recursive pag 
| http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=1087
           Summary: message on console for level> 2 recursive page table
                    entry
           Product: Xen
           Version: unspecified
          Platform: x86-64
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Hypervisor
        AssignedTo: xen-bugs@xxxxxxxxxxxxxxxxxxx
        ReportedBy: bouyer@xxxxxxxxxx
Hi,
while working on NetBSD/amd64 support for Xen, I've found that Xen emits a
message on the serial console every time a L4 page table with recursive
mappings is checked:
(XEN) mm.c:1753:d10 Bad type (saw 0000000098000004 != exp 0000000060000000) for
mfn 23f5 (pfn 3da2)
On NetBSD, this means a message on every context switch.
I found that mm.c already had a check for L2 recursive mapping (which is
why I didn't see the problem with NetBSD/i386), but not for L3 or L4.
The patch below (now part of NetBSD pkgsrc) extends the check for L3 and L4
page tables.
$NetBSD: patch-ae,v 1.1 2007/10/16 20:31:57 bouyer Exp $
--- xen/arch/x86/mm.c.orig      2007-05-18 16:45:21.000000000 +0200
+++ xen/arch/x86/mm.c   2007-10-17 05:03:09.000000000 +0200
@@ -1741,15 +1741,26 @@
                     nx |= PGT_validated;
             }
         }
-        else if ( unlikely((x & (PGT_type_mask|PGT_pae_xen_l2)) != type) )
+        else if (unlikely((x & (PGT_type_mask|PGT_pae_xen_l2)) != type) )
         {
-            if ( ((x & PGT_type_mask) != PGT_l2_page_table) ||
-                 (type != PGT_l1_page_table) )
-                MEM_LOG("Bad type (saw %" PRtype_info
-                        " != exp %" PRtype_info ") "
-                        "for mfn %lx (pfn %lx)",
-                        x, type, page_to_mfn(page),
-                        get_gpfn_from_mfn(page_to_mfn(page)));
+           /*
+            * if it's a recursive mapping failure here is expected.
+            * Don't log it
+            */
+           if ((x & PGT_type_mask) == PGT_l2_page_table &&
+               type == PGT_l1_page_table)
+                       return 0;
+           if ((x & PGT_type_mask) == PGT_l3_page_table &&
+               type == PGT_l2_page_table)
+                       return 0;
+           if ((x & PGT_type_mask) == PGT_l4_page_table &&
+               type == PGT_l3_page_table)
+                       return 0;
+            MEM_LOG("Bad type (saw %" PRtype_info
+                    " != exp %" PRtype_info ") "
+                    "for mfn %lx (pfn %lx)",
+                    x, type, page_to_mfn(page),
+                    get_gpfn_from_mfn(page_to_mfn(page)));
             return 0;
         }
         else if ( unlikely(!(x & PGT_validated)) )
-- 
Configure bugmail: 
http://bugzilla.xensource.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
_______________________________________________
Xen-bugs mailing list
Xen-bugs@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-bugs
 | 
 
| <Prev in Thread] | Current Thread | [Next in Thread> |  | 
[Xen-bugs] [Bug 1087] New: message on console for level> 2	recursive page table entry,
bugzilla-daemon <=
 |  |  | 
  
    |  |  |