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:
OBS User autobuild 2009-08-17 12:57:35 +00:00 committed by Git OBS Bridge
parent b4c780fd71
commit 12bd2215f3
7 changed files with 101 additions and 9 deletions

38
20013-xend-memleak.patch Normal file
View 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
View 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:

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:390932ccf7df33b05ab3bb693a9b2392f377fa58d5f888bf1589f4e8bd300b46
size 22570595
oid sha256:cfe5b96404bdcaa218a6b1beb21e59cf203fa3a5b3d96c46ec5406e4ca0853e0
size 22567950

View File

@ -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.")

View File

@ -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)

View File

@ -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

View File

@ -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