- 18 8月, 2009 6 次提交
-
-
由 Mark McLoughlin 提交于
Right now we're only resetting managed devices before hotplug, but we should reset them irrespective of whether they are managed. * src/qemu_driver.c: reset all PCI hostdevs before hotplug
-
由 Mark McLoughlin 提交于
It turns out that the previous attempt at this doesn't work well in the case of hotplug. We need qemuCheckPciHostDevice() to disallow the reset affecting devices already attach to the guest, but we still need to avoid double locking the virDomainObjPtr. This is all getting messy, I've a better idea. This reverts commit 63188082 and c106c8a1. * src/qemu_driver.c, src/pci.[ch], src/xen_unified.c, src/libvirt_private.syms: revert a bunch of stuff.
-
由 Mark McLoughlin 提交于
The current code makes a poor effort at updating the device arrays after hot-unplug. Fix that and combine the two code paths into one. * src/qemu_driver.c: fix list updating in qemudDomainDetachNetDevice(), qemudDomainDetachPciDiskDevice() and qemudDomainDetachHostPciDevice()
-
由 Mark McLoughlin 提交于
Confused me when poking at another 'driver' variable in gdb which gcc had optimized away * src/remote_internal.c: rename driver to remote_driver
-
由 Mark McLoughlin 提交于
Maybe it's just me, but I try to select an item from the tree using double-click and get annoyed when "+-" gets included in the selection. * src/virsh.c: add a space between "+-" and the node device name in 'virsh nodedev-list --tree'
-
由 Chris Lalancette 提交于
Currently the reference counting for connections is busted. I first noticed it while trying to use virConnectRef; it would eventually cause a crash in the remote_internal driver, although that was really just a victim. Really, we should only call the close callbacks on the methods when the references drop to 0. To accomplish this, move all of the close callbacks into virUnrefConnect (since there are lots of internal users of that function), and arrange for virConnectClose to call that. V2: Make sure to drop the connection lock before we call the close callbacks, otherwise we could deadlock the daemon V3: Fix up a crash when we got an error from one of the drivers Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
- 17 8月, 2009 2 次提交
-
-
由 Daniel P. Berrange 提交于
* src/domain_conf.c: Make virDomainObjListFree a no-op if list is NULL * src/domain_event.c: make virDomainEventCallbackListFree a no-op if event list is NULL * src/lxc_driver.c: Log a message if LXC driver does not startup due to lacking kernel support
-
由 Chris Lalancette 提交于
Implement a compressed save image format for qemu. While ideally we would have the choice between compressed/non-compressed available to the libvirt API, unfortunately there is no "flags" parameter to the virDomainSave() API. Therefore, implement this as a qemu.conf option. gzip, bzip2, and lzma are implemented, and it should be very easy to implement additional compression methods. One open question is if/how we should detect the compression binaries. One way to do it is to do compile-time setting of the paths (via configure.in), but that doesn't seem like a great thing to do. My preferred solution is not to detect at all; when we go to run the commands that need them, if they aren't available, or aren't available in one of the standard paths, then we'll fail. That's also the solution implemented in this patch. In the future, we'll have a more robust (managed) save/restore API, at which time we can expose this functionality properly in the API. V2: get rid of redundant dd command and just use >> to append data. V3: Add back the missing pieces for the enum and bumping the save version. V4: Make the compressed field in the save_header an int. Implement LZMA compression. Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
- 14 8月, 2009 9 次提交
-
-
由 Daniel P. Berrange 提交于
-
由 Mark McLoughlin 提交于
If a PCI device reset causes other devices to be reset, allow it so long as those other devices are note assigned to another active domain. Note, we need to take the driver lock qemudNodeDeviceReset() because the check function will iterate over the domain list. * src/qemu_conf.c: add qemuCheckPciHostDevice() to iterate over active domains checking whether the affected device is assigned * src/pci.[ch]: add pciDeviceEquals() helper
-
由 Mark McLoughlin 提交于
When using a Secondary Bus Reset, all devices on the bus are reset. Extend the pciResetDevice() API so that a 'check' callback can be supplied which will verify that it is safe to reset the other devices on the bus. The virDomainObjPtr parameter is needed so that when the check function iterates over the domain list, it can avoid double locking. * src/pci.[ch]: add a 'check' callback to pciResetDevice(), re-work pciIterDevices() to pass the check function to the iter functions, use the check function in the bus iterator, return the first unsafe device from pciBusCheckOtherDevices() and include its details in the bus reset error message. * src/qemu_driver.c, src/xen_uninified.c: just pass NULL as the check function for now
-
由 Mark McLoughlin 提交于
Currently, if we are unable to reset a PCI device we return a fairly generic 'No PCI reset capability available' error message. Fix that by returning an error from the individual reset messages and using that error to construct the higher level error mesage. * src/pci.c: set errors in pciTryPowerManagementReset() and pciTrySecondaryBusReset() on failure; use those error messages in pciResetDevice(), or explain that no reset support is available
-
由 Mark McLoughlin 提交于
When the guest shuts down, we should attempt to restore all PCI host devices to a sane state. In the case of managed hostdevs, we should reset and re-attach the devices. In the case of unmanaged hostdevs, we should just reset them. Note, KVM will already reset assigned devices when the guest shuts down using whatever means it can, so we are only doing it to cover the cases the kernel can't handle. * src/qemu_driver.c: add qemuDomainReAttachHostDevices() and call it from qemudShutdownVMDaemon()
-
由 Mark McLoughlin 提交于
It turns out that a PCI Power Management reset only affects individual functions, and not the whole device. The PCI Power Management spec talks about resetting the 'device' rather than the 'function', but Intel's Dexuan Cui informs me that it is actually a per-function reset. Also, Yu Zhao has added pci_pm_reset() to the kernel, and it doesn't reject multi-function devices, so it must be true! :-) (A side issue is that we could defer the PM reset to the kernel if we could detect that the kernel has PM reset support, but barring version number checks we don't have a way to detect that support) * src/pci.c: remove the pciDeviceContainsOtherFunctions() check from pciTryPowerManagementReset() and prefer PM reset over bus reset where both are available Cc: Cui, Dexuan <dexuan.cui@intel.com> Cc: Yu Zhao <yu.zhao@intel.com>
-
由 Mark McLoughlin 提交于
PCI device assignment is only supported in KVM's fork of qemu, so we should really detect its availability and give a nice error if its not supported. * src/qemu_conf.[ch]: introduce QEMUD_CMD_FLAG_PCIDEVICE indicating that the -pcidevice command line option is available * tests/*: update the tests
-
由 Mark McLoughlin 提交于
Attaching a host PCI device to a qemu guest is done with a straightforward 'pci_add auto host host=XX:XX.X' command. Like with NIC and disk hotplug, we need to retain the guest PCI address assigned by qemu so that we can use it for hot-unplug. Identifying a device for detach is done using the host PCI address. Managed mode is handled by detaching/resetting the device before attaching it to the guest and re-attaching it after detaching it from the guest. * src/qemu_driver.c: add qemudDomainAttachHostPciDevice() and qemudDomainDetachHostPciDevice() * src/domain_conf.h: add somewhere to store the guest PCI address * src/domain_conf.c: handle formatting and parsing the guest PCI address
-
由 Mark McLoughlin 提交于
Re-factor the hostdev hotplug code so that we can easily add PCI hostdev hotplug to qemudDomainAttachHostDevice(). * src/qemu_driver.c: rename qemudDomainAttachHostDevice() to qemudDomainAttachHostUsbDevice(); make qemudDomainAttachHostDevice() handle all hostdev types * src/libvirt_private.syms: export a couple of hostdev related ToString() functions
-
- 13 8月, 2009 1 次提交
-
-
由 Daniel P. Berrange 提交于
Some kernel versions expose broken NUMA topology for some machines. This causes the LXC/UML drivers to fail to start. QEMU driver was already fixed for this problem * src/lxc_conf.c: Log and ignore failure to populate NUMA info * src/uml_conf.c: Log and ignore failure to populate NUMA info * src/capabilities.c: Reset nnumaCell to 0 after freeing
-
- 11 8月, 2009 11 次提交
-
-
由 Mark McLoughlin 提交于
* docs/virsh.pod: don't reference format.html anymore, reference the formatdomain.html etc. pages * virsh.1: re-generate
-
由 Chris Lalancette 提交于
Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
由 Chris Lalancette 提交于
Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
由 Chris Lalancette 提交于
A couple of minor fixes to phyp escape_specialcharacters. Make it a static function (since it's only used in phyp/phyp_driver.c), and make it take a dstlen parameter. This paves the way for removing strncpy in the future. Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
由 Chris Lalancette 提交于
Minor fix to openvzGetVPSUUID to make it take a length parameter. This ensures that it doesn't make assumptions about the length of the UUID buffer, and paves the way for removal of strncpy in the future. Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
由 Chris Lalancette 提交于
Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
由 Chris Lalancette 提交于
Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
由 Chris Lalancette 提交于
Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
由 Chris Lalancette 提交于
As of qemu 0.10.6, qemu now honors the -S flag on incoming migration. That means that when the migration completes, we have to issue a 'cont' command to get the VM running again. We do it unconditionally since it won't hurt on older qemu. Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
由 Chris Lalancette 提交于
Re-factor virDomainMigrate to split out the version 1 and version 2 protocols into their own functions. In reality, the two versions share very little in common, so forcing them together in the same function was just confusing. This will also make adding tunnelled migration easier. Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
由 Chris Lalancette 提交于
When doing a restore, we were forgetting to update the state file for the VM. That means that if you do a save/restore, then shut down libvirtd, then start it back up, you'll see the state of the guest as "paused", even though it is really running. We were just forgetting a "virDomainSaveStatus" call in the restor path. Signed-off-by: NChris Lalancette <clalance@redhat.com>
-
- 10 8月, 2009 3 次提交
-
-
由 Mark McLoughlin 提交于
If the ipv6 kernel module is not loaded, then we get this when starting a virtual network: libvir: Network Config error : cannot enable /proc/sys/net/ipv6/conf/virbr0/disable_ipv6: No such file or directory If disable_ipv6 is not present, we should just merrily continue on our way. * src/network_driver.c: make networkDisableIPV6() not fail if the kernel has no ipv6 support
-
由 Mark McLoughlin 提交于
Allow qemu user to open kernel/initrds in this dir, but still prevent others from listing it. * libvirt.spec.in: set /var/lib/libvirt/boot perms to 0711
-
由 Mark McLoughlin 提交于
If we're running qemu unprivileged, we need to chown any supplied kernel or initrd before spawning it. * src/qemu_driver.c: rename qemuDomainSetDiskOwnership() to qemuDomainSetFileOwnership(), pass it a path string instead of a disk definition and use it for chowning the kernel/initrd in qemuDomainSetAllDeviceOwnership()
-
- 07 8月, 2009 2 次提交
-
-
由 Daniel P. Berrange 提交于
-
由 Chris Lalancette 提交于
While trying to remove uses of unsafe strncpy in the tree, I came across a couple of usages in the ESX driver. To my eyes, the snprintf replacements do the same thing in less code, and are also safer. Signed-off-by: NChris Lalancette <clalance@redhat.com> Tested-by: NMattias Bolte <matthias.bolte@googlemail.com>
-
- 06 8月, 2009 6 次提交
-
-
由 Amy Griffis 提交于
* docs/logging.html[.in] try to include a little more description about the corner cases, things someone might get hung up on on.
-
由 Amy Griffis 提交于
* src/logging.c src/logging.h src/libvirt_private.syms: define new functions virLogSetFromEnv and virLogParseDefaultPriority * qemud/qemud.c src/libvirt.c tests/eventtest.c: cleanup to use the unified functions
-
由 Amy Griffis 提交于
* tests/eventtest.c: don't covert high priority levels to debug level. Consider an invalid priority level setting a setup failure.
-
由 Amy Griffis 提交于
* qemud/qemud.c src/logging.[ch]: Similar as for general libvirt, don't convert high priority levels to debug level. Ignore LIBVIRT_LOG_FILTERS and LIBVIRT_LOG_OUTPUTS when they're set to the empty string, otherwise they can override a valid setting from the config file. Send all settings through the parser functions for validation, so that the existence of a bad setting doesn't nullify a good setting that should have applied -- particularly the default output. Keep the order of precedence consistent for all variables between the environment and the config file. Warn when an invalid log level, filter, or output is ignored. * src/libvirt_private.syms: export internally a few convenience functions
-
由 Amy Griffis 提交于
* src/libvirt.c src/logging.c: Don't convert high priority levels to the debug level. Don't parse LIBVIRT_LOG_FILTERS and LIBVIRT_LOG_OUTPUTS when they're set to the empty string. Warn when the user specifies an invalid value (empty string remains a noop). * po/POTFILES.in: src/logging.c now include translatable strings
-
由 Matthias Bolte 提交于
* src/esx/esx_driver.c src/esx/esx_util.[ch] src/esx/esx_vi.[ch]: just a name change
-