Accepting request 17919 from Virtualization
Copy from Virtualization/xen based on submit request 17919 from user charlesa OBS-URL: https://build.opensuse.org/request/show/17919 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xen?expand=0&rev=77
This commit is contained in:
parent
b4c780fd71
commit
12bd2215f3
38
20013-xend-memleak.patch
Normal file
38
20013-xend-memleak.patch
Normal file
@ -0,0 +1,38 @@
|
||||
# HG changeset patch
|
||||
# User Keir Fraser <keir.fraser@citrix.com>
|
||||
# Date 1249470279 -3600
|
||||
# Node ID e41d42ef4cd2968cd480063a3c82d91c38cb8c7d
|
||||
# Parent 3242351f9c6766fe4fbc27d969b1b84a9926cbda
|
||||
xend: fix memory leak resulting in long garbage collector runs
|
||||
|
||||
In the method xen.xend.XendStateStore.XendStateStore.load_state and
|
||||
xen.xend.XendStateStore.XendStateStore.save_state the minidom objects
|
||||
used to load/save the current state of a device type, can't be freed
|
||||
by the python garbage collector after all references to the top node
|
||||
are cleared, because of cyclic references between the DOM nodes. So
|
||||
memory usage of xend increases after calling these methods. To solve
|
||||
this problem, the unlink() method must be called for a minidom object
|
||||
before the last reference to the top node is cleared (see python
|
||||
docs). This breaks the cyclic references, so the garbage collector can
|
||||
free these objects.
|
||||
|
||||
Signed-off-by: juergen.gross@ts.fujitsu.com
|
||||
|
||||
diff -r 3242351f9c67 -r e41d42ef4cd2 tools/python/xen/xend/XendStateStore.py
|
||||
--- a/tools/python/xen/xend/XendStateStore.py Wed Aug 05 12:03:53 2009 +0100
|
||||
+++ b/tools/python/xen/xend/XendStateStore.py Wed Aug 05 12:04:39 2009 +0100
|
||||
@@ -147,6 +147,7 @@
|
||||
cls_dict[val_name] = bool(int(val_text))
|
||||
state[uuid] = cls_dict
|
||||
|
||||
+ dom.unlink()
|
||||
return state
|
||||
|
||||
def save_state(self, cls, state):
|
||||
@@ -226,5 +227,5 @@
|
||||
node.appendChild(val_node)
|
||||
|
||||
open(xml_path, 'w').write(doc.toprettyxml())
|
||||
-
|
||||
+ doc.unlink()
|
||||
|
29
hv_win7_eoi_bug.patch
Normal file
29
hv_win7_eoi_bug.patch
Normal file
@ -0,0 +1,29 @@
|
||||
Index: xen-3.4.1-testing/xen/arch/x86/hvm/hyperv/hv_intercept.c
|
||||
===================================================================
|
||||
--- xen-3.4.1-testing.orig/xen/arch/x86/hvm/hyperv/hv_intercept.c 2009-08-10 14:01:45.000000000 -0600
|
||||
+++ xen-3.4.1-testing/xen/arch/x86/hvm/hyperv/hv_intercept.c 2009-08-10 14:07:15.000000000 -0600
|
||||
@@ -33,6 +33,7 @@
|
||||
|
||||
#include <asm/config.h>
|
||||
#include <asm/hvm/io.h>
|
||||
+#include <asm/hvm/support.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/apicdef.h>
|
||||
@@ -987,8 +988,15 @@
|
||||
break;
|
||||
case HV_MSR_APIC_ASSIST_PAGE:
|
||||
/*
|
||||
- * For now ignore this.
|
||||
+ * We don't support the APIC assist page; windows7 appears to
|
||||
+ * use this; set it up so that os uses the APIC MSR to indicate EOI.
|
||||
*/
|
||||
+ if (msr_content & 0x1) {
|
||||
+ uint32_t data = 0;
|
||||
+ paddr_t assist_page = msr_content & ~1UL;
|
||||
+ (void)hvm_copy_to_guest_phys(assist_page, &data, sizeof(data));
|
||||
+ }
|
||||
+
|
||||
break;
|
||||
|
||||
default:
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:390932ccf7df33b05ab3bb693a9b2392f377fa58d5f888bf1589f4e8bd300b46
|
||||
size 22570595
|
||||
oid sha256:cfe5b96404bdcaa218a6b1beb21e59cf203fa3a5b3d96c46ec5406e4ca0853e0
|
||||
size 22567950
|
||||
|
@ -34,7 +34,7 @@ Index: xen-3.4.1-testing/tools/python/xen/xend/image.py
|
||||
===================================================================
|
||||
--- xen-3.4.1-testing.orig/tools/python/xen/xend/image.py
|
||||
+++ xen-3.4.1-testing/tools/python/xen/xend/image.py
|
||||
@@ -832,14 +832,16 @@ class HVMImageHandler(ImageHandler):
|
||||
@@ -830,14 +830,16 @@ class HVMImageHandler(ImageHandler):
|
||||
mac = devinfo.get('mac')
|
||||
if mac is None:
|
||||
raise VmError("MAC address not specified or generated.")
|
||||
|
@ -4,7 +4,7 @@ Index: xen-3.4.1-testing/tools/python/xen/xend/image.py
|
||||
===================================================================
|
||||
--- xen-3.4.1-testing.orig/tools/python/xen/xend/image.py
|
||||
+++ xen-3.4.1-testing/tools/python/xen/xend/image.py
|
||||
@@ -943,7 +943,7 @@ class X86_HVM_ImageHandler(HVMImageHandl
|
||||
@@ -941,7 +941,7 @@ class X86_HVM_ImageHandler(HVMImageHandl
|
||||
|
||||
def configure(self, vmConfig):
|
||||
HVMImageHandler.configure(self, vmConfig)
|
||||
|
21
xen.changes
21
xen.changes
@ -1,3 +1,24 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 10 16:21:00 EDT 2009 - ksrinivasan@novell.com
|
||||
|
||||
- bnc#524071 - implemented workaround for a windows7 bug.
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 7 10:43:32 MDT 2009 - jfehlig@novell.com
|
||||
|
||||
- bnc#524180 - xend memory leak resulting in long garbage collector
|
||||
runs. Bug applies to xen 3.4.1 as well.
|
||||
20013-xend-memleak.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 6 10:10:43 MDT 2009 - carnold@novell.com
|
||||
|
||||
- Update to Xen 3.4.1 FCS c/s 19718.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 4 15:48:59 MDT 2009 - carnold@novell.com
|
||||
|
||||
- Rename xen_loop to xen_loop.conf to conform with naming rules.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 28 14:07:42 MDT 2009 - carnold@novell.com
|
||||
|
||||
|
14
xen.spec
14
xen.spec
@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package xen (Version 3.4.1_19711_01)
|
||||
# spec file for package xen (Version 3.4.1_19718_01)
|
||||
#
|
||||
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
@ -22,7 +22,7 @@ Name: xen
|
||||
ExclusiveArch: %ix86 x86_64
|
||||
%define xvers 3.4
|
||||
%define xvermaj 3
|
||||
%define changeset 19711
|
||||
%define changeset 19718
|
||||
%define xen_build_dir xen-3.4.1-testing
|
||||
%define with_kmp 0
|
||||
BuildRequires: LibVNCServer-devel SDL-devel automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel ncurses-devel openssl openssl-devel pciutils-devel python-devel texinfo transfig
|
||||
@ -37,7 +37,7 @@ BuildRequires: glibc-32bit glibc-devel-32bit
|
||||
%if %{?with_kmp}0
|
||||
BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11
|
||||
%endif
|
||||
Version: 3.4.1_19711_01
|
||||
Version: 3.4.1_19718_01
|
||||
Release: 1
|
||||
License: GPL v2 only
|
||||
Group: System/Kernel
|
||||
@ -70,6 +70,7 @@ Source24: xenapiusers
|
||||
# sysconfig hook script for Xen
|
||||
Source25: xen-updown.sh
|
||||
# Upstream patches
|
||||
Patch0: 20013-xend-memleak.patch
|
||||
# Our patches
|
||||
Patch100: xen-config.diff
|
||||
Patch101: xend-config.diff
|
||||
@ -166,6 +167,7 @@ Patch450: disable_emulated_device.diff
|
||||
Patch500: hv_tools.patch
|
||||
Patch501: hv_xen_base.patch
|
||||
Patch502: hv_xen_extension.patch
|
||||
Patch503: hv_win7_eoi_bug.patch
|
||||
Patch999: tmp_build.patch
|
||||
Url: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
@ -498,6 +500,7 @@ Authors:
|
||||
|
||||
%prep
|
||||
%setup -q -n %xen_build_dir
|
||||
%patch0 -p1
|
||||
%patch100 -p1
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
@ -585,6 +588,7 @@ Authors:
|
||||
%patch500 -p1
|
||||
%patch501 -p1
|
||||
%patch502 -p1
|
||||
%patch503 -p1
|
||||
%endif
|
||||
%patch999 -p1
|
||||
|
||||
@ -700,7 +704,7 @@ ln -s /etc/init.d/xend $RPM_BUILD_ROOT/usr/sbin/rcxend
|
||||
install %SOURCE6 $RPM_BUILD_ROOT/etc/init.d/xendomains
|
||||
ln -s /etc/init.d/xendomains $RPM_BUILD_ROOT/usr/sbin/rcxendomains
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d
|
||||
install -m644 %SOURCE18 $RPM_BUILD_ROOT/etc/modprobe.d/xen_loop
|
||||
install -m644 %SOURCE18 $RPM_BUILD_ROOT/etc/modprobe.d/xen_loop.conf
|
||||
# example config
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/xen/{vm,examples,scripts}
|
||||
mv $RPM_BUILD_ROOT/etc/xen/xmexample* $RPM_BUILD_ROOT/etc/xen/examples
|
||||
@ -844,7 +848,7 @@ rm -f $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm.debug
|
||||
%config /etc/xen/*.xml
|
||||
%config(noreplace) /etc/xen/xenapiusers
|
||||
%config /etc/pam.d/xen-api
|
||||
%config /etc/modprobe.d/xen_loop
|
||||
%config /etc/modprobe.d/xen_loop.conf
|
||||
%dir /etc/modprobe.d
|
||||
%dir /etc/udev
|
||||
%dir /etc/udev/rules.d
|
||||
|
Loading…
Reference in New Issue
Block a user