WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] libxc: correctly unmap pages after core-dumping a pv guest

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] libxc: correctly unmap pages after core-dumping a pv guest
From: Markus Groß <gross@xxxxxxxxxxxxx>
Date: Mon, 23 May 2011 13:42:28 +0200
Delivery-date: Mon, 23 May 2011 05:19:18 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: KMail/1.9.10 (enterprise35 20100903.1171286)
Hi,

while implementing core dumping functionality for the libxl driver
of libvirt, I discovered an issue with mapping pages of a pv guest.

After dumping the core of a pv guest the domain was not cleared up
properly and some pages were not unmapped. This issue is similar
to the one reported here:
http://lists.xensource.com/archives/html/xen-devel/2011-05/msg01314.html

In xc_domain_dumpcore_via_callback in the file xc_core.c the function
xc_core_arch_map_p2m is called to map P2M_FL_ENTRIES pages to the variable p2m.
But to unmap the pages later, the dinfo->p2m_size has to be set accordingly.
This was not done, instead a variable named p2m_size was set.
This way P2M_FL_ENTRIES was always zero and the pages were left mapped.

The following patch fixes this.

Best regards,
Markus
 
diff -r 7c7ef1b6f4e5 tools/libxc/xc_core.c
--- a/tools/libxc/xc_core.c     Tue Apr 26 14:11:18 2011 +0100
+++ b/tools/libxc/xc_core.c     Mon May 23 13:36:23 2011 +0200
@@ -468,7 +468,6 @@
 
     int auto_translated_physmap;
     xen_pfn_t *p2m = NULL;
-    unsigned long p2m_size = 0;
     struct xen_dumpcore_p2m *p2m_array = NULL;
 
     uint64_t *pfn_array = NULL;
@@ -569,7 +568,7 @@
         }
 
         sts = xc_core_arch_map_p2m(xch, dinfo->guest_width, &info, live_shinfo,
-                                   &p2m, &p2m_size);
+                                   &p2m, &dinfo->p2m_size);
         if ( sts != 0 )
             goto out;
     }

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel