x86/mm: add temporary debugging code to get_page_from_gfn_p2m()
authorJan Beulich <jbeulich@suse.com>
Mon, 8 May 2017 15:48:32 +0000 (17:48 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 8 May 2017 15:48:32 +0000 (17:48 +0200)
See the code comment.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: George Dunlap <george.dunlap@citrix.com>
Release-acked-by: Julien Grall <julien.grall@arm.com>
xen/arch/x86/mm/p2m.c

index ae70a920b58e16bd75bc367ee918b572fc84c31c..dacf3e2f62c4259b2f350a15379e1be8b4d46ce8 100644 (file)
@@ -480,6 +480,22 @@ struct page_info *get_page_from_gfn_p2m(
     p2m_access_t _a;
     p2m_type_t _t;
     mfn_t mfn;
+#ifndef NDEBUG
+    /*
+     * Temporary debugging code, added in the hope of finding the origin
+     * of calls to get_page(..., dom_cow) as observed during osstest
+     * migration failures (see
+     * lists.xenproject.org/archives/html/xen-devel/2017-04/msg03331.html).
+     */
+    static unsigned long cnt, thr;
+
+    if ( d->is_dying && ++cnt > thr )
+    {
+        thr |= cnt;
+        printk("%pv: d%d dying (looking up %lx)\n", current, d->domain_id, gfn);
+        dump_execution_state();
+    }
+#endif
 
     /* Allow t or a to be NULL */
     t = t ?: &_t;