[libvirt] [PATCH] virsh: man: Add LXC format info for domxml-from/to-native
by Li Yang
Signed-off-by: Li Yang <liyang.fnst(a)cn.fujitsu.com>
---
tools/virsh.pod | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/tools/virsh.pod b/tools/virsh.pod
index 9efb920..015f119 100644
--- a/tools/virsh.pod
+++ b/tools/virsh.pod
@@ -1128,14 +1128,16 @@ in order to get or set the guest time.
Convert the file I<config> in the native guest configuration format
named by I<format> to a domain XML format. For QEMU/KVM hypervisor,
the I<format> argument must be B<qemu-argv>. For Xen hypervisor, the
-I<format> argument may be B<xen-xm> or B<xen-sxpr>.
+I<format> argument may be B<xen-xm> or B<xen-sxpr>. For LXC hypervisor,
+the I<format> argument must be B<lxc-tools>.
=item B<domxml-to-native> I<format> I<xml>
Convert the file I<xml> in domain XML format to the native guest
configuration format named by I<format>. For QEMU/KVM hypervisor,
the I<format> argument must be B<qemu-argv>. For Xen hypervisor, the
-I<format> argument may be B<xen-xm> or B<xen-sxpr>.
+I<format> argument may be B<xen-xm> or B<xen-sxpr>. For LXC hypervisor,
+the I<format> argument must be B<lxc-tools>.
=item B<dump> I<domain> I<corefilepath> [I<--bypass-cache>]
{ [I<--live>] | [I<--crash>] | [I<--reset>] } [I<--verbose>] [I<--memory-only>]
--
1.7.1
10 years, 4 months
[libvirt] [PATCH v2] Perform disk config validity checking for attach-device config
by John Ferlan
https://bugzilla.redhat.com/show_bug.cgi?id=1078126
Using 'virsh attach-device --config' (or --persistent) to attach a
file backed lun device will succeed; however, subsequent domain restarts
will result in failure because the configuration of a file backed lun
is not supported.
Although allowing 'illegal configurations' is something that can be
allowed, it may not be practical in this case. Generally, when attaching
a device to a domain means the domain must be running. A way around
this is using the --config (or --persistent) option. When an attach
is done to a running domain, a temporary configuration is modified
first followed by the live update. The live update will make a number
of disk validity checks when building the qemu command to attach the
disk. If any fail, then change is rejected.
Rather than allow a potentially illegal combination, adjust the code
in the configuration path to make the same checks as the running path
will make with respect to disk validity checks. This way we avoid
having the potential for some subsequent start/reboot to fail because
an illegal combination was allowed.
NB: The live path still checks the configuration since it is possible
to just do --live guest modification...
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
Changes since V1:
http://www.redhat.com/archives/libvir-list/2014-August/msg00045.html
Based on #virt IRC discussion this morning
- move the qemu_caps checking to only occur during the live check
- slightly change the name of the called routine
src/qemu/qemu_command.c | 127 +++++++++++++++++++++++++++---------------------
src/qemu/qemu_command.h | 2 +
src/qemu/qemu_driver.c | 2 +
3 files changed, 76 insertions(+), 55 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 033a5a8..c1791d9 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3230,6 +3230,73 @@ qemuGetDriveSourceString(virStorageSourcePtr src,
}
+/* Perform disk definition config validity checks */
+int
+qemuBuildCheckDiskConfig(virDomainDiskDefPtr disk)
+{
+ if (virDiskNameToIndex(disk->dst) < 0) {
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("unsupported disk type '%s'"), disk->dst);
+ goto error;
+ }
+
+ if (disk->wwn) {
+ if ((disk->bus != VIR_DOMAIN_DISK_BUS_IDE) &&
+ (disk->bus != VIR_DOMAIN_DISK_BUS_SCSI)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Only ide and scsi disk support wwn"));
+ goto error;
+ }
+ }
+
+ if ((disk->vendor || disk->product) &&
+ disk->bus != VIR_DOMAIN_DISK_BUS_SCSI) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Only scsi disk supports vendor and product"));
+ goto error;
+ }
+
+ if (disk->device == VIR_DOMAIN_DISK_DEVICE_LUN) {
+ /* make sure that both the bus supports type='lun' (SG_IO). */
+ if (disk->bus != VIR_DOMAIN_DISK_BUS_VIRTIO &&
+ disk->bus != VIR_DOMAIN_DISK_BUS_SCSI) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("disk device='lun' is not supported for bus='%s'"),
+ virDomainDiskQEMUBusTypeToString(disk->bus));
+ goto error;
+ }
+ if (disk->src->type == VIR_STORAGE_TYPE_NETWORK) {
+ if (disk->src->protocol != VIR_STORAGE_NET_PROTOCOL_ISCSI) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("disk device='lun' is not supported "
+ "for protocol='%s'"),
+ virStorageNetProtocolTypeToString(disk->src->protocol));
+ goto error;
+ }
+ } else if (!virDomainDiskSourceIsBlockType(disk)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("disk device='lun' is only valid for block "
+ "type disk source"));
+ goto error;
+ }
+ if (disk->wwn) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Setting wwn is not supported for lun device"));
+ goto error;
+ }
+ if (disk->vendor || disk->product) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Setting vendor or product is not supported "
+ "for lun device"));
+ goto error;
+ }
+ }
+ return 0;
+ error:
+ return -1;
+}
+
+
char *
qemuBuildDriveStr(virConnectPtr conn,
virDomainDiskDefPtr disk,
@@ -3616,68 +3683,18 @@ qemuBuildDriveDevStr(virDomainDefPtr def,
{
virBuffer opt = VIR_BUFFER_INITIALIZER;
const char *bus = virDomainDiskQEMUBusTypeToString(disk->bus);
- int idx = virDiskNameToIndex(disk->dst);
int controllerModel;
- if (idx < 0) {
- virReportError(VIR_ERR_INTERNAL_ERROR,
- _("unsupported disk type '%s'"), disk->dst);
+ if (qemuBuildCheckDiskConfig(disk) < 0)
goto error;
- }
-
- if (disk->wwn) {
- if ((disk->bus != VIR_DOMAIN_DISK_BUS_IDE) &&
- (disk->bus != VIR_DOMAIN_DISK_BUS_SCSI)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Only ide and scsi disk support wwn"));
- goto error;
- }
- }
-
- if ((disk->vendor || disk->product) &&
- disk->bus != VIR_DOMAIN_DISK_BUS_SCSI) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Only scsi disk supports vendor and product"));
- goto error;
- }
+ /* Live only checks */
if (disk->device == VIR_DOMAIN_DISK_DEVICE_LUN) {
- /* make sure that both the bus and the qemu binary support
- * type='lun' (SG_IO).
- */
- if (disk->bus != VIR_DOMAIN_DISK_BUS_VIRTIO &&
- disk->bus != VIR_DOMAIN_DISK_BUS_SCSI) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("disk device='lun' is not supported for bus='%s'"),
- bus);
- goto error;
- }
- if (disk->src->type == VIR_STORAGE_TYPE_NETWORK) {
- if (disk->src->protocol != VIR_STORAGE_NET_PROTOCOL_ISCSI) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("disk device='lun' is not supported for protocol='%s'"),
- virStorageNetProtocolTypeToString(disk->src->protocol));
- goto error;
- }
- } else if (!virDomainDiskSourceIsBlockType(disk)) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("disk device='lun' is only valid for block type disk source"));
- goto error;
- }
+ /* make sure that the qemu binary supports type='lun' (SG_IO). */
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_BLK_SG_IO)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("disk device='lun' is not supported by this QEMU"));
- goto error;
- }
- if (disk->wwn) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Setting wwn is not supported for lun device"));
- goto error;
- }
- if (disk->vendor || disk->product) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
- _("Setting vendor or product is not supported "
- "for lun device"));
+ _("disk device='lun' is not supported by "
+ "this QEMU"));
goto error;
}
}
diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h
index b71e964..446f696 100644
--- a/src/qemu/qemu_command.h
+++ b/src/qemu/qemu_command.h
@@ -271,4 +271,6 @@ qemuParseKeywords(const char *str,
int qemuGetDriveSourceString(virStorageSourcePtr src,
virConnectPtr conn,
char **source);
+
+int qemuBuildCheckDiskConfig(virDomainDiskDefPtr disk);
#endif /* __QEMU_COMMAND_H__*/
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 96835bc..b6a2207 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -6746,6 +6746,8 @@ qemuDomainAttachDeviceConfig(virQEMUCapsPtr qemuCaps,
_("target %s already exists"), disk->dst);
return -1;
}
+ if (qemuBuildCheckDiskConfig(disk) < 0)
+ return -1;
if (virDomainDiskInsert(vmdef, disk))
return -1;
/* vmdef has the pointer. Generic codes for vmdef will do all jobs */
--
1.9.3
10 years, 4 months
[libvirt] [PATCH] hvsupport: Adapt to vbox driver rewrite
by Michal Privoznik
Since vbox driver rewrite the virDriver structure init moved from
vbox_tmpl.c into vbox_common.c. However, our hvsupport.pl script
doesn't count with that. It still parses vbox_tmp.c and looks for
virDriver structure which is not found there anymore. As a result,
at hvsupport page is seems like vbox driver doesn't support
anything.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
docs/hvsupport.pl | 2 +-
src/vbox/vbox_driver.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/hvsupport.pl b/docs/hvsupport.pl
index f8483f9..34ba599 100755
--- a/docs/hvsupport.pl
+++ b/docs/hvsupport.pl
@@ -28,7 +28,7 @@ my %groupheaders = (
my @srcs;
find({
wanted => sub {
- if (m!$srcdir/.*/\w+_(driver|tmpl|monitor|hal|udev)\.c$!) {
+ if (m!$srcdir/.*/\w+_(driver|common|tmpl|monitor|hal|udev)\.c$!) {
push @srcs, $_ if $_ !~ /vbox_driver\.c/;
}
}, no_chdir => 1}, $srcdir);
diff --git a/src/vbox/vbox_driver.c b/src/vbox/vbox_driver.c
index f0c05fe..498be71 100644
--- a/src/vbox/vbox_driver.c
+++ b/src/vbox/vbox_driver.c
@@ -210,5 +210,5 @@ static virDrvOpenStatus dummyConnectOpen(virConnectPtr conn,
static virDriver vboxDriverDummy = {
VIR_DRV_VBOX,
"VBOX",
- .connectOpen = dummyConnectOpen,
+ .connectOpen = dummyConnectOpen, /* 0.6.3 */
};
--
1.8.5.5
10 years, 4 months
[libvirt] Libvirtd not initializing after 65b7d553
by David Kiarie
For some I cannot be able able to use virsh after 65b7d553.
Libvirtd initializes without errors but I guess something is going
unreported
$libvirtd -d
2014-08-21 09:29:22.748+0000: 468: info : libvirt version: 1.2.8
2014-08-21 09:29:22.748+0000: 468: warning : virGetHostname:665 :
getaddrinfo failed for 'linux-xzc4': Name or service not known
$ps aux | grep libvirtd
root 471 0.0 0.1 375692 10268 ? SLl 12:29 0:00
libvirtd -d
root 570 0.0 0.0 10520 928 pts/0 S+ 12:30 0:00 grep
--color=auto libvirtd
$virsh nodeinfo
error: failed to connect to the hypervisor
error: no valid connection
error: An error occurred, but the cause is unknown
$libvirtd -vvv
2014-08-21 09:31:12.549+0000: 584: info : libvirt version: 1.2.8
2014-08-21 09:31:12.549+0000: 584: warning : virGetHostname:665 :
getaddrinfo failed for 'linux-xzc4': Name or service not known
2014-08-21 09:31:12.919+0000: 596: info : libvirt version: 1.2.8
2014-08-21 09:31:12.919+0000: 596: warning : virQEMUCapsInit:976 :
Failed to query host NUMA topology, disabling NUMA capabilities
2014-08-21 09:31:12.920+0000: 596: warning : virQEMUCapsInit:980 :
Failed to get host CPU
2014-08-21 09:31:12.978+0000: 596: warning : virLXCDriverCapsInit:82 :
Failed to query host NUMA topology, disabling NUMA capabilities
2014-08-21 09:31:12.979+0000: 596: warning : umlCapsInit:70 : Failed to
query host NUMA topology, disabling NUMA capabilities
I have no idea whether this is related to my system or the commit but
libvirt master before that commit work perfectly with me.
10 years, 4 months
[libvirt] [PATCH v3 0/3] OVMF exposure
by Michal Privoznik
diff to v2:
-Adapted to Laszlo's review on v2
Michal Privoznik (3):
conf: Extend <loader/> and introduce <nvram/>
qemu: Implement extended loader and nvram
qemu: Automatically create NVRAM store
docs/formatdomain.html.in | 19 ++-
docs/schemas/domaincommon.rng | 21 ++++
libvirt.spec.in | 2 +
src/Makefile.am | 1 +
src/conf/domain_conf.c | 87 +++++++++++++-
src/conf/domain_conf.h | 22 +++-
src/libvirt_private.syms | 3 +
src/qemu/libvirtd_qemu.aug | 3 +
src/qemu/qemu.conf | 14 +++
src/qemu/qemu_command.c | 97 ++++++++++++++-
src/qemu/qemu_conf.c | 93 +++++++++++++++
src/qemu/qemu_conf.h | 5 +
src/qemu/qemu_process.c | 132 +++++++++++++++++++++
src/qemu/test_libvirtd_qemu.aug.in | 3 +
src/security/security_dac.c | 8 ++
src/security/security_selinux.c | 8 ++
src/security/virt-aa-helper.c | 4 +-
src/vbox/vbox_common.c | 7 +-
src/xenapi/xenapi_driver.c | 3 +-
src/xenxs/xen_sxpr.c | 16 +--
src/xenxs/xen_xm.c | 7 +-
.../qemuxml2argvdata/qemuxml2argv-bios-nvram.args | 10 ++
tests/qemuxml2argvdata/qemuxml2argv-bios-nvram.xml | 40 +++++++
tests/qemuxml2argvtest.c | 2 +
.../qemuxml2xmlout-pci-bridge-many-disks.xml | 2 +-
tests/qemuxml2xmltest.c | 2 +
tests/sexpr2xmldata/sexpr2xml-fv-autoport.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-empty-kernel.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-force-hpet.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-force-nohpet.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-kernel.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-legacy-vfb.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-localtime.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-net-ioemu.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-net-netfront.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-parallel-tcp.xml | 2 +-
.../sexpr2xml-fv-serial-dev-2-ports.xml | 2 +-
.../sexpr2xml-fv-serial-dev-2nd-port.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-serial-file.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-serial-null.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-serial-pipe.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-serial-pty.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-serial-stdio.xml | 2 +-
.../sexpr2xml-fv-serial-tcp-telnet.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-serial-tcp.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-serial-udp.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-serial-unix.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-sound-all.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-sound.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-usbmouse.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-usbtablet.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-utc.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv-v2.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-fv.xml | 2 +-
tests/sexpr2xmldata/sexpr2xml-no-source-cdrom.xml | 2 +-
tests/xmconfigdata/test-escape-paths.xml | 2 +-
tests/xmconfigdata/test-fullvirt-force-hpet.xml | 2 +-
tests/xmconfigdata/test-fullvirt-force-nohpet.xml | 2 +-
tests/xmconfigdata/test-fullvirt-localtime.xml | 2 +-
tests/xmconfigdata/test-fullvirt-net-ioemu.xml | 2 +-
tests/xmconfigdata/test-fullvirt-net-netfront.xml | 2 +-
tests/xmconfigdata/test-fullvirt-new-cdrom.xml | 2 +-
tests/xmconfigdata/test-fullvirt-old-cdrom.xml | 2 +-
tests/xmconfigdata/test-fullvirt-parallel-tcp.xml | 2 +-
.../test-fullvirt-serial-dev-2-ports.xml | 2 +-
.../test-fullvirt-serial-dev-2nd-port.xml | 2 +-
tests/xmconfigdata/test-fullvirt-serial-file.xml | 2 +-
tests/xmconfigdata/test-fullvirt-serial-null.xml | 2 +-
tests/xmconfigdata/test-fullvirt-serial-pipe.xml | 2 +-
tests/xmconfigdata/test-fullvirt-serial-pty.xml | 2 +-
tests/xmconfigdata/test-fullvirt-serial-stdio.xml | 2 +-
.../test-fullvirt-serial-tcp-telnet.xml | 2 +-
tests/xmconfigdata/test-fullvirt-serial-tcp.xml | 2 +-
tests/xmconfigdata/test-fullvirt-serial-udp.xml | 2 +-
tests/xmconfigdata/test-fullvirt-serial-unix.xml | 2 +-
tests/xmconfigdata/test-fullvirt-sound.xml | 2 +-
tests/xmconfigdata/test-fullvirt-usbmouse.xml | 2 +-
tests/xmconfigdata/test-fullvirt-usbtablet.xml | 2 +-
tests/xmconfigdata/test-fullvirt-utc.xml | 2 +-
tests/xmconfigdata/test-no-source-cdrom.xml | 2 +-
tests/xmconfigdata/test-pci-devs.xml | 2 +-
81 files changed, 639 insertions(+), 82 deletions(-)
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-bios-nvram.args
create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-bios-nvram.xml
--
1.8.5.5
10 years, 4 months
[libvirt] [PATCH] virsh: Don't print extra '-'s in error message for -k and -K options
by Peter Krempa
The error message contains one extra dash.
---
Notes:
Pushed as trivial.
tools/virsh.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/virsh.c b/tools/virsh.c
index 3927120..30a84c1 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -3472,7 +3472,7 @@ vshParseArgv(vshControl *ctl, int argc, char **argv)
case 'k':
if (virStrToLong_i(optarg, NULL, 0, &keepalive) < 0 ||
keepalive < 0) {
- vshError(ctl, _("option -%s requires a positive numeric argument"),
+ vshError(ctl, _("option %s requires a positive numeric argument"),
longindex == -1 ? "-k" : "--keepalive-interval");
exit(EXIT_FAILURE);
}
@@ -3481,7 +3481,7 @@ vshParseArgv(vshControl *ctl, int argc, char **argv)
case 'K':
if (virStrToLong_i(optarg, NULL, 0, &keepalive) < 0 ||
keepalive < 0) {
- vshError(ctl, _("option -%s requires a positive numeric argument"),
+ vshError(ctl, _("option %s requires a positive numeric argument"),
longindex == -1 ? "-K" : "--keepalive-count");
exit(EXIT_FAILURE);
}
--
2.0.2
10 years, 4 months
[libvirt] [PATCH 00/13] vbox: Rewrite networkDriver
by Taowei
This series of patches rewrite the networkDriver in vbox.
As a result, all version specified network driver in vbox_driver.c is
removed and using a common driver instead.
Taowei (13):
vbox: Rewrite vboxNetworkOpen
vbox: Rewrite vboxNetworkClose
vbox: Rewrite vboxConnectNumOfNetworks
vbox: Rewrite vboxConnectListNetworks
vbox: Rewrite vboxConnectNumOfDefinedNetworks
vbox: Rewrite vboxConnectListDefinedNetworks
vbox: Rewrite vboxNetworkLookupByUUID
vbox: Rewrite vboxNetworkLookupByName
vbox: Rewrite vboxNetworkDefineCreateXML
vbox: Rewrite vboxNetworkUndefineDestroy
vbox: Rewrite vboxNetworkCreate
vbox: Rewrite vboxNetworkGetXMLDesc
vbox: Introducing vboxCommonNetworkDriver
src/vbox/vbox_common.c | 844 +++++++++++++++++++++++++++
src/vbox/vbox_common.h | 16 +
src/vbox/vbox_driver.c | 23 +-
src/vbox/vbox_tmpl.c | 1264 +++++++++++------------------------------
src/vbox/vbox_uniformed_api.h | 52 ++
5 files changed, 1244 insertions(+), 955 deletions(-)
--
1.7.9.5
10 years, 4 months
[libvirt] ANNOUNCE: libvirt-glib release 0.1.9
by Daniel P. Berrange
I am pleased to announce that a new release of the libvirt-glib package,
version 0.1.9, is now available from
ftp://libvirt.org/libvirt/glib/
The packages are GPG signed with
Key fingerprint: DAF3 A6FD B26B 6291 2D0E 8E3F BE86 EBB4 1510 4FDF (4096R)
Changes in this release:
- Require glib2 >= 2.36.0
- Add support for spiceport chardev
- Misc fixes to build system
- Fix ref counting of snapshot devices
- Add API for deleting snapshots
- Fix RPM layout for vala files
- Fix race in build of vala code
- Add API for getting security models
- Add classes for dealing with CPU models
- Fix enum generation
- Add API for fetching snapshots
libvirt-glib comprises three distinct libraries:
- libvirt-glib - Integrate with the GLib event loop and error handling
- libvirt-gconfig - Representation of libvirt XML documents as GObjects
- libvirt-gobject - Mapping of libvirt APIs into the GObject type system
NB: While libvirt aims to be API/ABI stable forever, with libvirt-glib
we are not currently guaranteeing that libvirt-glib libraries are
permanently API/ABI stable. That said we do not expect to break the
API/ABI for the forseeable future and will always strive avoid it.
Follow up comments about libvirt-glib should be directed to the regular
libvir-list(a)redhat.com development list.
Thanks to all the people involved in contributing to this release.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
10 years, 4 months
[libvirt] [PATCH 0/5] Parallels: patchset
by Alexander Burluka
Another patchset for Parallels libvirt driver. This patchset includes
some minor bugfixing and adds some functions required to start OpenStack
Alexander Burluka (5):
Parallels: add virNodeGetCPUMap().
Parallels: fix error with video card RAM dimension
Parallels: Add video acceleration parameter change ignore.
Parallels: Add domainCreateWithFlags() function.
Parallels: add events emiting while creating domain.
src/parallels/parallels_driver.c | 80 +++++++++++++++++++++++++++++++++++++---
1 file changed, 74 insertions(+), 6 deletions(-)
--
1.9.1
10 years, 4 months
[libvirt] [PATCH] nodeCapsInitNUMA: Avoid @cpumap leak
by Michal Privoznik
In case the host has 2 or more NUMA nodes, we fetch CPU map for each
node. However, we need to free the CPU map in between loops:
==29513== 96 (72 direct, 24 indirect) bytes in 3 blocks are definitely lost in loss record 951 of 1,264
==29513== at 0x4C2A700: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==29513== by 0x52AD24B: virAlloc (viralloc.c:144)
==29513== by 0x52AF0E6: virBitmapNew (virbitmap.c:78)
==29513== by 0x52FB720: virNumaGetNodeCPUs (virnuma.c:294)
==29513== by 0x53C700B: nodeCapsInitNUMA (nodeinfo.c:1886)
==29513== by 0x11759708: vboxCapsInit (vbox_common.c:398)
==29513== by 0x11759CC4: vboxConnectOpen (vbox_common.c:514)
==29513== by 0x53C965F: do_open (libvirt.c:1147)
==29513== by 0x53C9EBC: virConnectOpen (libvirt.c:1317)
==29513== by 0x142905: remoteDispatchConnectOpen (remote.c:1215)
==29513== by 0x126ADF: remoteDispatchConnectOpenHelper (remote_dispatch.h:2346)
==29513== by 0x5453D21: virNetServerProgramDispatchCall (virnetserverprogram.c:437)
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/nodeinfo.c | 2 ++
src/util/virnuma.c | 2 +-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/nodeinfo.c b/src/nodeinfo.c
index 2c1c437..92a3718 100644
--- a/src/nodeinfo.c
+++ b/src/nodeinfo.c
@@ -1926,6 +1926,8 @@ nodeCapsInitNUMA(virCapsPtr caps)
cpus = NULL;
siblings = NULL;
pageinfo = NULL;
+ virBitmapFree(cpumap);
+ cpumap = NULL;
}
ret = 0;
diff --git a/src/util/virnuma.c b/src/util/virnuma.c
index 9e6e5f7..1a34398 100644
--- a/src/util/virnuma.c
+++ b/src/util/virnuma.c
@@ -308,7 +308,7 @@ virNumaGetNodeCPUs(int node,
cleanup:
VIR_FREE(mask);
VIR_FREE(allonesmask);
- VIR_FREE(cpumap);
+ virBitmapFree(cpumap);
return ret;
}
--
1.8.5.5
10 years, 4 months