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

[Xen-devel] [PATCH 1/2] introduce gprintk()



... and convert several gdprintk()-s to it, as the next patch will make
them no-ops in non-debug builds.

Note that as a non-debug facility this does not print file name and
line number of the origin, to people are expected to use meaningful and
easily distinguishable messages (i.e. just like with plain printk()).

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
---
Note: ARM code was not touched.

--- a/xen/arch/x86/domain.c
+++ b/xen/arch/x86/domain.c
@@ -1245,8 +1245,8 @@ static void load_segments(struct vcpu *n
                  put_user(uregs->es,           esp-6) |
                  put_user(uregs->ds,           esp-7) )
             {
-                gdprintk(XENLOG_ERR, "Error while creating compat "
-                         "failsafe callback frame.\n");
+                gprintk(XENLOG_ERR,
+                        "error while creating compat failsafe callback 
frame\n");
                 domain_crash(n->domain);
             }
 
@@ -1287,8 +1287,8 @@ static void load_segments(struct vcpu *n
              put_user(regs->r11,           rsp-10) |
              put_user(regs->rcx,           rsp-11) )
         {
-            gdprintk(XENLOG_ERR, "Error while creating failsafe "
-                    "callback frame.\n");
+            gprintk(XENLOG_ERR,
+                    "error while creating failsafe callback frame\n");
             domain_crash(n->domain);
         }
 
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -2612,17 +2612,15 @@ bool_t hvm_send_assist_req(struct hvm_io
 
             if ( unlikely(p->state != STATE_IOREQ_NONE) )
             {
-                gdprintk(XENLOG_ERR,
-                         "Device model set bad IO state %d.\n",
-                         p->state);
+                gprintk(XENLOG_ERR, "device model set bad IO state %d\n",
+                        p->state);
                 goto crash;
             }
 
             if ( unlikely(p->vp_eport != port) )
             {
-                gdprintk(XENLOG_ERR,
-                         "Device model set bad event channel %d.\n",
-                         p->vp_eport);
+                gprintk(XENLOG_ERR, "device model set bad event channel %d\n",
+                        p->vp_eport);
                 goto crash;
             }
 
@@ -2720,9 +2718,9 @@ void hvm_triple_fault(void)
     struct domain *d = v->domain;
     u8 reason = d->arch.hvm_domain.params[HVM_PARAM_TRIPLE_FAULT_REASON];
 
-    gdprintk(XENLOG_INFO, "Triple fault on VCPU%d - "
-             "invoking HVM shutdown action %"PRIu8".\n",
-             v->vcpu_id, reason);
+    gprintk(XENLOG_INFO,
+            "Triple fault - invoking HVM shutdown action %d\n",
+            reason);
     domain_shutdown(d, reason);
 }
 
--- a/xen/arch/x86/hvm/vmx/vmx.c
+++ b/xen/arch/x86/hvm/vmx/vmx.c
@@ -2473,21 +2473,21 @@ static void ept_handle_violation(unsigne
 
     /* Everything else is an error. */
     mfn = get_gfn_query_unlocked(d, gfn, &p2mt);
-    gdprintk(XENLOG_ERR, "EPT violation %#lx (%c%c%c/%c%c%c), "
-             "gpa %#"PRIpaddr", mfn %#lx, type %i.\n", 
-             qualification, 
-             (qualification & EPT_READ_VIOLATION) ? 'r' : '-',
-             (qualification & EPT_WRITE_VIOLATION) ? 'w' : '-',
-             (qualification & EPT_EXEC_VIOLATION) ? 'x' : '-',
-             (qualification & EPT_EFFECTIVE_READ) ? 'r' : '-',
-             (qualification & EPT_EFFECTIVE_WRITE) ? 'w' : '-',
-             (qualification & EPT_EFFECTIVE_EXEC) ? 'x' : '-',
-             gpa, mfn_x(mfn), p2mt);
+    gprintk(XENLOG_ERR,
+            "EPT violation %#lx (%c%c%c/%c%c%c) gpa %#"PRIpaddr" mfn %#lx type 
%i\n",
+            qualification,
+            (qualification & EPT_READ_VIOLATION) ? 'r' : '-',
+            (qualification & EPT_WRITE_VIOLATION) ? 'w' : '-',
+            (qualification & EPT_EXEC_VIOLATION) ? 'x' : '-',
+            (qualification & EPT_EFFECTIVE_READ) ? 'r' : '-',
+            (qualification & EPT_EFFECTIVE_WRITE) ? 'w' : '-',
+            (qualification & EPT_EFFECTIVE_EXEC) ? 'x' : '-',
+            gpa, mfn_x(mfn), p2mt);
 
     ept_walk_table(d, gfn);
 
     if ( qualification & EPT_GLA_VALID )
-        gdprintk(XENLOG_ERR, " --- GLA %#lx\n", gla);
+        gprintk(XENLOG_ERR, " --- GLA %#lx\n", gla);
 
     domain_crash(d);
 }
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -1997,11 +1997,10 @@ int get_page(struct page_info *page, str
         put_page(page);
 
     if ( !paging_mode_refcounts(domain) && !domain->is_dying )
-        gdprintk(XENLOG_INFO,
-                 "Error pfn %lx: rd=%p, od=%p, caf=%08lx, taf=%"
-                 PRtype_info "\n",
-                 page_to_mfn(page), domain, owner,
-                 page->count_info, page->u.inuse.type_info);
+        gprintk(XENLOG_INFO,
+                "Error pfn %lx: rd=%p, od=%p, caf=%08lx, taf=%" PRtype_info 
"\n",
+                page_to_mfn(page), domain, owner,
+                page->count_info, page->u.inuse.type_info);
     return 0;
 }
 
@@ -4042,9 +4041,8 @@ static int replace_grant_p2m_mapping(
     if ( !p2m_is_grant(type) || mfn_x(old_mfn) != frame )
     {
         put_gfn(d, gfn);
-        gdprintk(XENLOG_WARNING,
-                 "replace_grant_p2m_mapping: old mapping invalid (type %d, mfn 
%lx, frame %lx)\n",
-                 type, mfn_x(old_mfn), frame);
+        MEM_LOG("replace_grant_p2m_mapping: old mapping invalid (type %d, mfn 
%lx, frame %lx)",
+                type, mfn_x(old_mfn), frame);
         return GNTST_general_error;
     }
     guest_physmap_remove_page(d, gfn, frame, PAGE_ORDER_4K);
--- a/xen/arch/x86/mm/p2m-ept.c
+++ b/xen/arch/x86/mm/p2m-ept.c
@@ -912,14 +912,13 @@ void ept_walk_table(struct domain *d, un
 
     int i;
 
-    gdprintk(XENLOG_ERR, "Walking EPT tables for domain %d gfn %lx\n",
-           d->domain_id, gfn);
+    gprintk(XENLOG_ERR, "Walking EPT tables for GFN %lx:\n", gfn);
 
     /* This pfn is higher than the highest the p2m map currently holds */
     if ( gfn > p2m->max_mapped_pfn )
     {
-        gdprintk(XENLOG_ERR, " gfn exceeds max_mapped_pfn %lx\n",
-               p2m->max_mapped_pfn);
+        gprintk(XENLOG_ERR, " gfn exceeds max_mapped_pfn %lx\n",
+                p2m->max_mapped_pfn);
         goto out;
     }
 
@@ -932,7 +931,7 @@ void ept_walk_table(struct domain *d, un
         index = gfn_remainder >> (i*EPT_TABLE_ORDER);
         ept_entry = table + index;
 
-        gdprintk(XENLOG_ERR, " epte %"PRIx64"\n", ept_entry->epte);
+        gprintk(XENLOG_ERR, " epte %"PRIx64"\n", ept_entry->epte);
 
         if ( (i == 0) || !is_epte_present(ept_entry) ||
              is_epte_superpage(ept_entry) )
--- a/xen/arch/x86/traps.c
+++ b/xen/arch/x86/traps.c
@@ -519,9 +519,9 @@ static void do_guest_trap(
         tb->flags |= TBF_INTERRUPT;
 
     if ( unlikely(null_trap_bounce(v, tb)) )
-        gdprintk(XENLOG_WARNING, "Unhandled %s fault/trap [#%d] "
-                 "on VCPU %d [ec=%04x]\n",
-                 trapstr(trapnr), trapnr, v->vcpu_id, regs->error_code);
+        gprintk(XENLOG_WARNING,
+                "Unhandled %s fault/trap [#%d, ec=%04x]\n",
+                trapstr(trapnr), trapnr, regs->error_code);
 }
 
 static void instruction_done(
--- a/xen/arch/x86/x86_64/compat/traps.c
+++ b/xen/arch/x86/x86_64/compat/traps.c
@@ -164,7 +164,7 @@ unsigned int compat_iret(void)
     return regs->_eax;
 
  exit_and_crash:
-    gdprintk(XENLOG_ERR, "Fatal error\n");
+    gprintk(XENLOG_ERR, "Fatal IRET error\n");
     domain_crash(v->domain);
     return 0;
 }
--- a/xen/arch/x86/x86_64/traps.c
+++ b/xen/arch/x86/x86_64/traps.c
@@ -291,8 +291,8 @@ unsigned long do_iret(void)
     if ( unlikely(copy_from_user(&iret_saved, (void *)regs->rsp,
                                  sizeof(iret_saved))) )
     {
-        gdprintk(XENLOG_ERR, "Fault while reading IRET context from "
-                "guest stack\n");
+        gprintk(XENLOG_ERR,
+                "Fault while reading IRET context from guest stack\n");
         goto exit_and_crash;
     }
 
@@ -301,8 +301,8 @@ unsigned long do_iret(void)
     {
         if ( unlikely(pagetable_is_null(v->arch.guest_table_user)) )
         {
-            gdprintk(XENLOG_ERR, "Guest switching to user mode with no "
-                    "user page tables\n");
+            gprintk(XENLOG_ERR,
+                    "Guest switching to user mode with no user page tables\n");
             goto exit_and_crash;
         }
         toggle_guest_mode(v);
@@ -331,7 +331,6 @@ unsigned long do_iret(void)
     return iret_saved.rax;
 
  exit_and_crash:
-    gdprintk(XENLOG_ERR, "Fatal error\n");
     domain_crash(v->domain);
     return 0;
 }
--- a/xen/common/event_fifo.c
+++ b/xen/common/event_fifo.c
@@ -74,9 +74,9 @@ static struct evtchn_fifo_queue *lock_ol
         spin_unlock_irqrestore(&old_q->lock, *flags);
     }
 
-    gdprintk(XENLOG_WARNING,
-             "domain %d, port %d lost event (too many queue changes)\n",
-             d->domain_id, evtchn->port);
+    gprintk(XENLOG_WARNING,
+            "dom%d port %d lost event (too many queue changes)\n",
+            d->domain_id, evtchn->port);
     return NULL;
 }          
 
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1645,9 +1645,9 @@ int assign_pages(
         if ( unlikely((d->tot_pages + (1 << order)) > d->max_pages) )
         {
             if ( !opt_tmem || order != 0 || d->tot_pages != d->max_pages )
-                gdprintk(XENLOG_INFO, "Over-allocation for domain %u: "
-                         "%u > %u\n", d->domain_id,
-                         d->tot_pages + (1 << order), d->max_pages);
+                gprintk(XENLOG_INFO, "Over-allocation for domain %u: "
+                        "%u > %u\n", d->domain_id,
+                        d->tot_pages + (1 << order), d->max_pages);
             goto fail;
         }
 
--- a/xen/common/schedule.c
+++ b/xen/common/schedule.c
@@ -1063,9 +1063,8 @@ long do_set_timer_op(s_time_t timeout)
          * timeout in this case can burn a lot of CPU. We therefore go for a
          * reasonable middleground of triggering a timer event in 100ms.
          */
-        gdprintk(XENLOG_INFO,
-                 "Warning: huge timeout set by vcpu %d: %"PRIx64"\n",
-                 v->vcpu_id, (uint64_t)timeout);
+        gprintk(XENLOG_INFO, "Warning: huge timeout set: %"PRIx64"\n",
+                (uint64_t)timeout);
         set_timer(&v->singleshot_timer, NOW() + MILLISECS(100));
     }
     else
--- a/xen/include/xen/lib.h
+++ b/xen/include/xen/lib.h
@@ -84,6 +84,9 @@ extern long vm_assist(struct domain *, u
 extern int __printk_ratelimit(int ratelimit_ms, int ratelimit_burst);
 extern int printk_ratelimit(void);
 
+#define gprintk(lvl, fmt, args...) \
+    printk(XENLOG_GUEST lvl "%pv " fmt, current, ## args)
+
 /* vsprintf.c */
 #define sprintf __xen_has_no_sprintf__
 #define vsprintf __xen_has_no_vsprintf__


Attachment: gprintk.patch
Description: Text document

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

 


Rackspace

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