- 27 6月, 2013 1 次提交
-
-
由 Laine Stump 提交于
Any device which belongs to an "IOMMU group" (used by vfio) will have links to all devices of its group listed in /sys/bus/pci/$device/iommu_group/devices; /sys/bus/pci/$device/iommu_group is actually a link to /sys/kernel/iommu_groups/$n, where $n is the group number (there will be a corresponding device node at /dev/vfio/$n once the devices are bound to the vfio-pci driver) The following functions are added: virPCIDeviceGetIOMMUGroupList Gets a virPCIDeviceList with one virPCIDeviceList for each device in the same IOMMU group as the provided virPCIDevice (a copy of the original device object is included in the list. virPCIDeviceAddressIOMMUGroupIterate Calls the function @actor once for each device in the group that contains the given virPCIDeviceAddress. virPCIDeviceAddressGetIOMMUGroupAddresses Fills in a virPCIDeviceAddressPtr * with an array of virPCIDeviceAddress, one for each device in the iommu group of the provided virPCIDeviceAddress (including a copy of the original). virPCIDeviceAddressGetIOMMUGroupNum Returns the group number as an int (a valid group number will always be 0 or greater). If there is no iommu_group link in the device's directory (usually indicating that vfio isn't loaded), -2 will be returned. On any real error, -1 will be returned.
-
- 26 6月, 2013 16 次提交
-
-
由 Ján Tomko 提交于
We only break out of the while loop if *content is an empty string. However the buffer has been allocated to BUFSIZ + 1 (8193 in my case), but it gets overwritten in the next for iteration. Move VIR_FREE right before we overwrite it to avoid the leak. ==5777== 16,386 bytes in 2 blocks are definitely lost in loss record 1,022 of 1,027 ==5777== by 0x5296E28: virReallocN (viralloc.c:184) ==5777== by 0x52B0C66: virFileReadLimFD (virfile.c:1137) ==5777== by 0x52B0E1A: virFileReadAll (virfile.c:1199) ==5777== by 0x529B092: virCgroupGetValueStr (vircgroup.c:534) ==5777== by 0x529AF64: virCgroupMoveTask (vircgroup.c:1079) Introduced by 83e4c775. https://bugzilla.redhat.com/show_bug.cgi?id=978352
-
由 Ján Tomko 提交于
Don't check for '\n' at the end of file if zero bytes were read. Found by valgrind: ==404== Invalid read of size 1 ==404== at 0x529B09F: virCgroupGetValueStr (vircgroup.c:540) ==404== by 0x529AF64: virCgroupMoveTask (vircgroup.c:1079) ==404== by 0x1EB475: qemuSetupCgroupForEmulator (qemu_cgroup.c:1061) ==404== by 0x1D9489: qemuProcessStart (qemu_process.c:3801) ==404== by 0x18557E: qemuDomainObjStart (qemu_driver.c:5787) ==404== by 0x190FA4: qemuDomainCreateWithFlags (qemu_driver.c:5839) Introduced by 0d0b4098. https://bugzilla.redhat.com/show_bug.cgi?id=978356
-
由 Stefan Berger 提交于
Fix an error in the sample TPM XML. Signed-off-by: NStefan Berger <stefanb@linux.vnet.ibm.com>
-
由 Laine Stump 提交于
Although SRIOV network cards support setting a vlan tag on their virtual functions, and although setting this vlan tag via a <vlan> element in a domain's <interface> works, setting a vlan tag for these devices in a <network> definition, or in a network <portgroup> definition is also supposed to work (and the comment that validates <vlan> usage even says that!). However, the check to allow it only checked for an openvswitch network, so attempts to add <vlan> to a network of type='hostdev' would fail.
-
由 Laine Stump 提交于
Somehow I put an example of a domain interface with a <vlan> element into the network documentation. This patch replaces that with an example of a network definition that has a vlan element with trunk='yes', multiple tags, and even the new nativeMode attribute. It also includes a <portgroup> that has a vlan defined.
-
由 Laine Stump 提交于
commit 0fc12bca added a new test called qemuhotplugtest which has several data files in tests/qemuhotplugtestdata, but didn't add that directory to EXTRA_DIST in the tests Makefile.am, so the make check done during a make rpm was failing due to missing data files.
-
由 Laine Stump 提交于
A loop in qemuPrepareHostdevPCIDevices() intended to cycle through all the objects on the list pcidevs was doing "while (listcount > 0)", but nothing in the body of the loop was reducing the size of the list - it was instead removing items from a *different* list. It has now been safely changed to a for() loop.
-
由 Laine Stump 提交于
(This isn't as bad as it sounds - it's only a problem in case of an OOM error.) qemuGetActivePciHostDeviceList() had been creating a list that contained pointers to objects that were also on the activePciHostdevs list. In case of an OOM error, this newly created list would be virObjectUnref'ed, which would cause everything on the list to be freed. But all of those objects would still be on the activePciHostdevs list, which could have very bad consequences if that list was ever again accessed. The solution used here is to populate the new list with *copies* of the objects from the original list. It turns out that on return from qemuGetActivePciHostDeviceList(), the caller would almost immediately go through all the device objects and "steal" them (i.e. remove the pointer from the list but not delete it) all from either one list or the other; we now instead just *delete* (remove from the list and free) each device from one list or the other, so in the end we have the same state.
-
由 Laine Stump 提交于
The "fix" I pushed a few commits ago would still leak a virPCIDevice in case of an OOM error. Although it's inconsequential in practice, this patch satisfies my OCD.
-
由 Laine Stump 提交于
Make a copy of the device and add the copy to the list. (virPCIDeviceListAdd() adds the original object to the list instead).
-
由 Laine Stump 提交于
If the device is bound to a stub driver different from what is saved in the virPCIDevice's stubDriver attribute, update it.
-
由 Laine Stump 提交于
The same strings were being re-created multiple times just to save declaring a new variable. In the meantime, the use of the generic variable names led to confusion when trying to follow the code. This patch creates strings for: stubDriverName (was called "driver" in original args) stubDriverPath ("/sys/bus/pci/drivers/${stubDriverName}") driverLink ("${device}/driver") oldDriverName (the final component of path linked to by "${device}/driver") oldDriverPath ("/sys/bus/pci/drivers/${oldDriverName}") then re-uses them as necessary.
-
由 Laine Stump 提交于
This function has utility outside of virpci.c, so make it public. Also the name didn't fit convention, so change it to virPCIDeviceAddressParse.
-
由 Laine Stump 提交于
I realized after the fact that it's probably better in the long run to give this function a name that matches the name of the link used in sysfs to hold the group (iommu_group). I'm changing it now because I'm about to add several more functions that deal with iommu groups.
-
由 Laine Stump 提交于
The driver arg to virPCIDeviceDetach is no longer used (the name of the stub driver is now set in the virPCIDevice object, and virPCIDeviceDetach retrieves it from there). Remove it.
-
由 Laine Stump 提交于
Commit 861d4056 added code (my personal change to "clean up" the submitter's code, *not* the fault of the submitter) that dereferenced virtVlan without first checking for NULL. This patch fixes that and, as part of the fix, cleans up some unnecessary obtuseness.
-
- 25 6月, 2013 23 次提交
-
-
由 Michal Privoznik 提交于
As my punishment for the break in 7f15ebc7 (fixed in 752596b5) I'm introducing this test to make sure it won't happen again. Currently, only test for <graphics/> is supported.
-
由 Jiri Denemark 提交于
-
由 Jiri Denemark 提交于
-
由 Jiri Denemark 提交于
-
由 Jiri Denemark 提交于
-
由 Jiri Denemark 提交于
-
由 Jiri Denemark 提交于
-
由 Ján Tomko 提交于
Since we already have the v1.1.0-rc1 tag in git.
-
由 Ján Tomko 提交于
Free the old XML strings before overwriting them if the user has chosen to reedit the file or force the redefinition. Found by Alex Jia trying to reproduce another bug: https://bugzilla.redhat.com/show_bug.cgi?id=977430#c3
-
由 Roman Bogorodskiy 提交于
virNetDevBridgeSetSTPDelay accepts delay in milliseconds, but BSD implementation was expecting seconds. Therefore, it was working correctly only with delay == 0.
-
由 Daniel Veillard 提交于
-
由 james robson 提交于
This patch adds functionality to allow libvirt to configure the 'native-tagged' and 'native-untagged' modes on openvswitch networks. Signed-off-by: NLaine Stump <laine@redhat.com>
-
由 Laine Stump 提交于
I just learned that VFIO resets PCI devices when they are assigned to guests / returned to the host, so it is redundant for libvirt to reset the devices. This patch inhibits calling virPCIDeviceReset to devices that will be/were assigned using VFIO.
-
由 Jiri Denemark 提交于
The parameter specifies connection parameters to use for migrating client's connection to domain's graphical console.
-
由 Jiri Denemark 提交于
-
由 Jiri Denemark 提交于
The patch implements wrappers for virDomainMigrate3 and virDomainMigrateToURI3.
-
由 Jiri Denemark 提交于
This patch introduces two new APIs virDomainMigrate3 and virDomainMigrateToURI3 that may be used in place of their older variants. These new APIs take optional migration parameters (such as bandwidth, domain XML, ...) in an array of virTypedParameters, which makes adding new parameters easier as there's no need to introduce new APIs whenever a new migration parameter needs to be added. Both APIs are backward compatible and will automatically use older migration calls in case the new calls are not supported as long as the typed parameters array does not contain any parameter which was not supported by the older calls.
-
由 Jiri Denemark 提交于
-
由 Jiri Denemark 提交于
-
由 Jiri Denemark 提交于
-
由 Jiri Denemark 提交于
This patch implements extensible variants of all internal migration APIs used for v3 migration.
-
由 Jiri Denemark 提交于
To be used by new migration APIs with extensible set of parameters.
-
由 Jiri Denemark 提交于
-