- 29 6月, 2012 2 次提交
-
-
由 Eiichi Tsukata 提交于
Hello, This is a patch to fix vm's outbound traffic control problem. Currently, vm's outbound traffic control by libvirt doesn't go well. This problem was previously discussed at libvir-list ML, however it seems that there isn't still any answer to the problem. http://www.redhat.com/archives/libvir-list/2011-August/msg00333.html I measured Guest(with virtio-net) to Host TCP throughput with the command "netperf -H". Here are the outbound QoS parameters and the results. outbound average rate[kilobytes/s] : Guest to Host throughput[Mbit/s] ====================================================================== 1024 (8Mbit/s) : 4.56 2048 (16Mbit/s) : 3.29 4096 (32Mbit/s) : 3.35 8192 (64Mbit/s) : 3.95 16384 (128Mbit/s) : 4.08 32768 (256Mbit/s) : 3.94 65536 (512Mbit/s) : 3.23 The outbound traffic goes down unreasonably and is even not controled. The cause of this problem is too large mtu value in "tc filter" command run by libvirt. The command uses burst value to set mtu and the burst is equal to average rate value if it's not set. This value is too large. For example if the average rate is set to 1024 kilobytes/s, the mtu value is set to 1024 kilobytes. That's too large compared to the size of network packets. Here libvirt applies tc ingress filter to Host's vnet(tun) device. Tc ingress filter is implemented with TBF(Token Buckets Filter) algorithm. TBF uses mtu value to calculate the amount of token consumed by each packet. With too large mtu value, the token consumption rate is set too large. This leads to token starvation and deterioration of TCP throughput. Then, should we use the default mtu value 2 kilobytes? The anser is No, because Guest with virtio-net device uses 65536 bytes as mtu to transmit packets to Host, and the tc filter with the default mtu value 2k drops packets whose size is larger than 2k. So, the most packets is droped and again leads to deterioration of TCP throughput. The appropriate mtu value is 65536 bytes which is equal to the maximum value of network interface device defined in <linux/netdevice.h>. The value is not so large that it causes token starvation and not so small that it drops most packets. Therefore this patch set the mtu value to 64kb(== 65535 bytes). Again, here are the outbound QoS parameters and the TCP throughput with the libvirt patched. outbound average rate[kilobytes/s] : Guest to Host throughput[Mbit/s] ====================================================================== 1024 (8Mbit/s) : 8.22 2048 (16Mbit/s) : 16.42 4096 (32Mbit/s) : 32.93 8192 (64Mbit/s) : 66.85 16384 (128Mbit/s) : 133.88 32768 (256Mbit/s) : 271.01 65536 (512Mbit/s) : 547.32 The outbound traffic conforms to the given limit. Thank you, Signed-off-by: NEiichi Tsukata <eiichi.tsukata.xh@hitachi.com>
-
由 Peter Krempa 提交于
If the user specified invalid protocol type in a network's SRV record the error path ended up in freeing uninitialized pointers causing a daemon crash. *network_conf.c: virNetworkDNSSrvDefParseXML(): initialize local variables
-
- 28 6月, 2012 5 次提交
-
-
由 Peter Krempa 提交于
virGetDomain() does a good job of reporting errors itself. This patch removes shadowing of that error in virDomainListPopulate().
-
由 Peter Krempa 提交于
The ignore_value macro is used across libvirt. This patch includes it in the internal header and cleans all other includes.
-
由 Peter Krempa 提交于
VirtualBox doesn't use the common virDomainObj implementation so this patch adds a separate implementation using the VirtualBox API. This driver implementation supports all currently defined flags. As VirtualBox does not support transient guests, managed save images and autostarting we assume all guests are persistent, don't have a managed save image and are not autostarted. Filtering for existence of those properities results in empty list.
-
由 Osier Yang 提交于
mnt_fsname can not be the same, as we check the duplicate pool sources earlier before, means it can't be the same pool, moreover, a pool can't be started if it's already active anyway. So no reason to act as success.
-
由 Marc-André Lureau 提交于
Pushed without ack, under the trivial rule.
-
- 27 6月, 2012 6 次提交
-
-
由 Michal Privoznik 提交于
virConnectDomainEventRegisterAny() takes a domain as an argument. So it should be possible to register the same event (be it VIR_DOMAIN_EVENT_ID_LIFECYCLE for example) for two different domains. That is, we need to take domain into account when searching for duplicate event being already registered.
-
由 Doug Goldstein 提交于
v2: - Refactored to use virBuffer - Refactored to use virXPath wrappers - Added support for tls-port and password for SPICE - Added optional flag to disable SPICE password to the URI - Added support for RDP - Fixed code reviews Add a new 'domdisplay' command that provides a URI for VNC, SPICE and RDP connections. Presently the 'vncdisplay' command provides you with the port info that QEMU is listening on but there is no counterpart for SPICE and RDP. Additionally this provides you with the bind address as specified in the XML, which the existing 'vncdisplay' lacks. For SPICE connections it supports secure and unsecure channels and optionally providing the password for the SPICE channel. Signed-off-by: NDoug Goldstein <cardoe@cardoe.com>
-
由 Daniel P. Berrange 提交于
-
由 Christophe Fergeau 提交于
-
由 Guido Günther 提交于
since it's an autogenerated file
-
由 Guido Günther 提交于
since they aren't. Detected by Debian's lintian.
-
- 25 6月, 2012 24 次提交
-
-
由 Michal Privoznik 提交于
Latest patchset enabling libvirt on s390(x) was developed by Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> Thang Pham <thang.pham@us.ibm.com> Add them to the AUTHORS file.
-
由 Thang Pham 提交于
In order to retrieve some sysinfo data we need to parse /proc/sysinfo and /proc/cpuinfo. Signed-off-by: NThang Pham <thang.pham@us.ibm.com> Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
-
由 Viktor Mihajlovski 提交于
For the s390x architecture the sysfs core_id alone is not unique. As a result it can happen that libvirt thinks there are less host CPUs available than really present. Currently, a logical CPU is equivalent to a core for s390x. We therefore produce a fake core id from the CPU number. Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
-
由 Thang Pham 提交于
Minimal CPU "parser" for s390 to avoid compile time warning. Signed-off-by: NThang Pham <thang.pham@us.ibm.com> Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
-
由 Thang Pham 提交于
Adding CPU encoder/decoder for s390 to avoid runtime error messages. Signed-off-by: NThang Pham <thang.pham@us.ibm.com> Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
-
由 Viktor Mihajlovski 提交于
Starting a KVM guest on s390 fails immediately. This is because "qemu --help" reports -no-acpi even for the s390(x) architecture but -no-acpi isn't supported there. Workaround is to remove QEMU_CAPS_NO_ACPI from the capability set after the version/capability extraction. Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
-
由 Wido den Hollander 提交于
We used to prefix 'rbd:' to volume names, this is not necessary. Qemu takes RBD devices in this way, like: qemu -drive rbd:pool/image When attaching a network disk like RBD to a guest we however do not use this prefix. Currently you can't map a RBD volume name directly to a domain without removing the prefix. Signed-off-by: NWido den Hollander <wido@widodh.nl>
-
由 Osier Yang 提交于
"cannot set memory of an active domain" is misleading, it sounds like setting memory of active domain is not supported.
-
由 Daniel P. Berrange 提交于
If no 'listen' attribute or <listen> element is set in the guest XML, the default driver configured listen address is used. There is no way to client applications to determine what this address is though. When starting the guest, we should update the live XML to include this default listen address
-
由 Michal Privoznik 提交于
Storage is one of the last domains in libvirt where we don't fully utilize inactive and live XML. Okay, it might be because we don't have support for that. So implement such support. However, we need to fallback when talking to old daemon which doesn't support this new flag called VIR_STORAGE_XML_INACTIVE.
-
由 Michal Privoznik 提交于
Currently, we share the idea of old & new def with domains. Users can *-edit an object (domain, pool) which spawns a new internal representation for them. This is referenced via {domainObj,poolObj}->newDef [compared to ->def]. However, for pool we were never overwriting def with newDef. This must be done on pool-destroy (like we do analogically in domain detroy).
-
由 Michal Privoznik 提交于
One of latest patches (0fce94fe) didn't properly indented #define making syntax-check fail.
-
由 Daniel Veillard 提交于
Temporary fix since compilation broke with older version of sanlock following acbd4965
-
由 Daniel P. Berrange 提交于
-
由 Daniel J Walsh 提交于
Currently libvirt-lxc checks to see if the destination exists and is a directory. If it is not a directory then the mount fails. Since libvirt-lxc can bind mount files on an inode, this patch is needed to allow us to bind mount files on files. Currently we want to bind mount on top of /etc/machine-id, and /etc/adjtime If the destination of the mount point does not exists, it checks if the src is a directory and then attempts to create a directory, otherwise it creates an empty file for the destination. The code will then bind mount over the destination. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
Sometimes it is useful to re-bootstrap libvirt without running through a ./configure invocation immediately. eg if you want to run ./configure for Mingw32 rather than native. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
The vshPrintRaw function is not used on Win32, and neither is the 'msg' parameter of vshAskReedit. Change the nesting of #ifdef WIN32 conditionals to address this Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
On both x86_64-w64-mingw32 and i686-w64-mingw32 there were the following warnings/errors: CC fstat.lo ../../../gnulib/lib/fstat.c:27:0: warning: "stat" redefined [enabled by default] In file included from ./sys/stat.h:32:0, from ../../../gnulib/lib/fstat.c:25: /usr/x86_64-w64-mingw32/sys-root/mingw/include/sys/stat.h:258:0: note: this is the location of the previous definition ../../../gnulib/lib/fstat.c:28:0: warning: "fstat" redefined [enabled by default] In file included from ./sys/stat.h:32:0, from ../../../gnulib/lib/fstat.c:25: /usr/x86_64-w64-mingw32/sys-root/mingw/include/sys/stat.h:259:0: note: this is the location of the previous definition CC stat.lo ../../../gnulib/lib/stat.c:32:0: warning: "stat" redefined [enabled by default] In file included from ./sys/stat.h:32:0, from ../../../gnulib/lib/stat.c:27: /usr/x86_64-w64-mingw32/sys-root/mingw/include/sys/stat.h:258:0: note: this is the location of the previous definition CC stdio-read.lo ../../../gnulib/lib/stdio-read.c:102:1: error: redefinition of 'vscanf' In file included from ./stdio.h:43:0, from ../../../gnulib/lib/stdio-read.c:21: /usr/x86_64-w64-mingw32/sys-root/mingw/include/stdio.h:397:7: note: previous definition of 'vscanf' was here ../../../gnulib/lib/stdio-read.c:108:1: error: redefinition of 'vfscanf' In file included from ./stdio.h:43:0, from ../../../gnulib/lib/stdio-read.c:21: /usr/x86_64-w64-mingw32/sys-root/mingw/include/stdio.h:384:7: note: previous definition of 'vfscanf' was here make[3]: *** [stdio-read.lo] Error 1 make[3]: Leaving directory `/home/berrange/src/virt/libvirt/build/gnulib/lib' While on x86_64-w64-mingw32 only there was: In file included from ../../../gnulib/lib/regex.c:69:0: ../../../gnulib/lib/regcomp.c: In function 'parse_dup_op': ../../../gnulib/lib/regcomp.c:2624:39: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] ../../../gnulib/lib/regcomp.c: In function 'mark_opt_subexp': ../../../gnulib/lib/regcomp.c:3859:19: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
Some GNULIB headers (eg unistd.h) will often need to include winsock2.h for various symbols. There is a rule that winsock2.h must be included before windows.h. This means that any file which does #ifdef WIN32 #include <windows.h> #endif #include <unistd.h> is potentially broken. A simple rule is that /all/ includes of windows.h must be matched with a preceding include of winsock2.h regardless of whether unistd.h is used currently Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
The Mingw32 toolchain is broadly obsoleted by the Mingw64 toolchain. The latter has been adopted by Fedora 17 and newer. Maintaining a RPM spec for Mingw32 is a needless burden, so switch to a Mingw64 RPM spec (which provides 32 & 64 bit builds). Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Doug Goldstein 提交于
Update the vncdisplay command to use the virXPath wrappers as well as check if the domain is up rather than using the port set to -1 to mean the domain is not up. Signed-off-by: NDoug Goldstein <cardoe@cardoe.com>
-
由 Daniel P. Berrange 提交于
A sanlock lease can be marked as shared (rather than exclusive) using SANLK_RES_SHARED flag. This adds support for that flag and ensures that in auto disk mode, any shared disks use shared leases. This also makes any read-only disks be completely ignored. These changes remove the need for the option ignore_readonly_and_shared_disks so that is removed Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
由 Daniel P. Berrange 提交于
Currently you can configure LXC to bind a host directory to a guest directory, but not to bind a guest directory to a guest directory. While the guest container init could do this itself, allowing it in the libvirt XML means a stricter SELinux policy can be written
-
由 Daniel P. Berrange 提交于
Introduce a new syntax for filesystems to allow use of a RAM filesystem <filesystem type='ram'> <source usage='10' units='MiB'/> <target dir='/mnt'/> </filesystem> The usage units default to KiB to limit consumption of host memory. * docs/formatdomain.html.in: Document new syntax * docs/schemas/domaincommon.rng: Add new attributes * src/conf/domain_conf.c: Parsing/formatting of RAM filesystems * src/lxc/lxc_container.c: Mounting of RAM filesystems Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
-
- 23 6月, 2012 1 次提交
-
-
由 Hu Tao 提交于
The test of ref count is not protected by lock, which is unsafe because the ref count may have been changed by other threads during the test. This patch fixes this.
-
- 22 6月, 2012 2 次提交
-
-
由 Peter Krempa 提交于
This patch adds a check for the count of processors the user requests for the guest machine so that invalid values produce a more helpful error message.
-
由 Jim Fehlig 提交于
When shutting down libvirtd, the virNetServer shutdown can deadlock if there are in-flight jobs being handled by virNetServerHandleJob(). virNetServerFree() will acquire the virNetServer lock and call virThreadPoolFree() to terminate the workers, waiting for the workers to finish. But in-flight workers will attempt to acquire the virNetServer lock, resulting in deadlock. Fix the deadlock by unlocking the virNetServer lock before calling virThreadPoolFree(). This is safe since the virNetServerPtr object is ref-counted and only decrementing the ref count needs to be protected. Additionally, there is no need to re-acquire the lock after virThreadPoolFree() completes as all the workers have terminated.
-