|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 2/4] dbg_rw_guest_mem: Enable debug log output
This also fixes the old debug output to compile and work if DBGP1
and DBGP2 are defined like DBGP3.
Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx>
---
xen/arch/x86/debug.c | 41 +++++++++++++++++++++++++++++++----------
1 file changed, 31 insertions(+), 10 deletions(-)
diff --git a/xen/arch/x86/debug.c b/xen/arch/x86/debug.c
index eceb805..2e0a05a 100644
--- a/xen/arch/x86/debug.c
+++ b/xen/arch/x86/debug.c
@@ -41,6 +41,12 @@
#define DBGP2(...) ((void)0)
#endif
+#ifdef XEN_GDBSX_DEBUG3
+#define DBGP3(...) gdprintk(XENLOG_DEBUG, __VA_ARGS__)
+#else
+#define DBGP3(...) ((void)0)
+#endif
+
/* Returns: mfn for the given (hvm guest) vaddr */
static unsigned long
dbg_hvm_va2mfn(dbgva_t vaddr, struct domain *dp, int toaddr,
@@ -60,6 +66,7 @@ dbg_hvm_va2mfn(dbgva_t vaddr, struct domain *dp, int toaddr,
}
mfn = mfn_x(get_gfn(dp, *gfn, &gfntype));
+ DBGP3("L: vaddr:%lx domid:%d mfn:%lx\n", vaddr, dp->domain_id, mfn);
if ( p2m_is_readonly(gfntype) && toaddr )
{
DBGP2("kdb:p2m_is_readonly: gfntype:%x\n", gfntype);
@@ -102,8 +109,8 @@ dbg_pv_va2mfn(dbgva_t vaddr, struct domain *dp, uint64_t
pgd3val)
l4e = l4t[l4_table_offset(vaddr)];
unmap_domain_page(l4t);
mfn = l4e_get_pfn(l4e);
- DBGP2("l4t:%p l4to:%lx l4e:%lx mfn:%lx\n", l4t,
- l4_table_offset(vaddr), l4e, mfn);
+ DBGP2("l4t:%p l4to:%lx l4e:%" PRIpte " mfn:%lx\n",
+ l4t, l4_table_offset(vaddr), l4e_get_intpte(l4e), mfn);
if ( !(l4e_get_flags(l4e) & _PAGE_PRESENT) )
{
DBGP1("l4 PAGE not present. vaddr:%lx cr3:%lx\n", vaddr, cr3);
@@ -114,8 +121,8 @@ dbg_pv_va2mfn(dbgva_t vaddr, struct domain *dp, uint64_t
pgd3val)
l3e = l3t[l3_table_offset(vaddr)];
unmap_domain_page(l3t);
mfn = l3e_get_pfn(l3e);
- DBGP2("l3t:%p l3to:%lx l3e:%lx mfn:%lx\n", l3t,
- l3_table_offset(vaddr), l3e, mfn);
+ DBGP2("l3t:%p l3to:%lx l3e:%" PRIpte " mfn:%lx\n",
+ l3t, l3_table_offset(vaddr), l3e_get_intpte(l3e), mfn);
if ( !(l3e_get_flags(l3e) & _PAGE_PRESENT) ||
(l3e_get_flags(l3e) & _PAGE_PSE) )
{
@@ -128,8 +135,8 @@ dbg_pv_va2mfn(dbgva_t vaddr, struct domain *dp, uint64_t
pgd3val)
l2e = l2t[l2_table_offset(vaddr)];
unmap_domain_page(l2t);
mfn = l2e_get_pfn(l2e);
- DBGP2("l2t:%p l2to:%lx l2e:%lx mfn:%lx\n", l2t, l2_table_offset(vaddr),
- l2e, mfn);
+ DBGP2("l2t:%p l2to:%lx l2e:%" PRIpte " mfn:%lx\n",
+ l2t, l2_table_offset(vaddr), l2e_get_intpte(l2e), mfn);
if ( !(l2e_get_flags(l2e) & _PAGE_PRESENT) ||
(l2e_get_flags(l2e) & _PAGE_PSE) )
{
@@ -140,8 +147,8 @@ dbg_pv_va2mfn(dbgva_t vaddr, struct domain *dp, uint64_t
pgd3val)
l1e = l1t[l1_table_offset(vaddr)];
unmap_domain_page(l1t);
mfn = l1e_get_pfn(l1e);
- DBGP2("l1t:%p l1to:%lx l1e:%lx mfn:%lx\n", l1t, l1_table_offset(vaddr),
- l1e, mfn);
+ DBGP2("l1t:%p l1to:%lx l1e:%" PRIpte " mfn:%lx\n",
+ l1t, l1_table_offset(vaddr), l1e_get_intpte(l1e), mfn);
return mfn_valid(mfn) ? mfn : INVALID_MFN;
}
@@ -162,8 +169,11 @@ dbg_rw_guest_mem(dbgva_t addr, dbgbyte_t *buf, int len,
struct domain *dp,
? dbg_hvm_va2mfn(addr, dp, toaddr, &gfn)
: dbg_pv_va2mfn(addr, dp, pgd3));
if ( mfn == INVALID_MFN ) {
- if ( gfn != INVALID_GFN )
+ if ( gfn != INVALID_GFN ) {
put_gfn(dp, gfn);
+ DBGP3("R: addr:%lx pagecnt=%ld domid:%d mfn:%lx\n",
+ addr, pagecnt, dp->domain_id, mfn);
+ }
break;
}
@@ -181,8 +191,11 @@ dbg_rw_guest_mem(dbgva_t addr, dbgbyte_t *buf, int len,
struct domain *dp,
}
unmap_domain_page(va);
- if ( gfn != INVALID_GFN )
+ if ( gfn != INVALID_GFN ) {
put_gfn(dp, gfn);
+ DBGP3("R: addr:%lx pagecnt=%ld domid:%d mfn:%lx\n",
+ addr, pagecnt, dp->domain_id, mfn);
+ }
addr += pagecnt;
buf += pagecnt;
@@ -226,3 +239,11 @@ dbg_rw_mem(dbgva_t addr, dbgbyte_t *buf, int len, domid_t
domid, int toaddr,
return len;
}
+/*
+ * Local variables:
+ * mode: C
+ * c-file-style: "BSD"
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
--
1.8.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |