Lars Vogdt 2011-02-20 18:50:19 +00:00 committed by Git OBS Bridge
parent a40fb3174a
commit 8de724150a
17 changed files with 113 additions and 428 deletions

View File

@ -1,89 +0,0 @@
commit 041973504f715bcff7de3b17cd258617244b79c4
Author: Jim Fehlig <jfehlig@novell.com>
Date: Wed Jan 5 15:16:57 2011 -0700
Add support for HAP feature to xen drivers
xen-unstable c/s 16931 introduced a per-domain setting for hvm
guests to enable/disable hardware assisted paging. If disabled,
software techniques such as shadow page tables are used. If enabled,
and the feature exists in underlying hardware, hardware support for
paging is used.
This provides implementation for mapping HAP setting to/from
domxml/native formats in xen drivers.
diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c
index 6ce0c3f..d3633ee 100644
--- a/src/xen/xend_internal.c
+++ b/src/xen/xend_internal.c
@@ -2210,6 +2210,8 @@ xenDaemonParseSxpr(virConnectPtr conn,
def->features |= (1 << VIR_DOMAIN_FEATURE_APIC);
if (sexpr_int(root, "domain/image/hvm/pae"))
def->features |= (1 << VIR_DOMAIN_FEATURE_PAE);
+ if (sexpr_int(root, "domain/image/hvm/hap"))
+ def->features |= (1 << VIR_DOMAIN_FEATURE_HAP);
/* Old XenD only allows localtime here for HVM */
if (sexpr_int(root, "domain/image/hvm/localtime"))
@@ -5923,6 +5925,8 @@ xenDaemonFormatSxpr(virConnectPtr conn,
virBufferAddLit(&buf, "(apic 1)");
if (def->features & (1 << VIR_DOMAIN_FEATURE_PAE))
virBufferAddLit(&buf, "(pae 1)");
+ if (def->features & (1 << VIR_DOMAIN_FEATURE_HAP))
+ virBufferAddLit(&buf, "(hap 1)");
virBufferAddLit(&buf, "(usb 1)");
diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c
index 4d6b41b..ec618aa 100644
--- a/src/xen/xm_internal.c
+++ b/src/xen/xm_internal.c
@@ -830,6 +830,10 @@ xenXMDomainConfigParse(virConnectPtr conn, virConfPtr conf) {
goto cleanup;
else if (val)
def->features |= (1 << VIR_DOMAIN_FEATURE_APIC);
+ if (xenXMConfigGetBool(conf, "hap", &val, 0) < 0)
+ goto cleanup;
+ else if (val)
+ def->features |= (1 << VIR_DOMAIN_FEATURE_HAP);
}
if (xenXMConfigGetBool(conf, "localtime", &vmlocaltime, 0) < 0)
goto cleanup;
@@ -2409,6 +2413,10 @@ virConfPtr xenXMDomainConfigFormat(virConnectPtr conn,
(1 << VIR_DOMAIN_FEATURE_APIC)) ? 1 : 0) < 0)
goto no_memory;
+ if (xenXMConfigSetInt(conf, "hap",
+ (def->features &
+ (1 << VIR_DOMAIN_FEATURE_HAP)) ? 1 : 0) < 0)
+ goto no_memory;
if (def->clock.offset == VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME) {
if (def->clock.data.timezone) {
diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c
index 6fff276..fffa617 100644
--- a/src/xenapi/xenapi_driver.c
+++ b/src/xenapi/xenapi_driver.c
@@ -1358,6 +1358,8 @@ xenapiDomainDumpXML (virDomainPtr dom, int flags ATTRIBUTE_UNUSED)
defPtr->features = defPtr->features | (1<<VIR_DOMAIN_FEATURE_APIC);
else if (STREQ(result->contents[i].key, "pae"))
defPtr->features = defPtr->features | (1<<VIR_DOMAIN_FEATURE_PAE);
+ else if (STREQ(result->contents[i].key, "hap"))
+ defPtr->features = defPtr->features | (1<<VIR_DOMAIN_FEATURE_HAP);
}
}
xen_string_string_map_free(result);
diff --git a/src/xenapi/xenapi_utils.c b/src/xenapi/xenapi_utils.c
index a7e2a4b..2ec5f9e 100644
--- a/src/xenapi/xenapi_utils.c
+++ b/src/xenapi/xenapi_utils.c
@@ -529,6 +529,8 @@ createVMRecordFromXml (virConnectPtr conn, virDomainDefPtr def,
allocStringMap(&strings, (char *)"apic", (char *)"true");
if (def->features & (1 << VIR_DOMAIN_FEATURE_PAE))
allocStringMap(&strings, (char *)"pae", (char *)"true");
+ if (def->features & (1 << VIR_DOMAIN_FEATURE_HAP))
+ allocStringMap(&strings, (char *)"hap", (char *)"true");
}
if (strings != NULL)
(*record)->platform = strings;

View File

@ -1,32 +0,0 @@
commit 094c6f4a24165d2d07f64bbd70243b3306a34d5b
Author: Jim Fehlig <jfehlig@novell.com>
Date: Fri Jan 14 11:12:46 2011 -0700
Fix 'make check' after commit 04197350
I broke 'make check' with commit 04197350 by unconditionally
emitting 'hap=' in xen xm driver. Only emit 'hap=' if
xendConfigVersion >= 3. I've tested sending 'hap=' to a Xen 3.2
machine without support for hap setting and verified that xend
silently drops the unrecognized setting.
diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c
index ec618aa..bfb6698 100644
--- a/src/xen/xm_internal.c
+++ b/src/xen/xm_internal.c
@@ -2413,10 +2413,11 @@ virConfPtr xenXMDomainConfigFormat(virConnectPtr conn,
(1 << VIR_DOMAIN_FEATURE_APIC)) ? 1 : 0) < 0)
goto no_memory;
- if (xenXMConfigSetInt(conf, "hap",
- (def->features &
- (1 << VIR_DOMAIN_FEATURE_HAP)) ? 1 : 0) < 0)
- goto no_memory;
+ if (priv->xendConfigVersion >= 3)
+ if (xenXMConfigSetInt(conf, "hap",
+ (def->features &
+ (1 << VIR_DOMAIN_FEATURE_HAP)) ? 1 : 0) < 0)
+ goto no_memory;
if (def->clock.offset == VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME) {
if (def->clock.data.timezone) {

View File

@ -1,54 +0,0 @@
commit 4301b95af7f554700de8e69ecf3f3bb3148b1d44
Author: Jim Fehlig <jfehlig@novell.com>
Date: Thu Jan 13 12:52:23 2011 -0700
[v2] qemu: Retry JSON monitor cont cmd on MigrationExpected error
When restoring a saved qemu instance via JSON monitor, the vm is
left in a paused state. Turns out the 'cont' cmd was failing with
"MigrationExpected" error class and "An incoming migration is
expected before this command can be executed" error description
due to migration (restore) not yet complete.
Detect if 'cont' cmd fails with "MigrationExpecte" error class and
retry 'cont' cmd.
V2: Fix potential double-free noted by Laine Stump
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 2e159c7..ca06e7e 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -702,13 +702,29 @@ qemuMonitorJSONStartCPUs(qemuMonitorPtr mon,
int ret;
virJSONValuePtr cmd = qemuMonitorJSONMakeCommand("cont", NULL);
virJSONValuePtr reply = NULL;
+ int i = 0, timeout = 3;
if (!cmd)
return -1;
- ret = qemuMonitorJSONCommand(mon, cmd, &reply);
+ do {
+ ret = qemuMonitorJSONCommand(mon, cmd, &reply);
- if (ret == 0)
- ret = qemuMonitorJSONCheckError(cmd, reply);
+ if (ret != 0)
+ break;
+
+ /* If no error, we're done */
+ if ((ret = qemuMonitorJSONCheckError(cmd, reply)) == 0)
+ break;
+
+ /* If error class is not MigrationExpected, we're done.
+ * Otherwise try 'cont' cmd again */
+ if (!qemuMonitorJSONHasError(reply, "MigrationExpected"))
+ break;
+
+ virJSONValueFree(reply);
+ reply = NULL;
+ usleep(250000);
+ } while (++i <= timeout);
virJSONValueFree(cmd);
virJSONValueFree(reply);

View File

@ -1,41 +0,0 @@
commit 48a5dccda905b5c6e8a02a37c093c42a9ef4e350
Author: Jim Fehlig <jfehlig@novell.com>
Date: Wed Jan 5 14:56:48 2011 -0700
Add HAP to virDomainFeature enum
Extend the virDomainFeature enumeration to include HAP (hardware
assisted paging) feature.
Hardware features such as Extended Page Table and Nested Page
Table augment hypervisor software techniques such as shadow
page table. Adding HAP to the virDomainFeature enumeration
allows users to select between hardware and software memory
management mechanisms for their guests.
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index b4df38c..2c54683 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -75,7 +75,8 @@ VIR_ENUM_IMPL(virDomainBoot, VIR_DOMAIN_BOOT_LAST,
VIR_ENUM_IMPL(virDomainFeature, VIR_DOMAIN_FEATURE_LAST,
"acpi",
"apic",
- "pae")
+ "pae",
+ "hap")
VIR_ENUM_IMPL(virDomainLifecycle, VIR_DOMAIN_LIFECYCLE_LAST,
"destroy",
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index a459a22..6a8ec64 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -730,6 +730,7 @@ enum virDomainFeature {
VIR_DOMAIN_FEATURE_ACPI,
VIR_DOMAIN_FEATURE_APIC,
VIR_DOMAIN_FEATURE_PAE,
+ VIR_DOMAIN_FEATURE_HAP,
VIR_DOMAIN_FEATURE_LAST
};

View File

@ -1,56 +0,0 @@
commit 79f56c669f0f4d554cec3137d0a6aadf7c5f2bec
Author: Jim Fehlig <jfehlig@novell.com>
Date: Wed Jan 5 16:07:54 2011 -0700
Document HAP domain feature
Add HAP feature to schema and documentation.
Index: libvirt-0.8.7/docs/formatdomain.html.in
===================================================================
--- libvirt-0.8.7.orig/docs/formatdomain.html.in
+++ libvirt-0.8.7/docs/formatdomain.html.in
@@ -437,6 +437,7 @@
&lt;pae/&gt;
&lt;acpi/&gt;
&lt;apic/&gt;
+ &lt;hap/&gt;
&lt;/features&gt;
...</pre>
@@ -456,6 +457,10 @@
<dd>ACPI is useful for power management, for example, with
KVM guests it is required for graceful shutdown to work.
</dd>
+ <dt><code>hap</code></dt>
+ <dd>Enable use of Hardware Assisted Paging if available in
+ the hardware.
+ </dd>
</dl>
<h3><a name="elementsTime">Time keeping</a></h3>
Index: libvirt-0.8.7/docs/schemas/domain.rng
===================================================================
--- libvirt-0.8.7.orig/docs/schemas/domain.rng
+++ libvirt-0.8.7/docs/schemas/domain.rng
@@ -1741,7 +1741,7 @@
</element>
</define>
<!--
- A set of optional features: PAE, APIC and ACPI support
+ A set of optional features: PAE, APIC, ACPI, and HAP support
-->
<define name="features">
<optional>
@@ -1762,6 +1762,11 @@
<empty/>
</element>
</optional>
+ <optional>
+ <element name="hap">
+ <empty/>
+ </element>
+ </optional>
</interleave>
</element>
</optional>

View File

@ -1,48 +0,0 @@
commit a43c7338d8772aa3a5bc0ec5914d3c28c20447c3
Author: Kay Schubert <kayegypt@web.de>
Date: Thu Jan 6 09:14:58 2011 +0100
bridge: Fix generation of dnsmasq's --dhcp-hostsfile option
I added a host definition to a network definition:
<network>
<name>Lokal</name>
<uuid>2074f379-b82c-423f-9ada-305d8088daaa</uuid>
<bridge name='virbr1' stp='on' delay='0' />
<ip address='192.168.180.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.180.128' end='192.168.180.254' />
<host mac='23:74:00:03:42:02' name='somevm' ip='192.168.180.10' />
</dhcp>
</ip>
</network>
But due to the wrong if-statement the argument --dhcp-hostsfile doesn't get
added to the dnsmasq command. The patch below fixes it for me.
diff --git a/AUTHORS b/AUTHORS
index b204bd6..721b8f8 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -142,6 +142,7 @@ Patches have also been contributed by:
Josh Durgin <joshd@hq.newdream.net>
Roopa Prabhu <roprabhu@cisco.com>
Paweł Krześniak <pawel.krzesniak@gmail.com>
+ Kay Schubert <kayegypt@web.de>
[....send patches to get your name here....]
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 7d43ef5..4c64a74 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -524,7 +524,7 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network,
goto cleanup;
}
- if (networkSaveDnsmasqHostsfile(ipdef, dctx, false) < 0) {
+ if (networkSaveDnsmasqHostsfile(ipdef, dctx, false) == 0) {
virCommandAddArgPair(cmd, "--dhcp-hostsfile",
dctx->hostsfile->path);
}

View File

@ -1,36 +0,0 @@
commit af521a0182a0d6867796c65b1b0cd83fb14032a9
Author: Jim Fehlig <jfehlig@novell.com>
Date: Wed Jan 5 15:20:01 2011 -0700
Add HAP to xen hypervisor capabilities
xen-unstable c/s 16931 introduced a per-domain setting for hvm
guests to enable/disable hardware assisted paging. If disabled,
software techniques such as shadow page tables are used. If enabled,
and the feature exists in underlying hardware, hardware support for
paging is used.
Xen does not provide a mechanism to discover the HAP capability, so
we advertise its availability for hvm guests on Xen >= 3.3.
diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
index ead8ee9..229ef3d 100644
--- a/src/xen/xen_hypervisor.c
+++ b/src/xen/xen_hypervisor.c
@@ -2321,6 +2321,16 @@ xenHypervisorBuildCapabilities(virConnectPtr conn,
hv_minor > 0 ?
0 : 1)) == NULL)
goto no_memory;
+
+ /* Xen 3.3.x and beyond supports enabling/disabling
+ * hardware assisted paging. Default is off.
+ */
+ if ((hv_major == 3 && hv_minor >= 3) || (hv_major > 3))
+ if (virCapabilitiesAddGuestFeature(guest,
+ "hap",
+ 0,
+ 1) == NULL)
+ goto no_memory;
}
}

View File

@ -2,7 +2,7 @@ Index: src/lxc/lxc_container.c
=================================================================== ===================================================================
--- src/lxc/lxc_container.c.orig --- src/lxc/lxc_container.c.orig
+++ src/lxc/lxc_container.c +++ src/lxc/lxc_container.c
@@ -838,6 +838,9 @@ int lxcContainerStart(virDomainDefPtr de @@ -845,6 +845,9 @@ int lxcContainerStart(virDomainDefPtr de
lxc_child_argv_t args = { def, nveths, veths, control, ttyPath }; lxc_child_argv_t args = { def, nveths, veths, control, ttyPath };
/* allocate a stack for the container */ /* allocate a stack for the container */
@ -12,7 +12,7 @@ Index: src/lxc/lxc_container.c
if (VIR_ALLOC_N(stack, stacksize) < 0) { if (VIR_ALLOC_N(stack, stacksize) < 0) {
virReportOOMError(); virReportOOMError();
return -1; return -1;
@@ -856,7 +859,11 @@ int lxcContainerStart(virDomainDefPtr de @@ -863,7 +866,11 @@ int lxcContainerStart(virDomainDefPtr de
flags |= CLONE_NEWNET; flags |= CLONE_NEWNET;
} }
@ -24,7 +24,7 @@ Index: src/lxc/lxc_container.c
VIR_FREE(stack); VIR_FREE(stack);
DEBUG("clone() completed, new container PID is %d", pid); DEBUG("clone() completed, new container PID is %d", pid);
@@ -882,6 +889,7 @@ int lxcContainerAvailable(int features) @@ -889,6 +896,7 @@ int lxcContainerAvailable(int features)
char *childStack; char *childStack;
char *stack; char *stack;
int childStatus; int childStatus;
@ -32,7 +32,7 @@ Index: src/lxc/lxc_container.c
if (features & LXC_CONTAINER_FEATURE_USER) if (features & LXC_CONTAINER_FEATURE_USER)
flags |= CLONE_NEWUSER; flags |= CLONE_NEWUSER;
@@ -889,14 +897,21 @@ int lxcContainerAvailable(int features) @@ -896,14 +904,21 @@ int lxcContainerAvailable(int features)
if (features & LXC_CONTAINER_FEATURE_NET) if (features & LXC_CONTAINER_FEATURE_NET)
flags |= CLONE_NEWNET; flags |= CLONE_NEWNET;

27
efc2594b-boot-param.patch Normal file
View File

@ -0,0 +1,27 @@
commit efc2594b4e0cbcdd6947fafeeed41accd5b611e0
Author: Jim Fehlig <jfehlig@novell.com>
Date: Thu Feb 17 14:22:55 2011 -0700
Do not add drive 'boot=on' param when a kernel is specified
libvirt-tck was failing several domain tests [1] with qemu 0.14, which
is now less tolerable of specifying 2 bootroms with the same boot index [2].
Drop the 'boot=on' param if kernel has been specfied.
[1] https://www.redhat.com/archives/libvir-list/2011-February/msg00559.html
[2] http://lists.nongnu.org/archive/html/qemu-devel/2011-02/msg01892.html
Index: libvirt-0.8.8/src/qemu/qemu_command.c
===================================================================
--- libvirt-0.8.8.orig/src/qemu/qemu_command.c
+++ libvirt-0.8.8/src/qemu/qemu_command.c
@@ -3116,7 +3116,7 @@ qemuBuildCommandLine(virConnectPtr conn,
int bootCD = 0, bootFloppy = 0, bootDisk = 0;
/* If QEMU supports boot=on for -drive param... */
- if (qemuCmdFlags & QEMUD_CMD_FLAG_DRIVE_BOOT) {
+ if (qemuCmdFlags & QEMUD_CMD_FLAG_DRIVE_BOOT && !def->os.kernel) {
for (i = 0 ; i < def->os.nBootDevs ; i++) {
switch (def->os.bootDevs[i]) {
case VIR_DOMAIN_BOOT_CDROM:

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:98d76f1aa9ce28e887271969f67f7a470b554cfb1a22c4e9d2f2ae6db45e6135
size 9205470

3
libvirt-0.8.8.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1b055afdea9df8d502b7572ea4c81a9aa5fa0f8688d3a58cf63abcef6e84b807
size 9569079

View File

@ -1,3 +1,28 @@
-------------------------------------------------------------------
Thu Feb 17 20:39:22 MST 2011 - jfehlig@novell.com
- Do not add drive 'boot=on' param when a kernel is specified
efc2594b-boot-param.patch
-------------------------------------------------------------------
Thu Feb 17 10:26:11 MST 2011 - jfehlig@novell.com
- Update to libvirt 0.8.8 final
- sysinfo: expose new API
- cgroup blkio weight support
- smartcard device support
- qemu: Support per-device boot ordering
-------------------------------------------------------------------
Tue Feb 15 09:02:30 MST 2011 - jfehlig@novell.com
- Update to libvirt 0.8.8 RC3
-------------------------------------------------------------------
Fri Feb 11 11:43:16 MST 2011 - jfehlig@novell.com
- Update to libvirt 0.8.8 RC1
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Jan 31 09:14:37 MST 2011 - jfehlig@novell.com Mon Jan 31 09:14:37 MST 2011 - jfehlig@novell.com

View File

@ -144,8 +144,8 @@ Url: http://libvirt.org/
License: LGPLv2.1+ License: LGPLv2.1+
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
AutoReqProv: yes AutoReqProv: yes
Version: 0.8.7 Version: 0.8.8
Release: 3 Release: 1
Summary: A C toolkit to interract with the virtualization capabilities of Linux Summary: A C toolkit to interract with the virtualization capabilities of Linux
# The client side, i.e. shared libs and virsh are in a subpackage # The client side, i.e. shared libs and virsh are in a subpackage
Requires: %{name}-client = %{version}-%{release} Requires: %{name}-client = %{version}-%{release}
@ -169,13 +169,7 @@ Recommends: PolicyKit >= 0.6
Source0: %{name}-%{version}.tar.bz2 Source0: %{name}-%{version}.tar.bz2
Source1: libvirtd.init Source1: libvirtd.init
# Upstream patches # Upstream patches
Patch0: a43c7338-dnsmasq-hostfile-fix.patch Patch0: efc2594b-boot-param.patch
Patch1: 48a5dccd-hap1.patch
Patch2: 04197350-hap2.patch
Patch3: af521a01-hap3.patch
Patch4: 79f56c66-hap4.patch
Patch5: 094c6f4a-hap-fix.patch
Patch6: 4301b95a-json-cont-cmd.patch
# Need to go upstream # Need to go upstream
Patch100: xen-name-for-devid.patch Patch100: xen-name-for-devid.patch
Patch102: clone.patch Patch102: clone.patch
@ -289,12 +283,6 @@ Authors:
%prep %prep
%setup -q %setup -q
%patch0 -p1 %patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch100 -p1 %patch100 -p1
%patch102 %patch102
%patch103 -p1 %patch103 -p1
@ -361,6 +349,7 @@ Authors:
%if ! %{with_virtualport} %if ! %{with_virtualport}
%define _without_virtualport --without-virtualport %define _without_virtualport --without-virtualport
%endif %endif
autoreconf -f -i autoreconf -f -i
export CFLAGS="$RPM_OPT_FLAGS" export CFLAGS="$RPM_OPT_FLAGS"
%configure --disable-static --with-pic \ %configure --disable-static --with-pic \

View File

@ -1,7 +1,7 @@
Index: libvirt-0.8.7/tools/Makefile.am Index: libvirt-0.8.8/tools/Makefile.am
=================================================================== ===================================================================
--- libvirt-0.8.7.orig/tools/Makefile.am --- libvirt-0.8.8.orig/tools/Makefile.am
+++ libvirt-0.8.7/tools/Makefile.am +++ libvirt-0.8.8/tools/Makefile.am
@@ -129,18 +129,18 @@ install-data-local: install-init @@ -129,18 +129,18 @@ install-data-local: install-init
uninstall-local: uninstall-init uninstall-local: uninstall-init
@ -28,7 +28,7 @@ Index: libvirt-0.8.7/tools/Makefile.am
BUILT_SOURCES += libvirt-guests.init BUILT_SOURCES += libvirt-guests.init
@@ -152,11 +152,6 @@ libvirt-guests.init: libvirt-guests.init @@ -155,11 +155,6 @@ libvirt-guests.init: libvirt-guests.init
< $< > $@-t && \ < $< > $@-t && \
chmod a+x $@-t && \ chmod a+x $@-t && \
mv $@-t $@ mv $@-t $@
@ -40,10 +40,10 @@ Index: libvirt-0.8.7/tools/Makefile.am
CLEANFILES = $(bin_SCRIPTS) $(man1_MANS) CLEANFILES = $(bin_SCRIPTS) $(man1_MANS)
Index: libvirt-0.8.7/tools/libvirt-guests.sysconf Index: libvirt-0.8.8/tools/libvirt-guests.sysconf
=================================================================== ===================================================================
--- libvirt-0.8.7.orig/tools/libvirt-guests.sysconf --- libvirt-0.8.8.orig/tools/libvirt-guests.sysconf
+++ libvirt-0.8.7/tools/libvirt-guests.sysconf +++ libvirt-0.8.8/tools/libvirt-guests.sysconf
@@ -1,15 +1,23 @@ @@ -1,15 +1,23 @@
+## Path: System/Virtualization/libvirt +## Path: System/Virtualization/libvirt
+ +
@ -82,10 +82,10 @@ Index: libvirt-0.8.7/tools/libvirt-guests.sysconf
# number of seconds we're willing to wait for a guest to shut down # number of seconds we're willing to wait for a guest to shut down
-#SHUTDOWN_TIMEOUT=0 -#SHUTDOWN_TIMEOUT=0
+SHUTDOWN_TIMEOUT=120 +SHUTDOWN_TIMEOUT=120
Index: libvirt-0.8.7/tools/libvirt-guests.init.in Index: libvirt-0.8.8/tools/libvirt-guests.init.sh
=================================================================== ===================================================================
--- libvirt-0.8.7.orig/tools/libvirt-guests.init.in --- libvirt-0.8.8.orig/tools/libvirt-guests.init.sh
+++ libvirt-0.8.7/tools/libvirt-guests.init.in +++ libvirt-0.8.8/tools/libvirt-guests.init.sh
@@ -4,10 +4,10 @@ @@ -4,10 +4,10 @@
# #
### BEGIN INIT INFO ### BEGIN INIT INFO
@ -108,18 +108,18 @@ Index: libvirt-0.8.7/tools/libvirt-guests.init.in
+. /etc/rc.status +. /etc/rc.status
+rc_reset +rc_reset
+ +
sysconfdir=@sysconfdir@ sysconfdir="@sysconfdir@"
localstatedir=@localstatedir@ localstatedir="@localstatedir@"
libvirtd=@sbindir@/libvirtd libvirtd="@sbindir@"/libvirtd
-# Source function library. -# Source function library.
-test ! -r "$sysconfdir"/rc.d/init.d/functions || -test ! -r "$sysconfdir"/rc.d/init.d/functions ||
- . "$sysconfdir"/rc.d/init.d/functions - . "$sysconfdir"/rc.d/init.d/functions
- -
URIS=default # Source gettext library.
ON_BOOT=start # Make sure this file is recognized as having translations: _("dummy")
ON_SHUTDOWN=suspend . "@bindir@"/gettext.sh
@@ -42,12 +41,10 @@ test -f "$sysconfdir"/sysconfig/libvirt- @@ -49,12 +48,10 @@ test -f "$sysconfdir"/sysconfig/libvirt-
LISTFILE="$localstatedir"/lib/libvirt/libvirt-guests LISTFILE="$localstatedir"/lib/libvirt/libvirt-guests
VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/subsys/libvirt-guests VAR_SUBSYS_LIBVIRT_GUESTS="$localstatedir"/lock/subsys/libvirt-guests
@ -133,7 +133,7 @@ Index: libvirt-0.8.7/tools/libvirt-guests.init.in
return 1 return 1
else else
return 0 return 0
@@ -71,12 +68,31 @@ run_virsh_c() { @@ -78,12 +75,31 @@ run_virsh_c() {
( export LC_ALL=C; run_virsh "$@" ) ( export LC_ALL=C; run_virsh "$@" )
} }
@ -166,7 +166,7 @@ Index: libvirt-0.8.7/tools/libvirt-guests.init.in
return 1 return 1
fi fi
@@ -84,7 +100,7 @@ list_guests() { @@ -91,7 +107,7 @@ list_guests() {
for id in $(echo "$list" | awk 'NR > 2 {print $1}'); do for id in $(echo "$list" | awk 'NR > 2 {print $1}'); do
uuid=$(run_virsh_c $uri dominfo $id | awk '/^UUID:/{print $2}') uuid=$(run_virsh_c $uri dominfo $id | awk '/^UUID:/{print $2}')
if [ -z "$uuid" ]; then if [ -z "$uuid" ]; then
@ -175,7 +175,7 @@ Index: libvirt-0.8.7/tools/libvirt-guests.init.in
return 1 return 1
fi fi
uuids="$uuids $uuid" uuids="$uuids $uuid"
@@ -111,7 +127,7 @@ guest_is_on() { @@ -118,7 +134,7 @@ guest_is_on() {
guest_running=false guest_running=false
info=$(run_virsh_c $uri dominfo $uuid) info=$(run_virsh_c $uri dominfo $uuid)
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
@ -184,7 +184,7 @@ Index: libvirt-0.8.7/tools/libvirt-guests.init.in
return 1 return 1
fi fi
@@ -148,6 +164,12 @@ start() { @@ -156,6 +172,12 @@ start() {
continue continue
fi fi
@ -194,35 +194,35 @@ Index: libvirt-0.8.7/tools/libvirt-guests.init.in
+ continue + continue
+ fi + fi
+ +
echo $"Resuming guests on $uri URI..." eval_gettext "Resuming guests on \$uri URI..."; echo
for guest in $list; do for guest in $list; do
name=$(guest_name $uri $guest) name=$(guest_name $uri $guest)
@@ -227,7 +249,7 @@ stop() { @@ -237,7 +259,7 @@ stop() {
suspending=false
if [ $SHUTDOWN_TIMEOUT -le 0 ]; then if [ $SHUTDOWN_TIMEOUT -le 0 ]; then
echo $"Shutdown action requested but SHUTDOWN_TIMEOUT was not set" gettext "Shutdown action requested but SHUTDOWN_TIMEOUT was not set"
echo
- RETVAL=6 - RETVAL=6
+ rc_failed 6 + rc_failed 6
return return
fi fi
fi fi
@@ -291,14 +313,13 @@ gueststatus() { @@ -301,14 +323,13 @@ gueststatus() {
rh_status() { rh_status() {
if [ -f "$LISTFILE" ]; then if [ -f "$LISTFILE" ]; then
echo $"stopped, with saved guests" gettext "stopped, with saved guests"; echo
- RETVAL=3 - RETVAL=3
+ rc_failed 3 + rc_failed 3
else else
if [ -f "$VAR_SUBSYS_LIBVIRT_GUESTS" ]; then if [ -f "$VAR_SUBSYS_LIBVIRT_GUESTS" ]; then
echo $"started" gettext "started"; echo
else else
echo $"stopped, with no saved guests" gettext "stopped, with no saved guests"; echo
fi fi
- RETVAL=0 - RETVAL=0
fi fi
} }
@@ -340,4 +361,4 @@ case "$1" in @@ -352,4 +373,4 @@ case "$1" in
usage usage
;; ;;
esac esac

View File

@ -13,10 +13,10 @@ Date: Wed Jan 27 16:11:41 2010 -0700
This approach allows removing a disk when domain is inactive. We This approach allows removing a disk when domain is inactive. We
obviously can't search xenstore when the domain is inactive. obviously can't search xenstore when the domain is inactive.
Index: libvirt-0.8.7/src/xen/xend_internal.c Index: libvirt-0.8.8/src/xen/xend_internal.c
=================================================================== ===================================================================
--- libvirt-0.8.7.orig/src/xen/xend_internal.c --- libvirt-0.8.8.orig/src/xen/xend_internal.c
+++ libvirt-0.8.7/src/xen/xend_internal.c +++ libvirt-0.8.8/src/xen/xend_internal.c
@@ -89,6 +89,7 @@ xenDaemonFormatSxprOnePCI(virDomainHostd @@ -89,6 +89,7 @@ xenDaemonFormatSxprOnePCI(virDomainHostd
static int static int
@ -25,7 +25,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
virDomainDeviceDefPtr dev, virDomainDeviceDefPtr dev,
char *class, char *class,
char *ref, char *ref,
@@ -4054,7 +4055,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr @@ -4088,7 +4089,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr
sexpr = virBufferContentAndReset(&buf); sexpr = virBufferContentAndReset(&buf);
@ -34,7 +34,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
/* device doesn't exist, define it */ /* device doesn't exist, define it */
ret = xend_op(domain->conn, domain->name, "op", "device_create", ret = xend_op(domain->conn, domain->name, "op", "device_create",
"config", sexpr, NULL); "config", sexpr, NULL);
@@ -4172,7 +4173,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr @@ -4211,7 +4212,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr
sexpr = virBufferContentAndReset(&buf); sexpr = virBufferContentAndReset(&buf);
@ -43,7 +43,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
virXendError(VIR_ERR_OPERATION_INVALID, "%s", virXendError(VIR_ERR_OPERATION_INVALID, "%s",
_("requested device does not exist")); _("requested device does not exist"));
goto cleanup; goto cleanup;
@@ -4265,7 +4266,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr @@ -4304,7 +4305,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr
def, xml, VIR_DOMAIN_XML_INACTIVE))) def, xml, VIR_DOMAIN_XML_INACTIVE)))
goto cleanup; goto cleanup;
@ -52,7 +52,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
goto cleanup; goto cleanup;
if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) { if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) {
@@ -6037,6 +6038,7 @@ error: @@ -6085,6 +6086,7 @@ error:
*/ */
static int static int
virDomainXMLDevID(virDomainPtr domain, virDomainXMLDevID(virDomainPtr domain,
@ -60,7 +60,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
virDomainDeviceDefPtr dev, virDomainDeviceDefPtr dev,
char *class, char *class,
char *ref, char *ref,
@@ -6045,8 +6047,12 @@ virDomainXMLDevID(virDomainPtr domain, @@ -6093,8 +6095,12 @@ virDomainXMLDevID(virDomainPtr domain,
xenUnifiedPrivatePtr priv = domain->conn->privateData; xenUnifiedPrivatePtr priv = domain->conn->privateData;
char *xref; char *xref;
char *tmp; char *tmp;
@ -73,7 +73,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
if (dev->data.disk->driverName && if (dev->data.disk->driverName &&
STREQ(dev->data.disk->driverName, "tap")) STREQ(dev->data.disk->driverName, "tap"))
strcpy(class, "tap"); strcpy(class, "tap");
@@ -6056,19 +6062,21 @@ virDomainXMLDevID(virDomainPtr domain, @@ -6104,19 +6110,21 @@ virDomainXMLDevID(virDomainPtr domain,
else else
strcpy(class, "vbd"); strcpy(class, "vbd");

View File

@ -1,8 +1,8 @@
Index: libvirt-0.8.6/src/xen/xend_internal.c Index: libvirt-0.8.8/src/xen/xend_internal.c
=================================================================== ===================================================================
--- libvirt-0.8.6.orig/src/xen/xend_internal.c --- libvirt-0.8.8.orig/src/xen/xend_internal.c
+++ libvirt-0.8.6/src/xen/xend_internal.c +++ libvirt-0.8.8/src/xen/xend_internal.c
@@ -1358,7 +1358,7 @@ error: @@ -1365,7 +1365,7 @@ error:
static int static int
xenDaemonParseSxprDisks(virDomainDefPtr def, xenDaemonParseSxprDisks(virDomainDefPtr def,
const struct sexpr *root, const struct sexpr *root,
@ -11,7 +11,7 @@ Index: libvirt-0.8.6/src/xen/xend_internal.c
int xendConfigVersion) int xendConfigVersion)
{ {
const struct sexpr *cur, *node; const struct sexpr *cur, *node;
@@ -1405,7 +1405,6 @@ xenDaemonParseSxprDisks(virDomainDefPtr @@ -1412,7 +1412,6 @@ xenDaemonParseSxprDisks(virDomainDefPtr
/* There is a case without the uname to the CD-ROM device */ /* There is a case without the uname to the CD-ROM device */
offset = strchr(dst, ':'); offset = strchr(dst, ':');
if (!offset || if (!offset ||

View File

@ -1,8 +1,8 @@
Index: libvirt-0.8.6/src/xen/xend_internal.c Index: libvirt-0.8.8/src/xen/xend_internal.c
=================================================================== ===================================================================
--- libvirt-0.8.6.orig/src/xen/xend_internal.c --- libvirt-0.8.8.orig/src/xen/xend_internal.c
+++ libvirt-0.8.6/src/xen/xend_internal.c +++ libvirt-0.8.8/src/xen/xend_internal.c
@@ -1376,20 +1376,24 @@ xenDaemonParseSxprDisks(virDomainDefPtr @@ -1383,20 +1383,24 @@ xenDaemonParseSxprDisks(virDomainDefPtr
const char *src = NULL; const char *src = NULL;
const char *dst = NULL; const char *dst = NULL;
const char *mode = NULL; const char *mode = NULL;
@ -27,7 +27,7 @@ Index: libvirt-0.8.6/src/xen/xend_internal.c
} }
if (VIR_ALLOC(disk) < 0) if (VIR_ALLOC(disk) < 0)
@@ -1514,7 +1518,12 @@ xenDaemonParseSxprDisks(virDomainDefPtr @@ -1521,7 +1525,12 @@ xenDaemonParseSxprDisks(virDomainDefPtr
if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0) if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0)
goto no_memory; goto no_memory;