Hello community, here is the log from the commit of package xen checked in at Mon Sep 1 02:39:10 CEST 2008. -------- --- arch/i386/xen/xen.changes 2008-08-18 17:18:09.000000000 +0200 +++ /mounts/work_src_done/STABLE/xen/xen.changes 2008-08-30 05:23:39.000000000 +0200 @@ -1,0 +2,40 @@ +Fri Aug 29 06:39:21 MDT 2008 - plc@novell.com + +- Added 'tap' to the type of devices for HalDaemon.py to + scan for change of xenstore attribute media-present. + +------------------------------------------------------------------- +Wed Aug 27 12:21:19 MDT 2008 - jfehlig@novell.com + +- Don't create pv vif device if emulated network device is + explicitly specified in guest config. + +------------------------------------------------------------------- +Fri Aug 22 08:37:49 MDT 2008 - carnold@novell.com + +- Updated to xen-unstable changeset 18358 Xen 3.3.0 FCS. + +------------------------------------------------------------------- +Wed Aug 20 13:59:45 MDT 2008 - carnold@novell.com + +- Updated to xen-unstable changeset 18353 RC7. + +------------------------------------------------------------------- +Wed Aug 20 15:08:19 CEST 2008 - kwolf@suse.de + +- Implementation of xm snapshot-delete + snapshot-ioemu-delete.patch, snapshot-xend.patch +- Add snapshot options to qemu-img-xen + qemu-img-snapshot.patch + +------------------------------------------------------------------- +Tue Aug 19 10:27:05 MDT 2008 - carnold@novell.com + +- Enable kboot and kexec patches. + +------------------------------------------------------------------- +Mon Aug 18 11:13:55 MDT 2008 - carnold@novell.com + +- Updated to xen-unstable changeset 18335 RC5. + +------------------------------------------------------------------- Old: ---- xen-generate-foreign-headers.diff xen-xmexample-nbd.diff New: ---- qemu-img-snapshot.patch snapshot-ioemu-delete.patch xend-vif-fix.patch xen-xmexample-vti.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xen.spec ++++++ --- /var/tmp/diff_new_pack.B18046/_old 2008-09-01 02:38:36.000000000 +0200 +++ /var/tmp/diff_new_pack.B18046/_new 2008-09-01 02:38:36.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package xen (Version 3.3.0_18314_02) +# spec file for package xen (Version 3.3.0_18358_02) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -21,12 +21,12 @@ Name: xen %define xvers 3.3 %define xvermaj 3 -%define changeset 18314 +%define changeset 18358 %define xen_build_dir xen-3.3.0-testing %if %sles_version %define with_kmp 1 %else -%define with_kmp 0 +%define with_kmp 1 %endif 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 transfig %if %suse_version >= 1030 @@ -40,8 +40,8 @@ %if %{?with_kmp}0 BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11 %endif -Version: 3.3.0_18314_02 -Release: 3 +Version: 3.3.0_18358_02 +Release: 1 License: GPL v2 only Group: System/Kernel AutoReqProv: on @@ -76,7 +76,7 @@ Patch106: xen-changeset.diff Patch107: xen-paths.diff Patch108: xen-xmexample.diff -Patch109: xen-xmexample-nbd.diff +Patch109: xen-xmexample-vti.diff Patch110: xen-fixme-doc.diff Patch111: xen-domUloader.diff Patch112: xen-no-dummy-nfs-ip.diff @@ -92,15 +92,14 @@ Patch125: xen-hvm-default-pae.diff Patch126: xm-test-cleanup.diff Patch127: cross-build-fix.diff -Patch130: xen-generate-foreign-headers.diff -Patch131: tools-xc_kexec.diff -Patch132: tools-kboot.diff -Patch133: libxen_permissive.patch -Patch134: xenapi-console-protocol.patch -Patch135: xen-disable-qemu-monitor.diff -Patch136: supported_module.diff -Patch137: qemu-security-etch1.diff -Patch138: rpmlint.diff +Patch130: tools-xc_kexec.diff +Patch131: tools-kboot.diff +Patch132: libxen_permissive.patch +Patch133: xenapi-console-protocol.patch +Patch134: xen-disable-qemu-monitor.diff +Patch135: supported_module.diff +Patch136: qemu-security-etch1.diff +Patch137: rpmlint.diff Patch140: cdrom-removable.patch Patch150: bridge-opensuse.patch Patch151: bridge-vlan.diff @@ -111,16 +110,19 @@ Patch156: blktap.patch Patch157: xen-api-auth.patch Patch158: xen-qemu-iscsi-fix.patch +Patch159: xend-vif-fix.patch # Patches for snapshot support -Patch169: ioemu-blktap-fix-open.patch -Patch170: snapshot-ioemu-save.patch -Patch171: snapshot-ioemu-restore.patch -Patch172: snapshot-xend.patch -Patch173: ioemu-qcow2-multiblock-aio.patch -Patch174: ioemu-blktap-image-format.patch -Patch175: build-tapdisk-ioemu.patch -Patch176: blktapctrl-default-to-ioemu.patch -Patch177: ioemu-blktap-barriers.patch +Patch170: qemu-img-snapshot.patch +Patch171: ioemu-blktap-fix-open.patch +Patch172: snapshot-ioemu-save.patch +Patch173: snapshot-ioemu-restore.patch +Patch174: snapshot-ioemu-delete.patch +Patch175: snapshot-xend.patch +Patch180: ioemu-qcow2-multiblock-aio.patch +Patch181: ioemu-blktap-image-format.patch +Patch182: build-tapdisk-ioemu.patch +Patch183: blktapctrl-default-to-ioemu.patch +Patch184: ioemu-blktap-barriers.patch # Jim's domain lock patch Patch190: xend-domain-lock.patch # Patches from Jan @@ -381,6 +383,7 @@ License: GPL v2 or later Group: System/Kernel Summary: Xen para-virtual device drivers for fully virtualized guests +Conflicts: xen %description KMP Xen para-virtual device drivers for fully virtualized guests @@ -474,7 +477,7 @@ %patch106 -p1 %patch107 -p1 %patch108 -p1 -#%patch109 -p1 Not Needed +%patch109 -p1 %patch110 -p1 %patch111 -p1 %patch112 -p1 @@ -489,16 +492,15 @@ %patch124 -p1 %patch125 -p1 %patch126 -p1 -#%patch127 -p1 Not needed anymore? -#%patch130 -p1 xen/include/public/foreign/ directory no longer exists -#%patch131 -p1 -#%patch132 -p1 +#%patch127 -p1 +%patch130 -p1 +%patch131 -p1 +%patch132 -p1 %patch133 -p1 %patch134 -p1 %patch135 -p1 %patch136 -p1 %patch137 -p1 -%patch138 -p1 %patch140 -p1 %patch150 -p1 %patch151 -p1 @@ -509,15 +511,18 @@ %patch156 -p1 %patch157 -p1 %patch158 -p1 -%patch169 -p1 +%patch159 -p1 %patch170 -p1 %patch171 -p1 %patch172 -p1 %patch173 -p1 %patch174 -p1 %patch175 -p1 -%patch176 -p1 -%patch177 -p1 +%patch180 -p1 +%patch181 -p1 +%patch182 -p1 +%patch183 -p1 +%patch184 -p1 %patch190 -p1 %patch240 -p1 %patch241 -p1 @@ -545,13 +550,17 @@ make tools docs %if %{?with_kmp}0 # pv driver modules +export XL=/usr/src/linux +export XEN=/usr/src/linux/include/xen mkdir -p obj for flavor in %flavors_to_build; do rm -rf obj/$flavor cp -r unmodified_drivers/linux-2.6 obj/$flavor - obj/$flavor/mkbuildtree + cd obj/$flavor + ./mkbuildtree make -C /usr/src/linux-obj/%_target_cpu/$flavor modules \ - M=$PWD/obj/$flavor + M=$PWD + cd ../.. done %endif @@ -669,6 +678,7 @@ #%find_lang xen-vm # po files are misnamed upstream # Clean up unpackaged files rm -rf $RPM_BUILD_ROOT/%{_datadir}/doc/xen/qemu/ +rm -f $RPM_BUILD_ROOT/%{_datadir}/doc/qemu/qemu-* rm -rf $RPM_BUILD_ROOT/%{_defaultdocdir}/xen/ps rm -rf $RPM_BUILD_ROOT/usr/share/xen/man/man1/qemu/qemu* rm -f $RPM_BUILD_ROOT/usr/share/xen/qemu/openbios-sparc32 @@ -677,6 +687,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info rm -rf $RPM_BUILD_ROOT/html rm -rf $RPM_BUILD_ROOT/usr/share/doc/xen/README.* +rm -f $RPM_BUILD_ROOT/%{_libdir}/xen/bin/qemu-dm.debug %files %defattr(-,root,root) @@ -791,9 +802,9 @@ %{_libdir}/xen/bin/qemu-dm %ifarch x86_64 /usr/lib/xen/bin/qemu-dm -#/usr/lib64/xen/bin/xc_kexec +/usr/lib64/xen/bin/xc_kexec %else -#/usr/lib/xen/bin/xc_kexec +/usr/lib/xen/bin/xc_kexec %endif /usr/lib/xen/boot/hvmloader %pysite/xen/* ++++++ 32on64-extra-mem.patch ++++++ --- /var/tmp/diff_new_pack.B18046/_old 2008-09-01 02:38:36.000000000 +0200 +++ /var/tmp/diff_new_pack.B18046/_new 2008-09-01 02:38:36.000000000 +0200 @@ -2,7 +2,7 @@ =================================================================== --- xen-3.3.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py +++ xen-3.3.0-testing/tools/python/xen/xend/XendDomainInfo.py -@@ -2251,7 +2251,7 @@ class XendDomainInfo: +@@ -2255,7 +2255,7 @@ class XendDomainInfo: vtd_mem = ((vtd_mem + 1023) / 1024) * 1024 # Make sure there's enough RAM available for the domain ++++++ cdrom-removable.patch ++++++ --- /var/tmp/diff_new_pack.B18046/_old 2008-09-01 02:38:37.000000000 +0200 +++ /var/tmp/diff_new_pack.B18046/_new 2008-09-01 02:38:37.000000000 +0200 @@ -1,8 +1,8 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py 2008-08-12 07:36:39.000000000 -0600 -@@ -0,0 +1,238 @@ ++++ xen-3.3.0-testing/tools/python/xen/xend/server/HalDaemon.py 2008-08-29 06:25:55.000000000 -0600 +@@ -0,0 +1,243 @@ +#!/usr/bin/env python +# -*- mode: python; -*- +#============================================================================ @@ -42,6 +42,8 @@ +from xen.xend import XendLogging +from xen.xend.XendLogging import log + ++DEVICE_TYPES = ['vbd', 'tap'] ++ +class HalDaemon: + """The Hald block device watcher for XEN + """ @@ -52,6 +54,7 @@ + """Default level of information to be logged.""" + loglevel_default = 'INFO' + ++ + def __init__(self): + + XendLogging.init(self.logfile_default, self.loglevel_default) @@ -59,7 +62,7 @@ + + self.udi_dict = {} + self.debug = 0 -+ self.dbpath = "/local/domain/0/backend/vbd" ++ self.dbpath = "/local/domain/0/backend" + self.bus = dbus.SystemBus() + self.hal_manager_obj = self.bus.get_object('org.freedesktop.Hal', '/org/freedesktop/Hal/Manager') + self.hal_manager = dbus.Interface( self.hal_manager_obj, 'org.freedesktop.Hal.Manager') @@ -100,7 +103,7 @@ + device_names = self.hal_manager.GetAllDevices() + i = 0; + for name in device_names: -+ #log.debug("device name, device=%s",name) ++ #log.debug("device name, device=%s",name) + dev_obj = self.bus.get_object ('org.freedesktop.Hal', name) + dev = dbus.Interface (dev_obj, 'org.freedesktop.Hal.Device') + dev_properties = dev_obj.GetAllProperties(dbus_interface="org.freedesktop.Hal.Device") @@ -182,43 +185,45 @@ + # Set or clear xenstore media-present depending on the action argument + # for every vbd that has this block device + def change_xenstore(self,action, device, major, minor): -+ domains = xstransact.List(self.dbpath) -+ log.debug('domains: %s', domains) -+ for domain in domains: # for each domain -+ devices = xstransact.List( self.dbpath + '/' + domain) -+ log.debug('devices: %s',devices) -+ for device in devices: # for each vbd device -+ str = device.split('/') -+ vbd_type = None; -+ vbd_physical_device = None -+ vbd_media = None -+ vbd_device_path = self.dbpath + '/' + domain + '/' + device -+ listing = xstransact.List(vbd_device_path) -+ for entry in listing: # for each entry -+ item = self.dbpath + '/' + entry -+ value = xstransact.Read( vbd_device_path + '/' + entry) -+ log.debug('%s=%s',item,value) -+ if item.find('media-present') != -1: -+ vbd_media = item; -+ vbd_media_path = item -+ if item.find('physical-device') != -1: -+ vbd_physical_device = value; -+ if item.find('type') != -1: -+ vbd_type = value; -+ if vbd_type is not None and vbd_physical_device is not None and vbd_media is not None : -+ inode = vbd_physical_device.split(':') -+ imajor = parse_hex(inode[0]) -+ iminor = parse_hex(inode[1]) -+ log.debug("action:%s major:%s- minor:%s- imajor:%s- iminor:%s- inode: %s", -+ action,major,minor, imajor, iminor, inode) -+ if int(imajor) == int(major) and int(iminor) == int(minor): -+ if action == "add": -+ xs_dict = {'media': "1"} -+ xstransact.Write(vbd_device_path, 'media-present', "1" ) -+ log.debug("wrote xenstore media-present 1 path:%s",vbd_media_path) -+ else: -+ xstransact.Write(vbd_device_path, 'media-present', "0" ) -+ log.debug("wrote xenstore media 0 path:%s",vbd_media_path) ++ for type in DEVICE_TYPES: ++ path = self.dbpath + '/' + type ++ domains = xstransact.List(path) ++ log.debug('domains: %s', domains) ++ for domain in domains: # for each domain ++ devices = xstransact.List( path + '/' + domain) ++ log.debug('devices: %s',devices) ++ for device in devices: # for each vbd device ++ str = device.split('/') ++ vbd_type = None; ++ vbd_physical_device = None ++ vbd_media = None ++ vbd_device_path = path + '/' + domain + '/' + device ++ listing = xstransact.List(vbd_device_path) ++ for entry in listing: # for each entry ++ item = path + '/' + entry ++ value = xstransact.Read( vbd_device_path + '/' + entry) ++ log.debug('%s=%s',item,value) ++ if item.find('media-present') != -1: ++ vbd_media = item; ++ vbd_media_path = item ++ if item.find('physical-device') != -1: ++ vbd_physical_device = value; ++ if item.find('type') != -1: ++ vbd_type = value; ++ if vbd_type is not None and vbd_physical_device is not None and vbd_media is not None : ++ inode = vbd_physical_device.split(':') ++ imajor = parse_hex(inode[0]) ++ iminor = parse_hex(inode[1]) ++ log.debug("action:%s major:%s- minor:%s- imajor:%s- iminor:%s- inode: %s", ++ action,major,minor, imajor, iminor, inode) ++ if int(imajor) == int(major) and int(iminor) == int(minor): ++ if action == "add": ++ xs_dict = {'media': "1"} ++ xstransact.Write(vbd_device_path, 'media-present', "1" ) ++ log.debug("wrote xenstore media-present 1 path:%s",vbd_media_path) ++ else: ++ xstransact.Write(vbd_device_path, 'media-present', "0" ) ++ log.debug("wrote xenstore media 0 path:%s",vbd_media_path) + +def mylog( fmt, *args): + f = open('/tmp/haldaemon.log', 'a') @@ -244,7 +249,7 @@ Index: xen-3.3.0-testing/tools/python/xen/xend/server/Hald.py =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ xen-3.3.0-testing/tools/python/xen/xend/server/Hald.py 2008-08-12 07:36:39.000000000 -0600 ++++ xen-3.3.0-testing/tools/python/xen/xend/server/Hald.py 2008-08-29 06:11:48.000000000 -0600 @@ -0,0 +1,125 @@ +#============================================================================ +# This library is free software; you can redistribute it and/or @@ -373,8 +378,8 @@ + watcher.shutdown() Index: xen-3.3.0-testing/tools/python/xen/xend/server/SrvServer.py =================================================================== ---- xen-3.3.0-testing.orig/tools/python/xen/xend/server/SrvServer.py 2008-08-11 12:44:35.000000000 -0600 -+++ xen-3.3.0-testing/tools/python/xen/xend/server/SrvServer.py 2008-08-12 07:36:39.000000000 -0600 +--- xen-3.3.0-testing.orig/tools/python/xen/xend/server/SrvServer.py 2008-08-22 08:34:00.000000000 -0600 ++++ xen-3.3.0-testing/tools/python/xen/xend/server/SrvServer.py 2008-08-29 06:11:48.000000000 -0600 @@ -56,6 +56,7 @@ from SrvRoot import SrvRoot @@ -394,8 +399,8 @@ root = SrvDir() Index: xen-3.3.0-testing/tools/ioemu-remote/xenstore.c =================================================================== ---- xen-3.3.0-testing.orig/tools/ioemu-remote/xenstore.c 2008-08-11 12:36:15.000000000 -0600 -+++ xen-3.3.0-testing/tools/ioemu-remote/xenstore.c 2008-08-12 07:48:22.000000000 -0600 +--- xen-3.3.0-testing.orig/tools/ioemu-remote/xenstore.c 2008-08-22 08:35:31.000000000 -0600 ++++ xen-3.3.0-testing/tools/ioemu-remote/xenstore.c 2008-08-29 06:11:48.000000000 -0600 @@ -297,6 +297,16 @@ bdrv_set_type_hint(bs, BDRV_TYPE_CDROM); if (pasprintf(&buf, "%s/params", bpath) != -1) ++++++ cross-build-fix.diff ++++++ --- /var/tmp/diff_new_pack.B18046/_old 2008-09-01 02:38:37.000000000 +0200 +++ /var/tmp/diff_new_pack.B18046/_new 2008-09-01 02:38:37.000000000 +0200 @@ -33,9 +33,9 @@ =================================================================== --- xen-3.3.0-testing.orig/tools/Makefile +++ xen-3.3.0-testing/tools/Makefile -@@ -23,7 +23,7 @@ SUBDIRS-y += blktap - SUBDIRS-y += libfsimage +@@ -24,7 +24,7 @@ SUBDIRS-y += libfsimage SUBDIRS-$(LIBXENAPI_BINDINGS) += libxen + SUBDIRS-y += fs-back -ifeq (ioemu,$(CONFIG_QEMU)) +ifeq ($(XEN_COMPILE_ARCH)$(CONFIG_IOEMU),$(XEN_TARGET_ARCH)y) ++++++ pv-driver-build.patch ++++++ --- /var/tmp/diff_new_pack.B18046/_old 2008-09-01 02:38:37.000000000 +0200 +++ /var/tmp/diff_new_pack.B18046/_new 2008-09-01 02:38:37.000000000 +0200 @@ -11,31 +11,3 @@ # Need to be quite careful here: we don't want the files we link in to # risk overriding the native Linux ones (in particular, system.h must -Index: xen-3.3.0-testing/unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h -=================================================================== ---- xen-3.3.0-testing.orig/unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h -+++ xen-3.3.0-testing/unmodified_drivers/linux-2.6/compat-include/xen/platform-compat.h -@@ -151,7 +151,7 @@ typedef irqreturn_t (*irq_handler_t)(int - #endif - #endif - --#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23) -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) && CONFIG_SLE_VERSION < 10 - #define setup_xen_features xen_setup_features - #endif - -Index: xen-3.3.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c -=================================================================== ---- xen-3.3.0-testing.orig/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c -+++ xen-3.3.0-testing/unmodified_drivers/linux-2.6/platform-pci/platform-compat.c -@@ -119,7 +119,9 @@ void *kzalloc(size_t size, int flags) - EXPORT_SYMBOL(kzalloc); - #endif - --#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) -+#if defined(CONFIG_SUSE_KERNEL) \ -+ ? LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) \ -+ : LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) - /* Simplified asprintf. */ - char *kasprintf(gfp_t gfp, const char *fmt, ...) - { ++++++ qemu-img-snapshot.patch ++++++ Index: xen-3.3.0-testing/tools/ioemu-remote/qemu-img.c =================================================================== --- xen-3.3.0-testing.orig/tools/ioemu-remote/qemu-img.c +++ xen-3.3.0-testing/tools/ioemu-remote/qemu-img.c @@ -57,6 +57,7 @@ static void help(void) " commit [-f fmt] filename\n" " convert [-c] [-e] [-6] [-f fmt] [-O output_fmt] filename [filename2 [...]] output_filename\n" " info [-f fmt] filename\n" + " snapshot [-l|-a snapshot|-d snapshot] filename\n" "\n" "Command parameters:\n" " 'filename' is a disk image filename\n" @@ -694,6 +695,91 @@ static int img_info(int argc, char **arg return 0; } +#define SNAPSHOT_LIST 1 +#define SNAPSHOT_APPLY 2 +#define SNAPSHOT_DELETE 3 + +static void img_snapshot(int argc, char **argv) +{ + BlockDriverState *bs; + char *filename, *snapshot_name = NULL; + char c; + int ret; + int action = 0; + + /* Parse commandline parameters */ + for(;;) { + c = getopt(argc, argv, "la:d:h"); + if (c == -1) + break; + switch(c) { + case 'h': + help(); + return; + case 'l': + if (action) { + help(); + return; + } + action = SNAPSHOT_LIST; + break; + case 'a': + if (action) { + help(); + return; + } + action = SNAPSHOT_APPLY; + snapshot_name = optarg; + break; + case 'd': + if (action) { + help(); + return; + } + action = SNAPSHOT_DELETE; + snapshot_name = optarg; + break; + } + } + + if (optind >= argc) + help(); + filename = argv[optind++]; + + /* Open the image */ + bs = bdrv_new(""); + if (!bs) + error("Not enough memory"); + + if (bdrv_open2(bs, filename, 0, NULL) < 0) { + error("Could not open '%s'", filename); + } + + /* Perform the requested action */ + switch(action) { + case SNAPSHOT_LIST: + dump_snapshots(bs); + break; + + case SNAPSHOT_APPLY: + ret = bdrv_snapshot_goto(bs, snapshot_name); + if (ret) + error("Could not apply snapshot '%s': %d (%s)", + snapshot_name, strerror(ret), ret); + break; + + case SNAPSHOT_DELETE: + ret = bdrv_snapshot_delete(bs, snapshot_name); + if (ret) + error("Could not delete snapshot '%s': %d (%s)", + snapshot_name, strerror(ret), ret); + break; + } + + /* Cleanup */ + bdrv_delete(bs); +} + int main(int argc, char **argv) { const char *cmd; @@ -711,6 +797,8 @@ int main(int argc, char **argv) img_convert(argc, argv); } else if (!strcmp(cmd, "info")) { img_info(argc, argv); + } else if (!strcmp(cmd, "snapshot")) { + img_snapshot(argc, argv); } else { help(); } ++++++ rpmlint.diff ++++++ --- /var/tmp/diff_new_pack.B18046/_old 2008-09-01 02:38:37.000000000 +0200 +++ /var/tmp/diff_new_pack.B18046/_new 2008-09-01 02:38:37.000000000 +0200 @@ -2,7 +2,7 @@ =================================================================== --- xen-3.3.0-testing.orig/tools/examples/Makefile +++ xen-3.3.0-testing/tools/examples/Makefile -@@ -71,7 +71,7 @@ install-initd: +@@ -70,7 +70,7 @@ install-initd: [ -d $(DESTDIR)/var/adm/fillup-templates ] || $(INSTALL_DIR) $(DESTDIR)/var/adm/fillup-templates/ $(INSTALL_PROG) $(XEND_INITD) $(DESTDIR)/etc/init.d $(INSTALL_PROG) $(XENDOMAINS_INITD) $(DESTDIR)/etc/init.d ++++++ snapshot-ioemu-delete.patch ++++++ Index: xen-3.3.0-testing/tools/ioemu-remote/xenstore.c =================================================================== --- xen-3.3.0-testing.orig/tools/ioemu-remote/xenstore.c +++ xen-3.3.0-testing/tools/ioemu-remote/xenstore.c @@ -652,6 +652,19 @@ static void xenstore_process_dm_command_ } snapshot_name = xs_read(xsh, XBT_NULL, path, &len); + } else if (!strncmp(command, "snapshot-delete", len)) { + + if (pasprintf(&path, + "/local/domain/0/device-model/%u/parameter", domid) == -1) { + fprintf(logfile, "out of memory reading dm command parameter\n"); + goto out; + } + par = xs_read(xsh, XBT_NULL, path, &len); + if (!par) + goto out; + // TODO Error handling + do_delvm(par); + xenstore_record_dm_state("snapshot-deleted"); } else if (!strncmp(command, "continue", len)) { fprintf(logfile, "dm-command: continue after state save\n"); xen_pause_requested = 0; ++++++ snapshot-xend.patch ++++++ --- /var/tmp/diff_new_pack.B18046/_old 2008-09-01 02:38:38.000000000 +0200 +++ /var/tmp/diff_new_pack.B18046/_new 2008-09-01 02:38:38.000000000 +0200 @@ -295,7 +295,15 @@ =================================================================== --- xen-3.3.0-testing.orig/tools/python/xen/xend/XendDomain.py +++ xen-3.3.0-testing/tools/python/xen/xend/XendDomain.py -@@ -1396,6 +1396,148 @@ class XendDomain: +@@ -52,6 +52,7 @@ from xen.xend.xenstore.xstransact import + from xen.xend.xenstore.xswatch import xswatch + from xen.util import mkdir + from xen.xend import uuid ++from xen.xend import sxp + + xc = xen.lowlevel.xc.xc() + xoptions = XendOptions.instance() +@@ -1396,6 +1397,164 @@ class XendDomain: raise XendError("can't write guest state file %s: %s" % (dst, ex[1])) @@ -324,6 +332,10 @@ + POWER_STATE_NAMES[DOM_STATE_RUNNING], + POWER_STATE_NAMES[dominfo._stateGet()]) + ++ if not os.path.exists(self._managed_config_path(dominfo.get_uuid())): ++ raise XendError("Domain is not managed by Xend lifecycle " + ++ "support.") ++ + snap_path = os.path.join(xoptions.get_xend_domains_path(), + dominfo.get_uuid(), "snapshots") + mkdir.parents(snap_path, stat.S_IRWXU) @@ -421,25 +433,37 @@ + @rtype: None + @raise XendInvalidDomain: Domain is not valid + """ -+ try: -+ dominfo = self.domain_lookup_nr(domid) -+ if not dominfo: -+ raise XendInvalidDomain(str(domid)) ++ dominfo = self.domain_lookup_nr(domid) ++ if not dominfo: ++ raise XendInvalidDomain(str(domid)) ++ ++ snap_file = os.path.join(xoptions.get_xend_domains_path(), ++ dominfo.get_uuid(), "snapshots", name) ++ ++ if not os.access(snap_file, os.F_OK): ++ raise XendError("Snapshot %s does not exist for domain %s" % ++ (name, str(domid))) ++ ++ # Need to "remove" snapshot from qcow2 image file. ++ # For running domains, this is left to ioemu. For stopped domains ++ # we must invoke qemu-img for all devices ourselves ++ if dominfo._stateGet() != DOM_STATE_HALTED: ++ dominfo.image.signalDeviceModel("snapshot-delete", ++ "snapshot-deleted", name) ++ else: ++ for dev_type, dev_info in dominfo.info.all_devices_sxpr(): ++ if dev_type != 'tap': ++ continue ++ ++ # Fetch the filename and strip off tap:xyz: ++ image_file = sxp.child_value(dev_info, 'uname') ++ image_file = image_file.split(':')[2] + -+ snap_file = os.path.join(xoptions.get_xend_domains_path(), -+ dominfo.get_uuid(), "snapshots", name) -+ -+ if not os.access(snap_file, os.F_OK): -+ raise XendError("Snapshot %s does not exist for domain %s" % -+ (name, str(domid))) ++ os.system("qemu-img-xen snapshot -d %s %s" % ++ (name, image_file)); + -+ # Warning! -+ # Need to "remove" snapshot from qcow2 image file. How -+ # should we do this? -+ os.unlink(snap_file) + -+ except: -+ return ++ os.unlink(snap_file) + def domain_pincpu(self, domid, vcpu, cpumap): """Set which cpus vcpu can use ++++++ tools-xc_kexec.diff ++++++ --- /var/tmp/diff_new_pack.B18046/_old 2008-09-01 02:38:38.000000000 +0200 +++ /var/tmp/diff_new_pack.B18046/_new 2008-09-01 02:38:38.000000000 +0200 @@ -67,7 +67,7 @@ +OBJS := $(XEN_TARGET_ARCH)/entry.o +OBJS += main.o console.o vsprintf.o string.o ctype.o + -+CFLAGS += -g -I$(XEN_ROOT)/tools/libxc -I$(XEN_TARGET_ARCH) ++CFLAGS += -g -I$(XEN_ROOT)/tools/libxc -I$(XEN_TARGET_ARCH) -I$(XEN_INCLUDE) + +ifeq ($(XEN_TARGET_ARCH),x86_32) +HLP_LDFLAGS := -melf_i386 @@ -132,12 +132,12 @@ + + cons = intf->out_cons; + prod = intf->out_prod; -+ mb(); ++ xen_mb(); + + while ((sent < len) && ((prod - cons) < sizeof(intf->out))) + intf->out[MASK_XENCONS_IDX(prod++, intf->out)] = data[sent++]; + -+ wmb(); ++ xen_wmb(); + intf->out_prod = prod; + + if (0 != notify_remote_via_evtchn(console_evtchn)) @@ -456,7 +456,7 @@ + return; + + memset(xenstore_page, 0, PAGE_SIZE); -+ wmb(); ++ xen_wmb(); + printk("xs: debug fixup [zero page] done\r\n"); +} +#endif @@ -541,7 +541,7 @@ +static void fillup_memory_p2m(void) +{ + struct xen_memory_reservation reservation = { -+ .address_bits = 0, ++ .mem_flags = 0, + .extent_order = 0, + .nr_extents = 1, + .domid = DOMID_SELF, @@ -696,7 +696,7 @@ + else + map_page_32(page, mfn, flags); + xen_tlb_flush(); -+ wmb(); ++ xen_wmb(); +} + +static void map_virt_base(void) @@ -706,7 +706,7 @@ + else + map_virt_base_32(); + xen_tlb_flush(); -+ wmb(); ++ xen_wmb(); +} + +static void fixup_pagetables_32(void) @@ -822,7 +822,7 @@ + pte[pte_off] = (mfn << PAGE_SHIFT) | flags; + + xen_tlb_flush(); -+ wmb(); ++ xen_wmb(); +} + +static void map_virt_base(void) @@ -857,7 +857,7 @@ + pgd_low++; + } + xen_tlb_flush(); -+ wmb(); ++ xen_wmb(); +} + +static void fixup_pagetables(void) ++++++ xen-3.3.0-testing-src.tar.bz2 ++++++ arch/i386/xen/xen-3.3.0-testing-src.tar.bz2 /mounts/work_src_done/STABLE/xen/xen-3.3.0-testing-src.tar.bz2 differ: byte 11, line 1 ++++++ xen-config.diff ++++++ --- /var/tmp/diff_new_pack.B18046/_old 2008-09-01 02:38:39.000000000 +0200 +++ /var/tmp/diff_new_pack.B18046/_new 2008-09-01 02:38:39.000000000 +0200 @@ -2,7 +2,7 @@ =================================================================== --- xen-3.3.0-testing.orig/Config.mk +++ xen-3.3.0-testing/Config.mk -@@ -84,20 +84,20 @@ QEMU_REMOTE=http://xenbits.xensource.com +@@ -85,20 +85,20 @@ QEMU_REMOTE=http://xenbits.xensource.com # Specify which qemu-dm to use. This may be `ioemu' to use the old # Mercurial in-tree version, or a local directory, or a git URL. ++++++ xend-domain-lock.patch ++++++ --- /var/tmp/diff_new_pack.B18046/_old 2008-09-01 02:38:39.000000000 +0200 +++ /var/tmp/diff_new_pack.B18046/_new 2008-09-01 02:38:39.000000000 +0200 @@ -264,7 +264,7 @@ =================================================================== --- xen-3.3.0-testing.orig/tools/python/xen/xend/XendDomain.py +++ xen-3.3.0-testing/tools/python/xen/xend/XendDomain.py -@@ -1294,6 +1294,7 @@ class XendDomain: +@@ -1295,6 +1295,7 @@ class XendDomain: POWER_STATE_NAMES[DOM_STATE_RUNNING], POWER_STATE_NAMES[dominfo._stateGet()]) @@ -318,7 +318,7 @@ =================================================================== --- xen-3.3.0-testing.orig/tools/examples/Makefile +++ xen-3.3.0-testing/tools/examples/Makefile -@@ -36,6 +36,7 @@ XEN_SCRIPTS += vtpm vtpm-delete +@@ -35,6 +35,7 @@ XEN_SCRIPTS += vtpm vtpm-delete XEN_SCRIPTS += xen-hotplug-cleanup XEN_SCRIPTS += external-device-migrate XEN_SCRIPTS += vscsi ++++++ xend-vif-fix.patch ++++++ Index: xen-3.3.0-testing/tools/python/xen/xend/server/netif.py =================================================================== --- xen-3.3.0-testing.orig/tools/python/xen/xend/server/netif.py +++ xen-3.3.0-testing/tools/python/xen/xend/server/netif.py @@ -101,6 +101,13 @@ class NetifController(DevController): def __init__(self, vm): DevController.__init__(self, vm) + def createDevice(self, config): + typ = config.get('type', '') + if typ == 'ioemu': + return 0 + + DevController.createDevice(self, config) + def getDeviceDetails(self, config): """@see DevController.getDeviceDetails""" ++++++ xen-xmexample-vti.diff ++++++ Index: xen-3.3.0-testing/tools/examples/Makefile =================================================================== --- xen-3.3.0-testing.orig/tools/examples/Makefile +++ xen-3.3.0-testing/tools/examples/Makefile @@ -20,7 +20,6 @@ XEN_CONFIGS += xmexample.hvm-stubdom XEN_CONFIGS += xmexample.hvm-dm XEN_CONFIGS += xmexample.pv-grub XEN_CONFIGS += xmexample.nbd -XEN_CONFIGS += xmexample.vti XEN_CONFIGS += xend-pci-quirks.sxp XEN_CONFIGS += xend-pci-permissive.sxp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org