[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v2 for-4.9] x86/mm: Drop MEM_LOG() and correct some printed information



MEM_LOG() is just a thin wrapper around gdprintk(), obscuring some of the
common information.  Inline it, and take the opportunity to correct some of
the printked information.

Some corrections, each where appropriate:
 * Correction of pfn/mfn terms and consistent use of PRI_pfn/mfn
 * s!I/O!MMIO!
 * Consistently represent domains using d%d notation
 * Use 0x prefix for otherwise unqualified hex numbers
 * Remove "ptwr_emulate:" prefix, as the embedded __func__ is already clear
 * Provide more useful slot information
 * Delete some not-very-helpful lines entirely

Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Jan Beulich <JBeulich@xxxxxxxx>
CC: Wei Liu <wei.liu2@xxxxxxxxxx>
CC: Julien Grall <julien.grall@xxxxxxx>

v2:
 * Futher adjustments and deletions
---
 xen/arch/x86/mm.c | 303 ++++++++++++++++++++++++++++++------------------------
 1 file changed, 166 insertions(+), 137 deletions(-)

diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
index 4dbd24f..22e4af1 100644
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -127,8 +127,6 @@
 l1_pgentry_t __section(".bss.page_aligned") __aligned(PAGE_SIZE)
     l1_fixmap[L1_PAGETABLE_ENTRIES];
 
-#define MEM_LOG(_f, _a...) gdprintk(XENLOG_WARNING , _f "\n" , ## _a)
-
 /*
  * PTE updates can be done with ordinary writes except:
  *  1. Debug builds get extra checking by using CMPXCHG[8B].
@@ -707,7 +705,8 @@ static int get_page_from_pagenr(unsigned long page_nr, 
struct domain *d)
 
     if ( unlikely(!mfn_valid(_mfn(page_nr))) || unlikely(!get_page(page, d)) )
     {
-        MEM_LOG("Could not get page ref for pfn %lx", page_nr);
+        gdprintk(XENLOG_WARNING,
+                 "Could not get page ref for mfn %"PRI_mfn"\n", page_nr);
         return 0;
     }
 
@@ -771,7 +770,8 @@ get_##level##_linear_pagetable(                             
                \
                                                                             \
     if ( (level##e_get_flags(pde) & _PAGE_RW) )                             \
     {                                                                       \
-        MEM_LOG("Attempt to create linear p.t. with write perms");          \
+        gdprintk(XENLOG_WARNING,                                            \
+                 "Attempt to create linear p.t. with write perms\n");       \
         return 0;                                                           \
     }                                                                       \
                                                                             \
@@ -892,7 +892,8 @@ get_page_from_l1e(
 
     if ( unlikely(l1f & l1_disallow_mask(l1e_owner)) )
     {
-        MEM_LOG("Bad L1 flags %x", l1f & l1_disallow_mask(l1e_owner));
+        gdprintk(XENLOG_WARNING, "Bad L1 flags %x\n",
+                 l1f & l1_disallow_mask(l1e_owner));
         return -EINVAL;
     }
 
@@ -913,8 +914,9 @@ get_page_from_l1e(
         {
             if ( mfn != (PADDR_MASK >> PAGE_SHIFT) ) /* INVALID_MFN? */
             {
-                MEM_LOG("Non-privileged (%u) attempt to map I/O space %08lx", 
-                        pg_owner->domain_id, mfn);
+                gdprintk(XENLOG_WARNING,
+                         "d%d non-privileged attempt to map MMIO space 
%"PRI_mfn"\n",
+                         pg_owner->domain_id, mfn);
                 return -EPERM;
             }
             return -EINVAL;
@@ -925,9 +927,10 @@ get_page_from_l1e(
         {
             if ( mfn != (PADDR_MASK >> PAGE_SHIFT) ) /* INVALID_MFN? */
             {
-                MEM_LOG("Dom%u attempted to map I/O space %08lx in dom%u to 
dom%u",
-                        curr->domain->domain_id, mfn, pg_owner->domain_id,
-                        l1e_owner->domain_id);
+                gdprintk(XENLOG_WARNING,
+                         "d%d attempted to map MMIO space %"PRI_mfn" in d%d to 
d%d\n",
+                         curr->domain->domain_id, mfn, pg_owner->domain_id,
+                         l1e_owner->domain_id);
                 return -EPERM;
             }
             return -EINVAL;
@@ -998,9 +1001,10 @@ get_page_from_l1e(
         if ( (real_pg_owner == NULL) || (pg_owner == l1e_owner) ||
              xsm_priv_mapping(XSM_TARGET, pg_owner, real_pg_owner) )
         {
-            MEM_LOG("pg_owner %d l1e_owner %d, but real_pg_owner %d",
-                    pg_owner->domain_id, l1e_owner->domain_id,
-                    real_pg_owner?real_pg_owner->domain_id:-1);
+            gdprintk(XENLOG_WARNING,
+                     "pg_owner d%d l1e_owner d%d, but real_pg_owner d%d\n",
+                     pg_owner->domain_id, l1e_owner->domain_id,
+                     real_pg_owner ? real_pg_owner->domain_id : -1);
             goto could_not_pin;
         }
         pg_owner = real_pg_owner;
@@ -1019,7 +1023,7 @@ get_page_from_l1e(
             ((l1e_owner == pg_owner) || !paging_mode_external(pg_owner));
     if ( write && !get_page_type(page, PGT_writable_page) )
     {
-        MEM_LOG("Could not get page type PGT_writable_page");
+        gdprintk(XENLOG_WARNING, "Could not get page type 
PGT_writable_page\n");
         goto could_not_pin;
     }
 
@@ -1035,7 +1039,8 @@ get_page_from_l1e(
             if ( write )
                 put_page_type(page);
             put_page(page);
-            MEM_LOG("Attempt to change cache attributes of Xen heap page");
+            gdprintk(XENLOG_WARNING,
+                     "Attempt to change cache attributes of Xen heap page\n");
             return -EACCES;
         }
 
@@ -1057,10 +1062,10 @@ get_page_from_l1e(
                 put_page_type(page);
             put_page(page);
 
-            MEM_LOG("Error updating mappings for mfn %lx (pfn %lx,"
-                    " from L1 entry %" PRIpte ") for %d",
-                    mfn, get_gpfn_from_mfn(mfn),
-                    l1e_get_intpte(l1e), l1e_owner->domain_id);
+            gdprintk(XENLOG_WARNING, "Error updating mappings for mfn %" 
PRI_mfn
+                     " (pfn %" PRI_pfn ", from L1 entry %" PRIpte ") for 
d%d\n",
+                     mfn, get_gpfn_from_mfn(mfn),
+                     l1e_get_intpte(l1e), l1e_owner->domain_id);
             return err;
         }
     }
@@ -1068,10 +1073,10 @@ get_page_from_l1e(
     return 0;
 
  could_not_pin:
-    MEM_LOG("Error getting mfn %lx (pfn %lx) from L1 entry %" PRIpte
-            " for l1e_owner=%d, pg_owner=%d",
-            mfn, get_gpfn_from_mfn(mfn),
-            l1e_get_intpte(l1e), l1e_owner->domain_id, pg_owner->domain_id);
+    gdprintk(XENLOG_WARNING, "Error getting mfn %" PRI_mfn " (pfn %" PRI_pfn
+             ") from L1 entry %" PRIpte " for l1e_owner d%d, pg_owner d%d",
+             mfn, get_gpfn_from_mfn(mfn),
+             l1e_get_intpte(l1e), l1e_owner->domain_id, pg_owner->domain_id);
     if ( real_pg_owner != NULL )
         put_page(page);
     return -EBUSY;
@@ -1092,7 +1097,8 @@ get_page_from_l2e(
 
     if ( unlikely((l2e_get_flags(l2e) & L2_DISALLOW_MASK)) )
     {
-        MEM_LOG("Bad L2 flags %x", l2e_get_flags(l2e) & L2_DISALLOW_MASK);
+        gdprintk(XENLOG_WARNING, "Bad L2 flags %x\n",
+                 l2e_get_flags(l2e) & L2_DISALLOW_MASK);
         return -EINVAL;
     }
 
@@ -1106,14 +1112,14 @@ get_page_from_l2e(
 
     if ( !opt_allow_superpage )
     {
-        MEM_LOG("Attempt to map superpage without allowsuperpage "
-                "flag in hypervisor");
+        gdprintk(XENLOG_WARNING, "PV superpages disabled in hypervisor\n");
         return -EINVAL;
     }
 
     if ( mfn & (L1_PAGETABLE_ENTRIES-1) )
     {
-        MEM_LOG("Unaligned superpage map attempt mfn %lx", mfn);
+        gdprintk(XENLOG_WARNING,
+                 "Unaligned superpage map attempt mfn %" PRI_mfn "\n", mfn);
         return -EINVAL;
     }
 
@@ -1133,7 +1139,8 @@ get_page_from_l3e(
 
     if ( unlikely((l3e_get_flags(l3e) & l3_disallow_mask(d))) )
     {
-        MEM_LOG("Bad L3 flags %x", l3e_get_flags(l3e) & l3_disallow_mask(d));
+        gdprintk(XENLOG_WARNING, "Bad L3 flags %x\n",
+                 l3e_get_flags(l3e) & l3_disallow_mask(d));
         return -EINVAL;
     }
 
@@ -1159,7 +1166,8 @@ get_page_from_l4e(
 
     if ( unlikely((l4e_get_flags(l4e) & L4_DISALLOW_MASK)) )
     {
-        MEM_LOG("Bad L4 flags %x", l4e_get_flags(l4e) & L4_DISALLOW_MASK);
+        gdprintk(XENLOG_WARNING, "Bad L4 flags %x\n",
+                 l4e_get_flags(l4e) & L4_DISALLOW_MASK);
         return -EINVAL;
     }
 
@@ -1179,8 +1187,9 @@ get_page_from_l4e(
             /* _PAGE_GUEST_KERNEL page cannot have the Global bit set. */    \
             if ( (l1e_get_flags((pl1e)) & (_PAGE_GUEST_KERNEL|_PAGE_GLOBAL)) \
                  == (_PAGE_GUEST_KERNEL|_PAGE_GLOBAL) )                      \
-                MEM_LOG("Global bit is set to kernel page %lx",              \
-                        l1e_get_pfn((pl1e)));                                \
+                gdprintk(XENLOG_WARNING,                                     \
+                         "Global bit is set to kernel page %lx\n",           \
+                         l1e_get_pfn((pl1e)));                               \
             if ( !(l1e_get_flags((pl1e)) & _PAGE_USER) )                     \
                 l1e_add_flags((pl1e), (_PAGE_GUEST_KERNEL|_PAGE_USER));      \
             if ( !(l1e_get_flags((pl1e)) & _PAGE_GUEST_KERNEL) )             \
@@ -1246,8 +1255,9 @@ void put_page_from_l1e(l1_pgentry_t l1e, struct domain 
*l1e_owner)
     if ( (l1e_get_flags(l1e) & _PAGE_GNTTAB) &&
          !l1e_owner->is_shutting_down && !l1e_owner->is_dying )
     {
-        MEM_LOG("Attempt to implicitly unmap a granted PTE %" PRIpte,
-                l1e_get_intpte(l1e));
+        gdprintk(XENLOG_WARNING,
+                 "Attempt to implicitly unmap a granted PTE %" PRIpte "\n",
+                 l1e_get_intpte(l1e));
         domain_crash(l1e_owner);
     }
 
@@ -1388,7 +1398,7 @@ static int alloc_l1_table(struct page_info *page)
     return 0;
 
  fail:
-    MEM_LOG("Failure in alloc_l1_table: entry %d", i);
+    gdprintk(XENLOG_WARNING, "Failure in alloc_l1_table: slot %#x\n", i);
     while ( i-- > 0 )
         if ( is_guest_l1_slot(i) )
             put_page_from_l1e(pl1e[i], d);
@@ -1411,7 +1421,7 @@ static int create_pae_xen_mappings(struct domain *d, 
l3_pgentry_t *pl3e)
     l3e3 = pl3e[3];
     if ( !(l3e_get_flags(l3e3) & _PAGE_PRESENT) )
     {
-        MEM_LOG("PAE L3 3rd slot is empty");
+        gdprintk(XENLOG_WARNING, "PAE L3 3rd slot is empty\n");
         return 0;
     }
 
@@ -1430,7 +1440,7 @@ static int create_pae_xen_mappings(struct domain *d, 
l3_pgentry_t *pl3e)
     BUG_ON(!(page->u.inuse.type_info & PGT_pae_xen_l2));
     if ( (page->u.inuse.type_info & PGT_count_mask) != 1 )
     {
-        MEM_LOG("PAE L3 3rd slot is shared");
+        gdprintk(XENLOG_WARNING, "PAE L3 3rd slot is shared\n");
         return 0;
     }
 
@@ -1464,7 +1474,7 @@ static int alloc_l2_table(struct page_info *page, 
unsigned long type,
 
         if ( rc < 0 )
         {
-            MEM_LOG("Failure in alloc_l2_table: entry %d", i);
+            gdprintk(XENLOG_WARNING, "Failure in alloc_l2_table: entry %d\n", 
i);
             while ( i-- > 0 )
                 if ( is_guest_l2_slot(d, type, i) )
                     put_page_from_l2e(pl2e[i], pfn);
@@ -1546,7 +1556,7 @@ static int alloc_l3_table(struct page_info *page)
         rc = -EINVAL;
     if ( rc < 0 && rc != -ERESTART && rc != -EINTR )
     {
-        MEM_LOG("Failure in alloc_l3_table: entry %d", i);
+        gdprintk(XENLOG_WARNING, "Failure in alloc_l3_table: entry %d\n", i);
         if ( i )
         {
             page->nr_validated_ptes = i;
@@ -1632,7 +1642,8 @@ static int alloc_l4_table(struct page_info *page)
         else if ( rc < 0 )
         {
             if ( rc != -EINTR )
-                MEM_LOG("Failure in alloc_l4_table: entry %d", i);
+                gdprintk(XENLOG_WARNING,
+                         "Failure in alloc_l4_table: entry %d\n", i);
             if ( i )
             {
                 page->nr_validated_ptes = i;
@@ -1846,8 +1857,9 @@ static inline int update_intpte(intpte_t *p,
             rv = paging_cmpxchg_guest_entry(v, p, &t, _new, _mfn(mfn));
             if ( unlikely(rv == 0) )
             {
-                MEM_LOG("Failed to update %" PRIpte " -> %" PRIpte
-                        ": saw %" PRIpte, old, _new, t);
+                gdprintk(XENLOG_WARNING,
+                         "Failed to update %" PRIpte " -> %" PRIpte
+                         ": saw %" PRIpte "\n", old, _new, t);
                 break;
             }
 
@@ -1904,7 +1916,7 @@ static int mod_l1_entry(l1_pgentry_t *pl1e, l1_pgentry_t 
nl1e,
 
         if ( unlikely(l1e_get_flags(nl1e) & l1_disallow_mask(pt_dom)) )
         {
-            MEM_LOG("Bad L1 flags %x",
+            gdprintk(XENLOG_WARNING, "Bad L1 flags %x\n",
                     l1e_get_flags(nl1e) & l1_disallow_mask(pt_dom));
             return -EINVAL;
         }
@@ -1979,7 +1991,8 @@ static int mod_l2_entry(l2_pgentry_t *pl2e,
 
     if ( unlikely(!is_guest_l2_slot(d, type, pgentry_ptr_to_slot(pl2e))) )
     {
-        MEM_LOG("Illegal L2 update attempt in Xen-private area %p", pl2e);
+        gdprintk(XENLOG_WARNING, "L2 update in Xen-private area, slot %#lx\n",
+                 pgentry_ptr_to_slot(pl2e));
         return -EPERM;
     }
 
@@ -1990,7 +2003,7 @@ static int mod_l2_entry(l2_pgentry_t *pl2e,
     {
         if ( unlikely(l2e_get_flags(nl2e) & L2_DISALLOW_MASK) )
         {
-            MEM_LOG("Bad L2 flags %x",
+            gdprintk(XENLOG_WARNING, "Bad L2 flags %x\n",
                     l2e_get_flags(nl2e) & L2_DISALLOW_MASK);
             return -EINVAL;
         }
@@ -2038,7 +2051,8 @@ static int mod_l3_entry(l3_pgentry_t *pl3e,
 
     if ( unlikely(!is_guest_l3_slot(pgentry_ptr_to_slot(pl3e))) )
     {
-        MEM_LOG("Illegal L3 update attempt in Xen-private area %p", pl3e);
+        gdprintk(XENLOG_WARNING, "L3 update in Xen-private area, slot %#lx\n",
+                 pgentry_ptr_to_slot(pl3e));
         return -EINVAL;
     }
 
@@ -2056,7 +2070,7 @@ static int mod_l3_entry(l3_pgentry_t *pl3e,
     {
         if ( unlikely(l3e_get_flags(nl3e) & l3_disallow_mask(d)) )
         {
-            MEM_LOG("Bad L3 flags %x",
+            gdprintk(XENLOG_WARNING, "Bad L3 flags %x\n",
                     l3e_get_flags(nl3e) & l3_disallow_mask(d));
             return -EINVAL;
         }
@@ -2109,7 +2123,8 @@ static int mod_l4_entry(l4_pgentry_t *pl4e,
 
     if ( unlikely(!is_guest_l4_slot(d, pgentry_ptr_to_slot(pl4e))) )
     {
-        MEM_LOG("Illegal L4 update attempt in Xen-private area %p", pl4e);
+        gdprintk(XENLOG_WARNING, "L4 update in Xen-private area, slot %#lx\n",
+                 pgentry_ptr_to_slot(pl4e));
         return -EINVAL;
     }
 
@@ -2120,7 +2135,7 @@ static int mod_l4_entry(l4_pgentry_t *pl4e,
     {
         if ( unlikely(l4e_get_flags(nl4e) & L4_DISALLOW_MASK) )
         {
-            MEM_LOG("Bad L4 flags %x",
+            gdprintk(XENLOG_WARNING, "Bad L4 flags %x\n",
                     l4e_get_flags(nl4e) & L4_DISALLOW_MASK);
             return -EINVAL;
         }
@@ -2187,7 +2202,8 @@ void put_page(struct page_info *page)
         if ( cleanup_page_cacheattr(page) == 0 )
             free_domheap_page(page);
         else
-            MEM_LOG("Leaking pfn %lx", page_to_mfn(page));
+            gdprintk(XENLOG_WARNING,
+                     "Leaking mfn %" PRI_pfn "\n", page_to_mfn(page));
     }
 }
 
@@ -2309,10 +2325,11 @@ static int alloc_page_type(struct page_info *page, 
unsigned long type,
         break;
     default:
         ASSERT(rc < 0);
-        MEM_LOG("Error while validating mfn %lx (pfn %lx) for type %"
-                PRtype_info ": caf=%08lx taf=%" PRtype_info,
-                page_to_mfn(page), get_gpfn_from_mfn(page_to_mfn(page)),
-                type, page->count_info, page->u.inuse.type_info);
+        gdprintk(XENLOG_WARNING, "Error while validating mfn %" PRI_mfn
+                 " (pfn %" PRI_pfn ") for type %" PRtype_info
+                 ": caf=%08lx taf=%" PRtype_info "\n",
+                 page_to_mfn(page), get_gpfn_from_mfn(page_to_mfn(page)),
+                 type, page->count_info, page->u.inuse.type_info);
         if ( page != current->arch.old_guest_table )
             page->u.inuse.type_info = 0;
         else
@@ -2376,7 +2393,8 @@ int free_page_type(struct page_info *page, unsigned long 
type,
         rc = free_l4_table(page);
         break;
     default:
-        MEM_LOG("type %lx pfn %lx\n", type, page_to_mfn(page));
+        gdprintk(XENLOG_WARNING, "type %" PRtype_info " mfn %" PRI_mfn "\n",
+                 type, page_to_mfn(page));
         rc = -EINVAL;
         BUG();
     }
@@ -2500,7 +2518,9 @@ static int __get_page_type(struct page_info *page, 
unsigned long type,
         nx = x + 1;
         if ( unlikely((nx & PGT_count_mask) == 0) )
         {
-            MEM_LOG("Type count overflow on pfn %lx", page_to_mfn(page));
+            gdprintk(XENLOG_WARNING,
+                     "Type count overflow on mfn %"PRI_mfn"\n",
+                     page_to_mfn(page));
             return -EINVAL;
         }
         else if ( unlikely((x & PGT_count_mask) == 0) )
@@ -2564,10 +2584,11 @@ static int __get_page_type(struct page_info *page, 
unsigned long type,
             if ( ((x & PGT_type_mask) == PGT_l4_page_table) &&
                  (type == PGT_l3_page_table) )
                 return -EINVAL;
-            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)));
+            gdprintk(XENLOG_WARNING,
+                     "Bad type (saw %" PRtype_info " != exp %" PRtype_info ") "
+                     "for mfn %" PRI_mfn " (pfn %" PRI_pfn ")\n",
+                     x, type, page_to_mfn(page),
+                     get_gpfn_from_mfn(page_to_mfn(page)));
             return -EINVAL;
         }
         else if ( unlikely(!(x & PGT_validated)) )
@@ -2695,8 +2716,9 @@ static int mark_superpage(struct spage_info *spage, 
struct domain *d)
         nx = x + 1;
         if ( (x & SGT_type_mask) == SGT_mark )
         {
-            MEM_LOG("Duplicate superpage mark attempt mfn %lx",
-                    spage_to_mfn(spage));
+            gdprintk(XENLOG_WARNING,
+                     "Duplicate superpage mark attempt mfn %" PRI_mfn "\n",
+                     spage_to_mfn(spage));
             if ( pages_done )
                 put_spage_pages(spage_to_page(spage));
             return -EINVAL;
@@ -2713,8 +2735,9 @@ static int mark_superpage(struct spage_info *spage, 
struct domain *d)
         {
             if ( !get_spage_pages(spage_to_page(spage), d) )
             {
-                MEM_LOG("Superpage type conflict in mark attempt mfn %lx",
-                        spage_to_mfn(spage));
+                gdprintk(XENLOG_WARNING,
+                         "Superpage type conflict in mark attempt mfn %" 
PRI_mfn "\n",
+                         spage_to_mfn(spage));
                 return -EINVAL;
             }
             pages_done = 1;
@@ -2738,8 +2761,9 @@ static int unmark_superpage(struct spage_info *spage)
         nx = x - 1;
         if ( (x & SGT_type_mask) != SGT_mark )
         {
-            MEM_LOG("Attempt to unmark unmarked superpage mfn %lx",
-                    spage_to_mfn(spage));
+            gdprintk(XENLOG_WARNING,
+                     "Attempt to unmark unmarked superpage mfn %" PRI_mfn "\n",
+                     spage_to_mfn(spage));
             return -EINVAL;
         }
         if ( (nx & SGT_count_mask) == 0 )
@@ -2800,8 +2824,9 @@ int get_superpage(unsigned long mfn, struct domain *d)
         {
             if ( !get_spage_pages(spage_to_page(spage), d) )
             {
-                MEM_LOG("Type conflict on superpage mapping mfn %lx",
-                        spage_to_mfn(spage));
+                gdprintk(XENLOG_WARNING,
+                         "Type conflict on superpage mapping mfn %" PRI_mfn 
"\n",
+                         spage_to_mfn(spage));
                 return -EINVAL;
             }
             pages_done = 1;
@@ -2952,7 +2977,9 @@ int new_guest_cr3(unsigned long mfn)
         case -ERESTART:
             return -ERESTART;
         default:
-            MEM_LOG("Error while installing new compat baseptr %lx", mfn);
+            gdprintk(XENLOG_WARNING,
+                     "Error while installing new compat baseptr %" PRI_mfn 
"\n",
+                     mfn);
             return rc;
         }
 
@@ -2988,7 +3015,8 @@ int new_guest_cr3(unsigned long mfn)
     case -ERESTART:
         return -ERESTART;
     default:
-        MEM_LOG("Error while installing new baseptr %lx", mfn);
+        gdprintk(XENLOG_WARNING,
+                 "Error while installing new baseptr %" PRI_mfn "\n", mfn);
         return rc;
     }
 
@@ -3037,13 +3065,14 @@ static struct domain *get_pg_owner(domid_t domid)
 
     if ( unlikely(domid == curr->domain_id) )
     {
-        MEM_LOG("Cannot specify itself as foreign domain");
+        gdprintk(XENLOG_WARNING, "Cannot specify itself as foreign domain\n");
         goto out;
     }
 
     if ( !is_hvm_domain(curr) && unlikely(paging_mode_translate(curr)) )
     {
-        MEM_LOG("Cannot mix foreign mappings with translated domains");
+        gdprintk(XENLOG_WARNING,
+                 "Cannot mix foreign mappings with translated domains\n");
         goto out;
     }
 
@@ -3058,7 +3087,7 @@ static struct domain *get_pg_owner(domid_t domid)
     default:
         if ( (pg_owner = rcu_lock_domain_by_id(domid)) == NULL )
         {
-            MEM_LOG("Unknown domain '%u'", domid);
+            gdprintk(XENLOG_WARNING, "Unknown domain d%d\n", domid);
             break;
         }
         break;
@@ -3179,7 +3208,6 @@ long do_mmuext_op(
 
         if ( unlikely(__copy_from_guest(&op, uops, 1) != 0) )
         {
-            MEM_LOG("Bad __copy_from_guest");
             rc = -EFAULT;
             break;
         }
@@ -3195,7 +3223,6 @@ long do_mmuext_op(
             case MMUEXT_UNPIN_TABLE:
                 break;
             default:
-                MEM_LOG("Invalid extended pt command %#x", op.cmd);
                 rc = -EOPNOTSUPP;
                 goto done;
             }
@@ -3245,7 +3272,8 @@ long do_mmuext_op(
                 if ( rc == -EINTR )
                     rc = -ERESTART;
                 else if ( rc != -ERESTART )
-                    MEM_LOG("Error %d while pinning mfn %lx",
+                    gdprintk(XENLOG_WARNING,
+                             "Error %d while pinning mfn %" PRI_mfn "\n",
                             rc, page_to_mfn(page));
                 if ( page != curr->arch.old_guest_table )
                     put_page(page);
@@ -3256,7 +3284,8 @@ long do_mmuext_op(
             if ( !rc && unlikely(test_and_set_bit(_PGT_pinned,
                                                   &page->u.inuse.type_info)) )
             {
-                MEM_LOG("Mfn %lx already pinned", page_to_mfn(page));
+                gdprintk(XENLOG_WARNING,
+                         "mfn %" PRI_mfn " already pinned\n", 
page_to_mfn(page));
                 rc = -EINVAL;
             }
 
@@ -3297,7 +3326,9 @@ long do_mmuext_op(
             page = get_page_from_gfn(pg_owner, op.arg1.mfn, NULL, P2M_ALLOC);
             if ( unlikely(!page) )
             {
-                MEM_LOG("Mfn %lx bad domain", op.arg1.mfn);
+                gdprintk(XENLOG_WARNING,
+                         "mfn %" PRI_mfn " bad, or bad owner d%d\n",
+                         op.arg1.mfn, pg_owner->domain_id);
                 rc = -EINVAL;
                 break;
             }
@@ -3305,7 +3336,8 @@ long do_mmuext_op(
             if ( !test_and_clear_bit(_PGT_pinned, &page->u.inuse.type_info) )
             {
                 put_page(page);
-                MEM_LOG("Mfn %lx not pinned", op.arg1.mfn);
+                gdprintk(XENLOG_WARNING,
+                         "mfn %" PRI_mfn " not pinned\n", op.arg1.mfn);
                 rc = -EINVAL;
                 break;
             }
@@ -3369,8 +3401,9 @@ long do_mmuext_op(
                     if ( rc == -EINTR )
                         rc = -ERESTART;
                     else if ( rc != -ERESTART )
-                        MEM_LOG("Error %d while installing new mfn %lx",
-                                rc, op.arg1.mfn);
+                        gdprintk(XENLOG_WARNING,
+                                 "Error %d installing new mfn %" PRI_mfn "\n",
+                                 rc, op.arg1.mfn);
                     break;
                 }
                 if ( VM_ASSIST(d, m2p_strict) && !paging_mode_refcounts(d) )
@@ -3457,14 +3490,9 @@ long do_mmuext_op(
             if ( unlikely(d != pg_owner) )
                 rc = -EPERM;
             else if ( unlikely(!cache_flush_permitted(d)) )
-            {
-                MEM_LOG("Non-physdev domain tried to FLUSH_CACHE.");
                 rc = -EACCES;
-            }
             else
-            {
                 wbinvd();
-            }
             break;
 
         case MMUEXT_FLUSH_CACHE_GLOBAL:
@@ -3483,10 +3511,7 @@ long do_mmuext_op(
                 flush_mask(mask, FLUSH_CACHE);
             }
             else
-            {
-                MEM_LOG("Non-physdev domain tried to FLUSH_CACHE_GLOBAL");
                 rc = -EINVAL;
-            }
             break;
 
         case MMUEXT_SET_LDT:
@@ -3497,14 +3522,12 @@ long do_mmuext_op(
             if ( unlikely(d != pg_owner) )
                 rc = -EPERM;
             else if ( paging_mode_external(d) )
-            {
-                MEM_LOG("ignoring SET_LDT hypercall from external domain");
                 rc = -EINVAL;
-            }
             else if ( ((ptr & (PAGE_SIZE - 1)) != 0) || !__addr_ok(ptr) ||
                       (ents > 8192) )
             {
-                MEM_LOG("Bad args to SET_LDT: ptr=%lx, ents=%x", ptr, ents);
+                gdprintk(XENLOG_WARNING,
+                         "Bad args to SET_LDT: ptr=%lx, ents=%x\n", ptr, ents);
                 rc = -EINVAL;
             }
             else if ( (curr->arch.pv_vcpu.ldt_ents != ents) ||
@@ -3527,7 +3550,8 @@ long do_mmuext_op(
             {
                 if ( page )
                     put_page(page);
-                MEM_LOG("Error while clearing mfn %lx", op.arg1.mfn);
+                gdprintk(XENLOG_WARNING,
+                         "Error clearing mfn %" PRI_mfn "\n", op.arg1.mfn);
                 rc = -EINVAL;
                 break;
             }
@@ -3549,7 +3573,9 @@ long do_mmuext_op(
                                          P2M_ALLOC);
             if ( unlikely(!src_page) )
             {
-                MEM_LOG("Error while copying from mfn %lx", op.arg2.src_mfn);
+                gdprintk(XENLOG_WARNING,
+                         "Error copying from mfn %" PRI_mfn "\n",
+                         op.arg2.src_mfn);
                 rc = -EINVAL;
                 break;
             }
@@ -3563,7 +3589,8 @@ long do_mmuext_op(
                 put_page(src_page);
                 if ( dst_page )
                     put_page(dst_page);
-                MEM_LOG("Error while copying to mfn %lx", op.arg1.mfn);
+                gdprintk(XENLOG_WARNING,
+                         "Error copying to mfn %" PRI_mfn "\n", op.arg1.mfn);
                 break;
             }
 
@@ -3584,15 +3611,13 @@ long do_mmuext_op(
             unsigned long mfn = op.arg1.mfn;
 
             if ( !opt_allow_superpage )
-            {
-                MEM_LOG("Superpages disallowed");
                 rc = -EOPNOTSUPP;
-            }
             else if ( unlikely(d != pg_owner) )
                 rc = -EPERM;
             else if ( mfn & (L1_PAGETABLE_ENTRIES - 1) )
             {
-                MEM_LOG("Unaligned superpage reference mfn %lx", mfn);
+                gdprintk(XENLOG_WARNING,
+                         "Unaligned superpage mfn %" PRI_mfn "\n", mfn);
                 rc = -EINVAL;
             }
             else if ( !mfn_valid(_mfn(mfn | (L1_PAGETABLE_ENTRIES - 1))) )
@@ -3605,7 +3630,6 @@ long do_mmuext_op(
         }
 
         default:
-            MEM_LOG("Invalid extended pt command %#x", op.cmd);
             rc = -ENOSYS;
             break;
         }
@@ -3734,7 +3758,6 @@ long do_mmu_update(
 
         if ( unlikely(__copy_from_guest(&req, ureqs, 1) != 0) )
         {
-            MEM_LOG("Bad __copy_from_guest");
             rc = -EFAULT;
             break;
         }
@@ -3787,7 +3810,8 @@ long do_mmu_update(
 
             if ( unlikely(!page) )
             {
-                MEM_LOG("Could not get page for normal update");
+                gdprintk(XENLOG_WARNING,
+                         "Could not get page for normal update\n");
                 break;
             }
 
@@ -3904,7 +3928,8 @@ long do_mmu_update(
 
             if ( unlikely(!get_page_from_pagenr(mfn, pg_owner)) )
             {
-                MEM_LOG("Could not get page for mach->phys update");
+                gdprintk(XENLOG_WARNING,
+                         "Could not get page for mach->phys update\n");
                 rc = -EINVAL;
                 break;
             }
@@ -3917,7 +3942,7 @@ long do_mmu_update(
             break;
 
         default:
-            MEM_LOG("Invalid page update command %x", cmd);
+            gdprintk(XENLOG_WARNING, "Invalid page update command %#x\n", cmd);
             rc = -ENOSYS;
             break;
         }
@@ -3989,7 +4014,7 @@ static int create_grant_pte_mapping(
 
     if ( unlikely(!page) )
     {
-        MEM_LOG("Could not get page for normal update");
+        gdprintk(XENLOG_WARNING, "Could not get page for normal update\n");
         return GNTST_general_error;
     }
     
@@ -4044,7 +4069,7 @@ static int destroy_grant_pte_mapping(
 
     if ( unlikely(!page) )
     {
-        MEM_LOG("Could not get page for normal update");
+        gdprintk(XENLOG_WARNING, "Could not get page for normal update\n");
         return GNTST_general_error;
     }
     
@@ -4071,8 +4096,9 @@ static int destroy_grant_pte_mapping(
     if ( unlikely(l1e_get_pfn(ol1e) != frame) )
     {
         page_unlock(page);
-        MEM_LOG("PTE entry %lx for address %"PRIx64" doesn't match frame %lx",
-                (unsigned long)l1e_get_intpte(ol1e), addr, frame);
+        gdprintk(XENLOG_WARNING,
+                 "PTE entry %lx for address %"PRIx64" doesn't match frame 
%lx\n",
+                 (unsigned long)l1e_get_intpte(ol1e), addr, frame);
         rc = GNTST_general_error;
         goto failed;
     }
@@ -4085,7 +4111,7 @@ static int destroy_grant_pte_mapping(
                    0)) )
     {
         page_unlock(page);
-        MEM_LOG("Cannot delete PTE entry at %p", va);
+        gdprintk(XENLOG_WARNING, "Cannot delete PTE entry at %p\n", va);
         rc = GNTST_general_error;
         goto failed;
     }
@@ -4113,7 +4139,7 @@ static int create_grant_va_mapping(
     pl1e = guest_map_l1e(va, &gl1mfn);
     if ( !pl1e )
     {
-        MEM_LOG("Could not find L1 PTE for address %lx", va);
+        gdprintk(XENLOG_WARNING, "Could not find L1 PTE for address %lx\n", 
va);
         return GNTST_general_error;
     }
 
@@ -4163,7 +4189,7 @@ static int replace_grant_va_mapping(
     pl1e = guest_map_l1e(addr, &gl1mfn);
     if ( !pl1e )
     {
-        MEM_LOG("Could not find L1 PTE for address %lx", addr);
+        gdprintk(XENLOG_WARNING, "Could not find L1 PTE for address %lx\n", 
addr);
         return GNTST_general_error;
     }
 
@@ -4192,8 +4218,9 @@ static int replace_grant_va_mapping(
     /* Check that the virtual address supplied is actually mapped to frame. */
     if ( unlikely(l1e_get_pfn(ol1e) != frame) )
     {
-        MEM_LOG("PTE entry %lx for address %lx doesn't match frame %lx",
-                l1e_get_pfn(ol1e), addr, frame);
+        gdprintk(XENLOG_WARNING,
+                 "PTE entry %lx for address %lx doesn't match frame %lx\n",
+                 l1e_get_pfn(ol1e), addr, frame);
         rc = GNTST_general_error;
         goto unlock_and_out;
     }
@@ -4201,7 +4228,7 @@ static int replace_grant_va_mapping(
     /* Delete pagetable entry. */
     if ( unlikely(!UPDATE_ENTRY(l1, pl1e, ol1e, nl1e, gl1mfn, v, 0)) )
     {
-        MEM_LOG("Cannot delete PTE entry at %p", (unsigned long *)pl1e);
+        gdprintk(XENLOG_WARNING, "Cannot delete PTE entry at %p\n", pl1e);
         rc = GNTST_general_error;
         goto unlock_and_out;
     }
@@ -4289,8 +4316,9 @@ static int replace_grant_p2m_mapping(
     if ( !p2m_is_grant(type) || mfn_x(old_mfn) != frame )
     {
         put_gfn(d, gfn);
-        MEM_LOG("replace_grant_p2m_mapping: old mapping invalid (type %d, mfn 
%lx, frame %lx)",
-                type, mfn_x(old_mfn), frame);
+        gdprintk(XENLOG_WARNING,
+                 "old mapping invalid (type %d, mfn %" PRI_mfn ", frame 
%lx)\n",
+                 type, mfn_x(old_mfn), frame);
         return GNTST_general_error;
     }
     guest_physmap_remove_page(d, _gfn(gfn), _mfn(frame), PAGE_ORDER_4K);
@@ -4316,7 +4344,6 @@ int replace_grant_host_mapping(
         if ( !new_addr )
             return destroy_grant_pte_mapping(addr, frame, curr->domain);
         
-        MEM_LOG("Unsupported grant table operation");
         return GNTST_general_error;
     }
 
@@ -4326,8 +4353,8 @@ int replace_grant_host_mapping(
     pl1e = guest_map_l1e(new_addr, &gl1mfn);
     if ( !pl1e )
     {
-        MEM_LOG("Could not find L1 PTE for address %lx",
-                (unsigned long)new_addr);
+        gdprintk(XENLOG_WARNING,
+                 "Could not find L1 PTE for address %"PRIx64"\n", new_addr);
         return GNTST_general_error;
     }
 
@@ -4360,7 +4387,7 @@ int replace_grant_host_mapping(
     {
         page_unlock(l1pg);
         put_page(l1pg);
-        MEM_LOG("Cannot delete PTE entry at %p", (unsigned long *)pl1e);
+        gdprintk(XENLOG_WARNING, "Cannot delete PTE entry at %p\n", pl1e);
         guest_unmap_l1e(pl1e);
         return GNTST_general_error;
     }
@@ -4408,10 +4435,11 @@ int donate_page(
 
  fail:
     spin_unlock(&d->page_alloc_lock);
-    MEM_LOG("Bad donate %lx: ed=%d sd=%d caf=%08lx taf=%" PRtype_info,
-            page_to_mfn(page), d->domain_id,
-            owner ? owner->domain_id : DOMID_INVALID,
-            page->count_info, page->u.inuse.type_info);
+    gdprintk(XENLOG_WARNING, "Bad donate mfn %" PRI_mfn
+             " to d%d (owner d%d) caf=%08lx taf=%" PRtype_info "\n",
+             page_to_mfn(page), d->domain_id,
+             owner ? owner->domain_id : DOMID_INVALID,
+             page->count_info, page->u.inuse.type_info);
     return -1;
 }
 
@@ -4459,10 +4487,11 @@ int steal_page(
 
  fail:
     spin_unlock(&d->page_alloc_lock);
-    MEM_LOG("Bad page %lx: ed=%d sd=%d caf=%08lx taf=%" PRtype_info,
-            page_to_mfn(page), d->domain_id,
-            owner ? owner->domain_id : DOMID_INVALID,
-            page->count_info, page->u.inuse.type_info);
+    gdprintk(XENLOG_WARNING, "Bad steal mfn %" PRI_mfn
+             " from d%d (owner d%d) caf=%08lx taf=%" PRtype_info "\n",
+             page_to_mfn(page), d->domain_id,
+             owner ? owner->domain_id : DOMID_INVALID,
+             page->count_info, page->u.inuse.type_info);
     return -1;
 }
 
@@ -5193,8 +5222,8 @@ static int ptwr_emulated_update(
     /* Only allow naturally-aligned stores within the original %cr2 page. */
     if ( unlikely(((addr^ptwr_ctxt->cr2) & PAGE_MASK) || (addr & (bytes-1))) )
     {
-        MEM_LOG("ptwr_emulate: bad access (cr2=%lx, addr=%lx, bytes=%u)",
-                ptwr_ctxt->cr2, addr, bytes);
+        gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
+                 ptwr_ctxt->cr2, addr, bytes);
         return X86EMUL_UNHANDLEABLE;
     }
 
@@ -5256,7 +5285,7 @@ static int ptwr_emulated_update(
         }
         else
         {
-            MEM_LOG("ptwr_emulate: could not get_page_from_l1e()");
+            gdprintk(XENLOG_WARNING, "could not get_page_from_l1e()\n");
             return X86EMUL_UNHANDLEABLE;
         }
         break;
@@ -5318,8 +5347,8 @@ static int ptwr_emulated_write(
 
     if ( (bytes > sizeof(paddr_t)) || (bytes & (bytes - 1)) || !bytes )
     {
-        MEM_LOG("ptwr_emulate: bad write size (addr=%lx, bytes=%u)",
-                offset, bytes);
+        gdprintk(XENLOG_WARNING, "bad write size (addr=%lx, bytes=%u)\n",
+                 offset, bytes);
         return X86EMUL_UNHANDLEABLE;
     }
 
@@ -5342,8 +5371,8 @@ static int ptwr_emulated_cmpxchg(
 
     if ( (bytes > sizeof(paddr_t)) || (bytes & (bytes -1)) )
     {
-        MEM_LOG("ptwr_emulate: bad cmpxchg size (addr=%lx, bytes=%u)",
-                offset, bytes);
+        gdprintk(XENLOG_WARNING, "bad cmpxchg size (addr=%lx, bytes=%u)\n",
+                 offset, bytes);
         return X86EMUL_UNHANDLEABLE;
     }
 
@@ -5471,7 +5500,7 @@ int mmio_ro_emulated_write(
     if ( ((bytes | offset) & (bytes - 1)) || !bytes ||
          offset != mmio_ro_ctxt->cr2 )
     {
-        MEM_LOG("mmio_ro_emulate: bad access (cr2=%lx, addr=%lx, bytes=%u)",
+        gdprintk(XENLOG_WARNING, "bad access (cr2=%lx, addr=%lx, bytes=%u)\n",
                 mmio_ro_ctxt->cr2, offset, bytes);
         return X86EMUL_UNHANDLEABLE;
     }
@@ -5503,7 +5532,7 @@ int mmcfg_intercept_write(
     if ( ((bytes | offset) & (bytes - 1)) || bytes > 4 || !bytes ||
          offset != mmio_ctxt->cr2 )
     {
-        MEM_LOG("mmcfg_intercept: bad write (cr2=%lx, addr=%lx, bytes=%u)",
+        gdprintk(XENLOG_WARNING, "bad write (cr2=%lx, addr=%lx, bytes=%u)\n",
                 mmio_ctxt->cr2, offset, bytes);
         return X86EMUL_UNHANDLEABLE;
     }
-- 
2.1.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.