- 15 12月, 2014 2 次提交
-
-
由 Laine Stump 提交于
When libvirt is managing a bridge's forwarding database (FDB) (macTableManager='libvirt'), if we add FDB entries for a new guest interface even before the qemu process is created, then in the case of a migration any other guest attached to the "destination" bridge will have its traffic immediately sent to the destination of the migration even while the source domain is still running (and the destination, of course, isn't). To make sure that traffic from other guests on the new host continues flowing to the old guest until the new one is ready, we have to wait until the new guest CPUs are started to add the FDB entries. Conversely, we need to remove the FDB entries from the bridge any time the guest CPUs are stopped; among other things, this will assure proper operation during a post-copy migration (which is just the opposite of the problem described in the previous paragraph).
-
由 Michal Privoznik 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1173507 It occurred to me that OpenStack uses the following XML when not using regular huge pages: <memoryBacking> <hugepages> <page size='4' unit='KiB'/> </hugepages> </memoryBacking> However, since we are expecting to see huge pages only, we fail to startup the domain with following error: libvirtError: internal error: Unable to find any usable hugetlbfs mount for 4 KiB While regular system pages are not huge pages technically, our code is prepared for that and if it helps OpenStack (or other management applications) we should cope with that. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 09 12月, 2014 2 次提交
-
-
由 Laine Stump 提交于
qemuNetworkIfaceConnect() used to have a special case for actualType='network' (a network with forward mode of route, nat, or isolated) to call the libvirt public API to retrieve the bridge being used by a network. That is no longer necessary - since all network types that use a bridge and tap device now get the bridge name stored in the ActualNetDef, we can just always use virDomainNetGetActualBridgeName() instead. (an audit of the two callers to qemuNetworkIfaceConnect() confirms that it is never called for any other type of network, so the dead code in the else statement (logging an internal error if it is called for any other type of network) is eliminated in the process.)
-
由 Laine Stump 提交于
When libvirt is managing the MAC table of a Linux host bridge, it must turn off learning and unicast_flood for each tap device attached to that bridge, then add a Forwarding Database (fdb) entry for the tap device using the MAC address from the domain interface config. Once we have disabled learning and flooding, any packet that has a destination MAC address not present in the fdb will be dropped by the bridge. This, along with the opportunistic disabling of promiscuous mode[*], can result in enhanced network performance. and a potential slight security improvement. [*] If there is only one device on the bridge with learning/unicast_flood enabled, then that device will automatically have promiscuous mode disabled. If there are *no* devices with learning/unicast_flood enabled (e.g. for a libvirt "route", "nat", or isolated network that has no physical device attached), then all non-tap devices will have promiscuous mode disabled (tap devices always have promiscuous mode enabled, which may be a bug in the kernel, but in practice has 0 effect). None of this has any effect for kernels prior to 3.15 (upstream kernel commit 2796d0c648c940b4796f84384fbcfb0a2399db84 "bridge: Automatically manage port promiscuous mode"). Even after that, until kernel 3.17 (upstream commit 5be5a2df40f005ea7fb7e280e87bbbcfcf1c2fc0 "bridge: Add filtering support for default_pvid") traffic will not be properly forwarded without manually adding vlan table entries. Unfortunately, although the presence of the first patch is signalled by existence of the "learning" and "unicast_flood" options in sysfs, there is no reliable way to query whether or not the system's kernel has the second of those patches installed, the only thing that can be done is to try the setting and see if traffic continues to pass.
-
- 03 12月, 2014 1 次提交
-
-
由 John Ferlan 提交于
Since virNetworkFree will call virObjectUnref anyway, let's just use that directly so as to avoid the possibility that we inadvertently clear out a pending error message when using the public API.
-
- 25 11月, 2014 4 次提交
-
-
由 Pavel Hrdina 提交于
Add attribute to set vgamem_mb parameter of QXL device for QEMU. This value sets the size of VGA framebuffer for QXL device. Default value in QEMU is 8MB so reuse it also in libvirt to not break things. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1076098Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Pavel Hrdina 提交于
So far we didn't have any option to set video memory size for qemu video devices. There was only the vram (ram for QXL) attribute but it was valid only for the QXL video device. To provide this feature to users QEMU has a dedicated device attribute called 'vgamem_mb' to set the video memory size. We will use the 'vram' attribute for setting video memory size for other QEMU video devices. For the cirrus device we will ignore the vram value because it has hardcoded video size in QEMU. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1076098Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Pavel Hrdina 提交于
QEMU has two different type of QXL display device. The first "qxl-vga" is for primary video device and second "qxl" is for secondary video device. There are also two different ways how to specify those devices on qemu command line, the first one and obsolete is using "-vga" option and the current new one is using "-device" option. The "-vga" could be used only to setup primary video device, so the "-vga qxl" equal to "-device qxl-vga". Unfortunately the "-vga qxl" doesn't support setting additional parameters for the device and "-global" option must be used for this purpose. It's mandatory to use "-global qxl-vga...." to set the parameters of primary video device previously defined with "-vga qxl". Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1076098Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
-
由 Pavel Hrdina 提交于
The vram attribute was introduced to set the video memory but it is usable only for few hypervisors excluding QEMU/KVM and the old XEN driver. Only in case of QEMU the vram was used for QXL. This patch updates the documentation to reflect current code in libvirt and also changes the cases when we will set the default vram attribute. It also fixes existing strange default value for VGA devices 9MB to 16MB because the video ram should be rounded to power of two. The change of default value could affect migrations but I found out that QEMU always round the video ram to power of two internally so it's safe to change the default value to the next closest power of two and also silently correct every domain XML definition. And it's also safe because we don't pass the value to QEMU. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1076098Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
-
- 21 11月, 2014 4 次提交
-
-
由 Peter Krempa 提交于
To be able to express some use cases of the RBD backing with libvirt, we need to be able to specify a config file for the RBD client to qemu as that is one of the commonly used options.
-
由 Peter Krempa 提交于
Some storage systems have internal support for snapshots. Libvirt should be able to select a correct snapshot when starting a VM. This patch adds a XML element to select a storage source snapshot for the RBD protocol which supports this feature.
-
由 Peter Krempa 提交于
To allow reuse this non-trivial parser code in the backing store parser this part of the command line parser needs to be split out into a separate funciton.
-
由 Peter Krempa 提交于
Instead of splitting out various fields, pass the complete structure and let the function pick various things of it. As one of the callers isn't using virStorageSourcePtr to store the data, this patch adds glue code that fills the data into a dummy virStorageSourcePtr before calling the func. This change will help when adding new fields that need output processing in the future.
-
- 20 11月, 2014 2 次提交
-
-
由 Michal Privoznik 提交于
As discussed on the upstream list, it's better not to make this kind of predictions in libvirt. It may happen that qemu learns how to enable OVMF on other architectures too and we shouldn't try to chase that. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michal Privoznik 提交于
Currently, we are whitelisting architectures, that we know how to run OVMF on. So far, only x86_64 was enabled. However, looking at qemu code, the same commandline can be used to enable OVMF for armv7l and aarch64. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 19 11月, 2014 1 次提交
-
-
由 Anirban Chakraborty 提交于
Ethernet interfaces in libvirt currently do not support bandwidth setting. For example, following xml file for an interface will not apply these settings to corresponding qdiscs. <interface type="ethernet"> <mac address="02:36:1d:18:2a:e4"/> <model type="virtio"/> <script path=""/> <target dev="tap361d182a-e4"/> <bandwidth> <inbound average="984" peak="1024" burst="64"/> <outbound average="2000" peak="2048" burst="128"/> </bandwidth> </interface> Signed-off-by: NAnirban Chakraborty <abchak@juniper.net> Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 15 11月, 2014 2 次提交
-
-
由 John Ferlan 提交于
Seems the 'size_iops_sec' was a late add and the checks for whether the field was defined, but unsupported and the maximum size of the field were not being made. Also, adjust blkdeviotune support error message for grammar, spelling (paramater), and remove the "(need QEMU 1.7 or superior)". None of our other similar error messages list which QEMU version is required. Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
- 12 11月, 2014 1 次提交
-
-
由 Matthias Gatto 提交于
Fix for this: http://www.redhat.com/archives/libvir-list/2014-November/msg00324.htmlSigned-off-by: NMatthias Gatto <matthias.gatto@outscale.com>
-
- 11 11月, 2014 1 次提交
-
-
由 Matthias Gatto 提交于
Check the arability of the options with the current qemu binary, add them in the varable opt if yes, print a message if not. Signed-off-by: NMatthias Gatto <matthias.gatto@outscale.com>
-
- 07 11月, 2014 2 次提交
-
-
由 Prerna Saxena 提交于
PowerISA allows processors to run VMs in binary compatibility ("compat") mode supporting an older version of ISA. QEMU has recently added support to explicitly denote a VM running in compatibility mode through commit 6d9412ea & 8dfa3a5e85. Now, a "compat" mode VM can be run by invoking this qemu commandline on a POWER8 host: -cpu host,compat=power7. This patch allows libvirt to exploit cpu mode 'host-model' to describe this new mode for PowerKVM guests. For example, when a user wants to request a power7 vm to run in compatibility mode on a Power8 host, this can be described in XML as follows : <cpu mode='host-model'> <model>power7</model> </cpu> Signed-off-by: NPrerna Saxena <prerna@linux.vnet.ibm.com> Signed-off-by: NLi Zhang <zhlcindy@linux.vnet.ibm.com> Signed-off-by: NPradipta Kr. Banerjee <bpradip@in.ibm.com> Acked-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Prerna Saxena 提交于
This adds support for PowerPC Little Endian architecture., and allows libvirt to spawn VMs based on 'ppc64le' architecture. Signed-off-by: NPradipta Kr. Banerjee <bpradip@in.ibm.com> Signed-off-by: NPrerna Saxena <prerna@linux.vnet.ibm.com> Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
-
- 06 11月, 2014 4 次提交
-
-
由 Boris Fiuczynski 提交于
Extending the iothread disk support from pci to pci and ccw. Signed-off-by: NBoris Fiuczynski <fiuczy@linux.vnet.ibm.com> Reviewed-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com> Reviewed-by: NChristian Borntraeger <borntraeger@de.ibm.com>
-
由 Boris Fiuczynski 提交于
Finding the right type of disk should check for virtio as bus and pci as device address type. Signed-off-by: NBoris Fiuczynski <fiuczy@linux.vnet.ibm.com> Reviewed-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com>
-
由 Martin Kletzander 提交于
This is a reaction to Michal's fix [1] for non-NUMA systems that also splits out conf/ out of util/ because libvirt_util shouldn't require libvirt_conf if it is the other way around. This particular use case worked, but we're trying to avoid it as mentioned [2], many times. The only functions from virnuma.c that needed numatune_conf were virDomainNumatuneNodesetIsAvailable() and virNumaSetupMemoryPolicy(). The first one should be in numatune_conf as it works with virDomainNumatune, the second one just needs nodeset and mode, both of which can be passed without the need of numatune_conf. Apart from fixing that, this patch also fixes recently added code (between commits d2460f85^..5c851562) that doesn't support non-contiguous nodesets. It uses new function virNumaNodesetIsAvailable(), which doesn't need a stub as it doesn't use any libnuma functions, to check if every specified nodeset is available. [1] https://www.redhat.com/archives/libvir-list/2014-November/msg00118.html [2] http://www.redhat.com/archives/libvir-list/2011-June/msg01040.htmlSigned-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Erik Skultety 提交于
Since there was a valid note to patch 43b67f2e about the best spot to check for bandwidth set call while having libvirt daemon run in session mode, this patch reverts previous changes dealing with bandwith (also reverts adding variable @cfg in qemuDomainGetNumaParameters which does not have any use at the moment, but getting and unreferencing driver's config) in qemu_driver.c and qemu_command.c. There will be another patch in the series which introduces the fix itself.
-
- 05 11月, 2014 1 次提交
-
-
由 Prerna Saxena 提交于
Domain memory elements such as max_balloon and cur_balloon are implemented as 'unsigned long long', whereas the 'memory' element in NUMA cells is implemented as 'unsigned int'. Use the same data type (unsigned long long) for 'memory' element in NUMA cells. Signed-off-by: NPrerna Saxena <prerna@linux.vnet.ibm.com>
-
- 04 11月, 2014 1 次提交
-
-
由 Chen Fan 提交于
There was no check for 'nodeset' attribute in numatune-related elements. This patch adds validation that any nodeset specified does not exceed maximum host node. Signed-off-by: NChen Fan <chen.fan.fnst@cn.fujitsu.com>
-
- 03 11月, 2014 1 次提交
-
-
由 Martin Kletzander 提交于
Particularly in qemuBuildNumaArgStr(), there was a need for the advice due to memory backing, which needs to know the nodeset it will be pinned to. With newer qemu this caused the following error when starting domain: error: internal error: Advice from numad is needed in case of automatic numa placement even when starting perfectly valid domain, e.g.: ... <vcpu placement='auto'>4</vcpu> <numatune> <memory mode='strict' placement='auto'/> </numatune> <cpu> <numa> <cell id='0' cpus='0' memory='524288'/> <cell id='1' cpus='1' memory='524288'/> </numa> </cpu> ... Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1138545Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
- 23 10月, 2014 1 次提交
-
-
由 Erik Skultety 提交于
Tuning NUMA or network interface parameters requires root privileges to manage cgroups. Thus an attempt to set some of these parameters in session mode on a running domain should be invalid followed by an error. An example might be memory tuning which raises an error in such case. The following behavior in session mode will be present after applying this patch: Tuning | SET | GET | ----------|---------------|--------| NUMA | shut off only | always | Memory | never | never | Interface | never | always | Resolves https://bugzilla.redhat.com/show_bug.cgi?id=1126762
-
- 04 10月, 2014 2 次提交
-
-
由 Martin Kletzander 提交于
Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Martin Kletzander 提交于
This patch implements support for the ivshmem device in QEMU. Signed-off-by: NMaxime Leroy <maxime.leroy@6wind.com> Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
- 03 10月, 2014 2 次提交
-
-
由 Cole Robinson 提交于
Right now when building the qemu command line, we try to do various unconditional validations of the guest CPU against the host CPU. However this checks are overly applied. The only time we should use the checks are: - The user requests host-model/host-passthrough, or - When KVM is requsted. CPU features requested in TCG mode are always emulated by qemu and are independent of the host CPU, so no host CPU checks should be performed. Right now if trying to specify a CPU for arm on an x86 host, it attempts to do non-sensical validation and falls over. Switch all the test cases that were intending to test CPU validation to use KVM, so they continue to test the intended code. Amend some aarch64 XML tests with a CPU model, to ensure things work correctly.
-
由 Cole Robinson 提交于
Move the CPU mode/model handling to its own function. This is just code movement and re-indentation.
-
- 24 9月, 2014 1 次提交
-
-
由 Ján Tomko 提交于
Format the segment offloading options specified by <driver> <host .../> <guest .../> </driver> on virtio-net command line.
-
- 23 9月, 2014 2 次提交
-
-
由 Michal Privoznik 提交于
In the function at one place we check if def->cpu is NULL prior to accessing def->cpu->ncells. Then, later in the code, def->cpu->ncells is accessed directly, without the check. This makes coverity unhappy, because the first check makes it think def->cpu can be NULL. However, the function is not called if def->cpu is NULL. Therefore, remove the first check and hopefully make coverity cheer again. Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
-
由 Michael R. Hines 提交于
This patch adds support for RDMA protocol in migration URIs. USAGE: $ virsh migrate --live --migrateuri rdma://hostname domain qemu+ssh://hostname/system Since libvirt runs QEMU in a pretty restricted environment, several files needs to be added to cgroup_device_acl (in qemu.conf) for QEMU to be able to access the host's infiniband hardware. Full documenation of the feature can be found on QEMU wiki: http://wiki.qemu.org/Features/RDMALiveMigrationSigned-off-by: NMichael R. Hines <mrhines@us.ibm.com> Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
-
- 22 9月, 2014 1 次提交
-
-
由 Giuseppe Scrivano 提交于
commit 72f919f5 introduced an user friendly error message when trying to use IDE disks as readonly. Do the same thing for the SATA bus. Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1112939Signed-off-by: NGiuseppe Scrivano <gscrivan@redhat.com>
-
- 19 9月, 2014 1 次提交
-
-
由 Pavel Hrdina 提交于
We are not detecting the presence of FIPS from QEMU, but from procfs and that means it's not QEMU capability. It was decided that we will pass this flag to QEMU even if it's not supported by old QEMU binaries. This patch also reverts changes done by commit a21cfb0f to qemucapabilitestest and implements a new test case in qemuxml2argvtest. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1135431Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
-
- 18 9月, 2014 1 次提交
-
-
由 Roman Bogorodskiy 提交于
Currently, build with clang fails with: CC qemu/libvirt_driver_qemu_impl_la-qemu_command.lo qemu/qemu_command.c:6580:58: error: implicit conversion from enumeration type 'virMemAccess' to different enumeration type 'virTristateSwitch' [-Werror,-Wenum-conversion] virTristateSwitch memAccess = def->cpu->cells[i].memAccess; ~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~^~~~~~~~~ 1 error generated. Fix that by using virMemAccess instead of virTristateSwitch.
-