This commit is contained in:
parent
a40fb3174a
commit
8de724150a
@ -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;
|
@ -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) {
|
@ -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);
|
@ -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
|
||||
};
|
@ -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 @@
|
||||
<pae/>
|
||||
<acpi/>
|
||||
<apic/>
|
||||
+ <hap/>
|
||||
</features>
|
||||
...</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>
|
@ -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);
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ Index: src/lxc/lxc_container.c
|
||||
===================================================================
|
||||
--- src/lxc/lxc_container.c.orig
|
||||
+++ 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 };
|
||||
|
||||
/* allocate a stack for the container */
|
||||
@ -12,7 +12,7 @@ Index: src/lxc/lxc_container.c
|
||||
if (VIR_ALLOC_N(stack, stacksize) < 0) {
|
||||
virReportOOMError();
|
||||
return -1;
|
||||
@@ -856,7 +859,11 @@ int lxcContainerStart(virDomainDefPtr de
|
||||
@@ -863,7 +866,11 @@ int lxcContainerStart(virDomainDefPtr de
|
||||
flags |= CLONE_NEWNET;
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@ Index: src/lxc/lxc_container.c
|
||||
VIR_FREE(stack);
|
||||
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 *stack;
|
||||
int childStatus;
|
||||
@ -32,7 +32,7 @@ Index: src/lxc/lxc_container.c
|
||||
|
||||
if (features & LXC_CONTAINER_FEATURE_USER)
|
||||
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)
|
||||
flags |= CLONE_NEWNET;
|
||||
|
||||
|
27
efc2594b-boot-param.patch
Normal file
27
efc2594b-boot-param.patch
Normal 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:
|
@ -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
3
libvirt-0.8.8.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1b055afdea9df8d502b7572ea4c81a9aa5fa0f8688d3a58cf63abcef6e84b807
|
||||
size 9569079
|
@ -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
|
||||
|
||||
|
19
libvirt.spec
19
libvirt.spec
@ -144,8 +144,8 @@ Url: http://libvirt.org/
|
||||
License: LGPLv2.1+
|
||||
Group: Development/Libraries/C and C++
|
||||
AutoReqProv: yes
|
||||
Version: 0.8.7
|
||||
Release: 3
|
||||
Version: 0.8.8
|
||||
Release: 1
|
||||
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
|
||||
Requires: %{name}-client = %{version}-%{release}
|
||||
@ -169,13 +169,7 @@ Recommends: PolicyKit >= 0.6
|
||||
Source0: %{name}-%{version}.tar.bz2
|
||||
Source1: libvirtd.init
|
||||
# Upstream patches
|
||||
Patch0: a43c7338-dnsmasq-hostfile-fix.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
|
||||
Patch0: efc2594b-boot-param.patch
|
||||
# Need to go upstream
|
||||
Patch100: xen-name-for-devid.patch
|
||||
Patch102: clone.patch
|
||||
@ -289,12 +283,6 @@ Authors:
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch100 -p1
|
||||
%patch102
|
||||
%patch103 -p1
|
||||
@ -361,6 +349,7 @@ Authors:
|
||||
%if ! %{with_virtualport}
|
||||
%define _without_virtualport --without-virtualport
|
||||
%endif
|
||||
|
||||
autoreconf -f -i
|
||||
export CFLAGS="$RPM_OPT_FLAGS"
|
||||
%configure --disable-static --with-pic \
|
||||
|
@ -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.7/tools/Makefile.am
|
||||
--- libvirt-0.8.8.orig/tools/Makefile.am
|
||||
+++ libvirt-0.8.8/tools/Makefile.am
|
||||
@@ -129,18 +129,18 @@ install-data-local: install-init
|
||||
|
||||
uninstall-local: uninstall-init
|
||||
@ -28,7 +28,7 @@ Index: libvirt-0.8.7/tools/Makefile.am
|
||||
|
||||
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 && \
|
||||
chmod a+x $@-t && \
|
||||
mv $@-t $@
|
||||
@ -40,10 +40,10 @@ Index: libvirt-0.8.7/tools/Makefile.am
|
||||
|
||||
|
||||
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.7/tools/libvirt-guests.sysconf
|
||||
--- libvirt-0.8.8.orig/tools/libvirt-guests.sysconf
|
||||
+++ libvirt-0.8.8/tools/libvirt-guests.sysconf
|
||||
@@ -1,15 +1,23 @@
|
||||
+## 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
|
||||
-#SHUTDOWN_TIMEOUT=0
|
||||
+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.7/tools/libvirt-guests.init.in
|
||||
--- libvirt-0.8.8.orig/tools/libvirt-guests.init.sh
|
||||
+++ libvirt-0.8.8/tools/libvirt-guests.init.sh
|
||||
@@ -4,10 +4,10 @@
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
@ -108,18 +108,18 @@ Index: libvirt-0.8.7/tools/libvirt-guests.init.in
|
||||
+. /etc/rc.status
|
||||
+rc_reset
|
||||
+
|
||||
sysconfdir=@sysconfdir@
|
||||
localstatedir=@localstatedir@
|
||||
libvirtd=@sbindir@/libvirtd
|
||||
sysconfdir="@sysconfdir@"
|
||||
localstatedir="@localstatedir@"
|
||||
libvirtd="@sbindir@"/libvirtd
|
||||
|
||||
-# Source function library.
|
||||
-test ! -r "$sysconfdir"/rc.d/init.d/functions ||
|
||||
- . "$sysconfdir"/rc.d/init.d/functions
|
||||
- . "$sysconfdir"/rc.d/init.d/functions
|
||||
-
|
||||
URIS=default
|
||||
ON_BOOT=start
|
||||
ON_SHUTDOWN=suspend
|
||||
@@ -42,12 +41,10 @@ test -f "$sysconfdir"/sysconfig/libvirt-
|
||||
# Source gettext library.
|
||||
# Make sure this file is recognized as having translations: _("dummy")
|
||||
. "@bindir@"/gettext.sh
|
||||
@@ -49,12 +48,10 @@ test -f "$sysconfdir"/sysconfig/libvirt-
|
||||
LISTFILE="$localstatedir"/lib/libvirt/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
|
||||
else
|
||||
return 0
|
||||
@@ -71,12 +68,31 @@ run_virsh_c() {
|
||||
@@ -78,12 +75,31 @@ run_virsh_c() {
|
||||
( export LC_ALL=C; run_virsh "$@" )
|
||||
}
|
||||
|
||||
@ -166,7 +166,7 @@ Index: libvirt-0.8.7/tools/libvirt-guests.init.in
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -84,7 +100,7 @@ list_guests() {
|
||||
@@ -91,7 +107,7 @@ list_guests() {
|
||||
for id in $(echo "$list" | awk 'NR > 2 {print $1}'); do
|
||||
uuid=$(run_virsh_c $uri dominfo $id | awk '/^UUID:/{print $2}')
|
||||
if [ -z "$uuid" ]; then
|
||||
@ -175,7 +175,7 @@ Index: libvirt-0.8.7/tools/libvirt-guests.init.in
|
||||
return 1
|
||||
fi
|
||||
uuids="$uuids $uuid"
|
||||
@@ -111,7 +127,7 @@ guest_is_on() {
|
||||
@@ -118,7 +134,7 @@ guest_is_on() {
|
||||
guest_running=false
|
||||
info=$(run_virsh_c $uri dominfo $uuid)
|
||||
if [ $? -ne 0 ]; then
|
||||
@ -184,7 +184,7 @@ Index: libvirt-0.8.7/tools/libvirt-guests.init.in
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -148,6 +164,12 @@ start() {
|
||||
@@ -156,6 +172,12 @@ start() {
|
||||
continue
|
||||
fi
|
||||
|
||||
@ -194,35 +194,35 @@ Index: libvirt-0.8.7/tools/libvirt-guests.init.in
|
||||
+ continue
|
||||
+ fi
|
||||
+
|
||||
echo $"Resuming guests on $uri URI..."
|
||||
eval_gettext "Resuming guests on \$uri URI..."; echo
|
||||
for guest in $list; do
|
||||
name=$(guest_name $uri $guest)
|
||||
@@ -227,7 +249,7 @@ stop() {
|
||||
suspending=false
|
||||
@@ -237,7 +259,7 @@ stop() {
|
||||
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
|
||||
+ rc_failed 6
|
||||
return
|
||||
fi
|
||||
fi
|
||||
@@ -291,14 +313,13 @@ gueststatus() {
|
||||
@@ -301,14 +323,13 @@ gueststatus() {
|
||||
rh_status() {
|
||||
if [ -f "$LISTFILE" ]; then
|
||||
echo $"stopped, with saved guests"
|
||||
gettext "stopped, with saved guests"; echo
|
||||
- RETVAL=3
|
||||
+ rc_failed 3
|
||||
else
|
||||
if [ -f "$VAR_SUBSYS_LIBVIRT_GUESTS" ]; then
|
||||
echo $"started"
|
||||
gettext "started"; echo
|
||||
else
|
||||
echo $"stopped, with no saved guests"
|
||||
gettext "stopped, with no saved guests"; echo
|
||||
fi
|
||||
- RETVAL=0
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -340,4 +361,4 @@ case "$1" in
|
||||
@@ -352,4 +373,4 @@ case "$1" in
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
|
@ -13,10 +13,10 @@ Date: Wed Jan 27 16:11:41 2010 -0700
|
||||
This approach allows removing a disk when domain is inactive. We
|
||||
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.7/src/xen/xend_internal.c
|
||||
--- libvirt-0.8.8.orig/src/xen/xend_internal.c
|
||||
+++ libvirt-0.8.8/src/xen/xend_internal.c
|
||||
@@ -89,6 +89,7 @@ xenDaemonFormatSxprOnePCI(virDomainHostd
|
||||
|
||||
static int
|
||||
@ -25,7 +25,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
|
||||
virDomainDeviceDefPtr dev,
|
||||
char *class,
|
||||
char *ref,
|
||||
@@ -4054,7 +4055,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr
|
||||
@@ -4088,7 +4089,7 @@ xenDaemonAttachDeviceFlags(virDomainPtr
|
||||
|
||||
sexpr = virBufferContentAndReset(&buf);
|
||||
|
||||
@ -34,7 +34,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
|
||||
/* device doesn't exist, define it */
|
||||
ret = xend_op(domain->conn, domain->name, "op", "device_create",
|
||||
"config", sexpr, NULL);
|
||||
@@ -4172,7 +4173,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr
|
||||
@@ -4211,7 +4212,7 @@ xenDaemonUpdateDeviceFlags(virDomainPtr
|
||||
|
||||
sexpr = virBufferContentAndReset(&buf);
|
||||
|
||||
@ -43,7 +43,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
|
||||
virXendError(VIR_ERR_OPERATION_INVALID, "%s",
|
||||
_("requested device does not exist"));
|
||||
goto cleanup;
|
||||
@@ -4265,7 +4266,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr
|
||||
@@ -4304,7 +4305,7 @@ xenDaemonDetachDeviceFlags(virDomainPtr
|
||||
def, xml, VIR_DOMAIN_XML_INACTIVE)))
|
||||
goto cleanup;
|
||||
|
||||
@ -52,7 +52,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
|
||||
goto cleanup;
|
||||
|
||||
if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) {
|
||||
@@ -6037,6 +6038,7 @@ error:
|
||||
@@ -6085,6 +6086,7 @@ error:
|
||||
*/
|
||||
static int
|
||||
virDomainXMLDevID(virDomainPtr domain,
|
||||
@ -60,7 +60,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
|
||||
virDomainDeviceDefPtr dev,
|
||||
char *class,
|
||||
char *ref,
|
||||
@@ -6045,8 +6047,12 @@ virDomainXMLDevID(virDomainPtr domain,
|
||||
@@ -6093,8 +6095,12 @@ virDomainXMLDevID(virDomainPtr domain,
|
||||
xenUnifiedPrivatePtr priv = domain->conn->privateData;
|
||||
char *xref;
|
||||
char *tmp;
|
||||
@ -73,7 +73,7 @@ Index: libvirt-0.8.7/src/xen/xend_internal.c
|
||||
if (dev->data.disk->driverName &&
|
||||
STREQ(dev->data.disk->driverName, "tap"))
|
||||
strcpy(class, "tap");
|
||||
@@ -6056,19 +6062,21 @@ virDomainXMLDevID(virDomainPtr domain,
|
||||
@@ -6104,19 +6110,21 @@ virDomainXMLDevID(virDomainPtr domain,
|
||||
else
|
||||
strcpy(class, "vbd");
|
||||
|
||||
|
@ -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.6/src/xen/xend_internal.c
|
||||
@@ -1358,7 +1358,7 @@ error:
|
||||
--- libvirt-0.8.8.orig/src/xen/xend_internal.c
|
||||
+++ libvirt-0.8.8/src/xen/xend_internal.c
|
||||
@@ -1365,7 +1365,7 @@ error:
|
||||
static int
|
||||
xenDaemonParseSxprDisks(virDomainDefPtr def,
|
||||
const struct sexpr *root,
|
||||
@ -11,7 +11,7 @@ Index: libvirt-0.8.6/src/xen/xend_internal.c
|
||||
int xendConfigVersion)
|
||||
{
|
||||
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 */
|
||||
offset = strchr(dst, ':');
|
||||
if (!offset ||
|
||||
|
@ -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.6/src/xen/xend_internal.c
|
||||
@@ -1376,20 +1376,24 @@ xenDaemonParseSxprDisks(virDomainDefPtr
|
||||
--- libvirt-0.8.8.orig/src/xen/xend_internal.c
|
||||
+++ libvirt-0.8.8/src/xen/xend_internal.c
|
||||
@@ -1383,20 +1383,24 @@ xenDaemonParseSxprDisks(virDomainDefPtr
|
||||
const char *src = NULL;
|
||||
const char *dst = NULL;
|
||||
const char *mode = NULL;
|
||||
@ -27,7 +27,7 @@ Index: libvirt-0.8.6/src/xen/xend_internal.c
|
||||
}
|
||||
|
||||
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)
|
||||
goto no_memory;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user