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

Re: [Xen-devel] [PATCH] libxc: correctly unmap pages after core-dumping

To: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] libxc: correctly unmap pages after core-dumping a pv guest
From: Markus Groß <gross@xxxxxxxxxxxxx>
Date: Mon, 23 May 2011 15:12:50 +0200
Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Mon, 23 May 2011 06:14:03 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1306154783.20576.98.camel@xxxxxxxxxxxxxxxxxxxxxx>
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>
References: <201105231342.28471.gross@xxxxxxxxxxxxx> <201105231424.01099.gross@xxxxxxxxxxxxx> <1306154783.20576.98.camel@xxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Internet Messaging Program (IMP) H3 (4.3.6)
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

Signed-off-by: Markus Groß <gross <at> univention.de>

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