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

[Xen-devel] [RFC PATCH v2 14/14] debug hacks



From: David Woodhouse <dwmw@xxxxxxxxxxxx>

---
 xen/common/lu/restore.c | 7 +++++++
 xen/common/lu/stream.c  | 2 ++
 xen/common/page_alloc.c | 6 ++++++
 3 files changed, 15 insertions(+)

diff --git a/xen/common/lu/restore.c b/xen/common/lu/restore.c
index 7f40513ef9..fa168bdac1 100644
--- a/xen/common/lu/restore.c
+++ b/xen/common/lu/restore.c
@@ -31,6 +31,13 @@ void lu_reserve_pages(paddr_t mfns_p, int nr_pages)
        }
 
     /* XX: Consume the stream of data and mark all domain pages as allocated 
too. */
+
+    printk("First live update data page at MFN %lx:\n", mfns[0]);
+    p = mfn_to_virt(mfns[0]);
+    map_pages_to_xen((unsigned long)p, mfns[0], 1, PAGE_HYPERVISOR);
+    for (i = 0; i < 16; i++)
+        printk(" %02x", p[i]);
+    printk("\n");
 }
 
 /*
diff --git a/xen/common/lu/stream.c b/xen/common/lu/stream.c
index 52030e8b2e..327c0396ff 100644
--- a/xen/common/lu/stream.c
+++ b/xen/common/lu/stream.c
@@ -65,6 +65,7 @@ static int lu_stream_extend(struct lu_stream *stream, int 
nr_pages)
        if (stream->data)
                vunmap(stream->data);
        stream->data = vmap(stream->pagelist, stream->nr_pages);
+       printk("Mapped %d MFNs at %lx to %p\n", stream->nr_pages, 
stream->pagelist[0], stream->data);
        if (!stream->data)
                return -ENOMEM;
 
@@ -91,6 +92,7 @@ int lu_stream_append(struct lu_stream *stream, void *data, 
size_t size)
        void *p = lu_stream_reserve(stream, size);
        if (!p)
                return -ENOMEM;
+       printk("Copy %ld starting %02x to %p\n", size, *(unsigned char *)data, 
p);
        memcpy(p, data, size);
        lu_stream_end_reservation(stream, size);
 
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 2a20c12abb..a3668a517f 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -1765,7 +1765,10 @@ static unsigned long contig_avail_pages(struct page_info 
*pg, unsigned long max_
     for ( i = 0 ; i < max_pages; i++)
     {
         if ( pg[i].count_info & (PGC_broken | PGC_allocated) )
+        {
+            printk("Skipping reserved MFN %lx\n", mfn_x(page_to_mfn(&pg[i])));
             break;
+        }
     }
     return i;
 }
@@ -1814,7 +1817,10 @@ static void init_heap_pages(
         /* If the (first) page is already marked bad, or allocated in advance
          * due to live update, don't add it to the heap. */
         if (pg[i].count_info & (PGC_broken | PGC_allocated))
+        {
+            printk("Skipping reserved MFN %lx\n", mfn_x(page_to_mfn(&pg[i])));
             continue;
+        }
 
         if ( unlikely(!avail[nid]) )
         {
-- 
2.21.0


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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