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

[Xen-changelog] [xen-unstable] Fix Xen panic with oprofile



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1228218804 0
# Node ID fc5208167bb69f7d02247644fd76a82a2649e310
# Parent  f39673ce7d6e084d86b2d5c8c77eca63fa469c0a
Fix Xen panic with oprofile

The attached patch fixes a Xen panic when a domain is shutdown before
oprofile is stopped. Without this patch, free_xenoprof_pages() is
called before the domain is destroyed and that, in turn, prevents
oprofile from cleaning up pages shared with guests. Shutting down a
domain without terminating oprofile therefore causes a Xen panic at a
later point in time.

Signed-off-by: Niraj Tolia <niraj.tolia@xxxxxx>
---
 xen/arch/ia64/xen/domain.c |    3 ---
 xen/arch/x86/domain.c      |    3 ---
 xen/common/domain.c        |    3 +++
 3 files changed, 3 insertions(+), 6 deletions(-)

diff -r f39673ce7d6e -r fc5208167bb6 xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c        Mon Dec 01 13:45:46 2008 +0000
+++ b/xen/arch/ia64/xen/domain.c        Tue Dec 02 11:53:24 2008 +0000
@@ -1686,9 +1686,6 @@ int domain_relinquish_resources(struct d
        if (is_hvm_domain(d) && d->arch.sal_data)
                xfree(d->arch.sal_data);
 
-       /* Free page used by xen oprofile buffer */
-       free_xenoprof_pages(d);
-
        return 0;
 }
 
diff -r f39673ce7d6e -r fc5208167bb6 xen/arch/x86/domain.c
--- a/xen/arch/x86/domain.c     Mon Dec 01 13:45:46 2008 +0000
+++ b/xen/arch/x86/domain.c     Tue Dec 02 11:53:24 2008 +0000
@@ -1864,9 +1864,6 @@ int domain_relinquish_resources(struct d
         BUG();
     }
 
-    /* Free page used by xen oprofile buffer. */
-    free_xenoprof_pages(d);
-
     if ( is_hvm_domain(d) )
         hvm_domain_relinquish_resources(d);
 
diff -r f39673ce7d6e -r fc5208167bb6 xen/common/domain.c
--- a/xen/common/domain.c       Mon Dec 01 13:45:46 2008 +0000
+++ b/xen/common/domain.c       Tue Dec 02 11:53:24 2008 +0000
@@ -553,6 +553,9 @@ static void complete_domain_destroy(stru
 
     sched_destroy_domain(d);
 
+    /* Free page used by xen oprofile buffer. */
+    free_xenoprof_pages(d);
+
     for ( i = MAX_VIRT_CPUS-1; i >= 0; i-- )
         if ( (v = d->vcpu[i]) != NULL )
             free_vcpu_struct(v);

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


 


Rackspace

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