- 01 8月, 2009 1 次提交
-
-
由 Daniel P. Berrange 提交于
* src/qemu_driver.c: Add check that QEMU is active before attemting to shutdown. Fix error code for check in destroy method
-
- 31 7月, 2009 1 次提交
-
-
由 Daniel P. Berrange 提交于
* src/util.c: Don't drop capabilities until after the PID file has been written. Kill off child if writing the PID file fails * src/qemu_driver.c: Remove bogus trailing '/' in state dir
-
- 29 7月, 2009 1 次提交
-
-
由 Ryota Ozaki 提交于
* src/qemu_driver.c: fix qemudOpenMonitorUnix() to retry on ENOENT instead of EACCES which is the error one receive when the socket error hasn't shown up yet
-
- 27 7月, 2009 11 次提交
-
-
由 Daniel P. Berrange 提交于
* src/qemu_driver.c: implement missing features in qemudDomainGetVcpus for 'cpu' and 'cpuTime' fields
-
由 Mark McLoughlin 提交于
In order to hotplug a network/bridge backed NIC, we need to first create the tap file descriptor, add the tap interface to the bridge and then pass the file descriptor to the qemu process using the 'getfd' monitor command. Once the tapfd has been accepted, we create the network backend using host_net_add, supplying the name assigned to the tapfd. If this fails, we need to close the tapfd in qemu using the 'closefd' monitor command. If the version of qemu does not support the getfd/closefd monitor commands we detect "unknown command" in the getfd reply and fail the attach operation. * src/qemu_driver.c: add support for tapfd based hotplug in qemudDomainAttachNetDevice()
-
由 Mark McLoughlin 提交于
Add qemudMonitorCommandWithFd() which allows a file descriptor to be sent to qemu over a unix monitor socket using SCM_RIGHTS. See the unix(7) and cmsg(3) man pages. * src/qemu_conf.c: add a scm_fd param to qemudMonitorCommandExtra(), add qemudMonitorCommandWithFd(), implement SCM_RIGHTS support in qemudMonitorSendUnix()
-
由 Mark McLoughlin 提交于
Switch from using write() to using sendmsg() on QEMU's monitor socket so that we can add support for SCM_RIGHTS. * src/qemu_driver.c: add sendmsg() based qemudMonitorSendUnix() and use it when the monitor fd is a unix socket
-
由 Mark McLoughlin 提交于
Add a little helper function to write the monitor command followed by carriage return in a single write. This doesn't make any real difference, but allows us to more easily switch to using sendmsg() when using the monitor over a unix socket. * src/qemu_conf.c: split qemudMonitorSend() out
-
由 Mark McLoughlin 提交于
In subsequent patches we're going to have a file descriptor to close too, so centralize the error handling cleanups to make things easier. * src/qemu_conf.c: in qemudDomainAttachNetDevice() consolidate the error handling cleanups together
-
由 Mark McLoughlin 提交于
With hotplug, we're going to want to pass a tapfd name rather than an actual file descriptor, so prepare the way by passing a string tapfd to qemuBuildHostNetStr(). * src/qemu_conf.h: qemuBuildHostNetStr() takes a string tapfd now * src/qemu_conf.c: pass qemuBuildHostNetStr() a string rather than an actual file descriptor * src/qemu_driver.c: update qemudDomainAttachNetDevice() for change
-
由 Mark McLoughlin 提交于
By probing for qemu machine types, we increased the time of a GetCapabilities call from 100us to a whopping 60ms. This patch takes the approach of only probing for machine types when the mtime of the emulator binary changed since the last time the capabilities were generated. * src/capabilities.h: cache the emulator binary mtime * src/qemu_conf.c: add qemudGetOldMachines() to copy the machine types from the old caps struct if the mtime for the binary hasn't changed * src/qemu_conf.h, src/qemu_driver.c: pass the old caps pointer to qemudCapsInit()
-
由 Mark McLoughlin 提交于
Not all possible emulators are actually in the capabilities, so if we don't find the supplied emulator we should probe it directly for machine types. * src/qemu_driver.c: add qemudCanonicalizeMachineDirect() to directly probe an emulator for the canonical machine type
-
由 Mark McLoughlin 提交于
In qemu-0.11 there is a 'pc-0.10' machine type which allows you to run guests with a machine which is compatible with the pc machine in qemu-0.10 - e.g. using the original PCI class for virtio-blk and virtio-console and disabling MSI support in virtio-net. The idea here is that we don't want to suprise guests by changing the hardware when qemu is updated. I've just posted some patches for qemu-0.11 which allows libvirt to canonicalize the 'pc' machine alias to the latest machine version. This patches makes us use that so that when a guest is configured to use the 'pc' machine type, we resolve that to 'pc-0.11' machine and save that in the guest XML. See also: https://fedoraproject.org/wiki/Features/KVM_Stable_Guest_ABI * src/qemu_conf.c: add qemudCanonicalizeMachine() to canonicalize the machine type according to the machine aliases in capabilities * src/qemu_driver.c: parse aliases in qemudParseMachineTypesStr()
-
由 Cole Robinson 提交于
Do the check in libvirt.c, to save drivers from the burden. This changes behavior slightly in the qemu driver: we no longer explictly error if passed an empty string. An error will still be thrown when the device lookup fails.
-
- 24 7月, 2009 5 次提交
-
-
由 Daniel P. Berrange 提交于
* qemud/libvirtd_qemu.aug, qemud/test_libvirtd_qemu.aug, src/qemu.conf: Add 'cgroups_controllers' and 'cgroups_device_acl' parameters * src/qemu_conf.h, src/qemu_conf.c: Load & parse configuration params for cgroups * src/qemu_driver.c: Only use cgroups controllers that are activated, and use configured device whitelist instead of default, if set.
-
由 Daniel P. Berrange 提交于
* src/qemu_driver.c: Set a restrictive block device whitelist for all QEMU guests. Update whitelist when hotplugging disks. * src/cgroup.h, src/cgroup.c: Add some more convenience methods for dealing with block device whitelists.
-
由 Daniel P. Berrange 提交于
* src/qemu_driver.c: Add driver methods qemuGetSchedulerType, qemuGetSchedulerParameters, qemuSetSchedulerParameters * src/lxc_driver.c: Fix to use unsigned long long consistently for schedular parameters * src/cgroup.h, src/cgroup.c: Fix cpu_shares to take unsigned long long * src/util.c, src/util.h, src/libvirt_private.syms: Add a virStrToDouble helper * src/virsh.c: Fix handling of --set arg to schedinfo command to honour the designated data type of each schedular tunable as declared by the driver
-
由 Daniel P. Berrange 提交于
* src/qemu_driver.c: Place guest in cgroup upon startup. Remove cgroup upon shutdown
-
由 Laine Stump 提交于
* src/datatypes.c src/domain_conf.c src/interface_conf.c src/lxc_driver.c src/qemu_driver.c src/storage_backend.c src/virsh.c: add bare %s format string to printf-derivatives called with no format string
-
- 22 7月, 2009 8 次提交
-
-
由 Nguyen Anh Quynh 提交于
* include/libvirt/libvirt.h include/libvirt/libvirt.h.in: adds the new flag VIR_MEMORY_PHYSICAL for virDomainMemoryPeek * src/libvirt.c: update the front-end checking * src/qemu_driver.c: extend the QEmu driver
-
由 Mark McLoughlin 提交于
qemu network devices are hot-unplugged in two stages - first the PCI NIC is removed using 'pci_del <pci_addr>' and then the backend is removed using 'host_net_remove <vlan> <name>'. In order to perform these operations we need to have retained the PCI address, backend name and vlan number. * src/qemu_driver.c: add qemudDomainDetachNetDevice()
-
由 Mark McLoughlin 提交于
When we pci_add a NIC, we need to retain the PCI address assigned by qemu for using during detach. * src/qemu_driver.c: use qemudParsePciAddReply() to pull the PCI address from the pci_add reply * src/domain_conf.c: handle storing and parsing the PCI address in the domain state XML file
-
由 Mark McLoughlin 提交于
The current code for parsing pci_add replies ignores the the domain and bus numbers. Re-write the code to rectify that. Also, since pci_add is used for NIC hotplug as well ask disk hotplug, re-factor the code into a separate function. * src/qemu_driver.c: add qemudParsePciAddReply() function which can handle parsing domain and bus numbers
-
由 Mark McLoughlin 提交于
If we fail to pci_add a NIC, we should remove the network backend and leave things the way we found them. To do that, we pre-allocate a host_net_remove monitor command and issue that if the pci_add fails. If the remove fails, we just log a warning. We can only do this if we have a name for the network backend and we know the vlan number its associated with. * src/qemu_driver.c: host_net_remove the network backend if the pci_add fails
-
由 Mark McLoughlin 提交于
Implement basic NIC hotplug support using the 'host_net_add' and 'pci_add' qemu monitor commands. For now, we don't support 'bridge' or 'network' types. Also, if pci_add fails, we currently fail to remove the backend which we added. Finally, NIC hot-unplug support is missing. * src/qemu_driver.c: add qemudDomainAttachNetDevice() * src/qemu_conf.[ch]: export qemuBuildNicStr(), qemuBuildHostNetStr() and qemuAssignNames() * src/libvirt_private.syms: export virDomainNetTypeToString()
-
由 Mark McLoughlin 提交于
qemudDomainChangeEjectableMedia() currently extracts the qemu command line flags, but other device attaching code might need it, so move the qemudExtractVersionInfo() call up a frame. * src/qemu_driver.c: move the qemudExtractVersionInfo() call from qemudDomainChangeEjectableMedia() to qemudDomainAttachDevice()
-
由 Mark McLoughlin 提交于
When we hot-plug a disk device into a qemu guest, we need to retain its PCI address so that it can be removed again later. Currently, we do retain the slot number, but not across libvirtd restarts. Add <state devaddr="xxxx:xx:xx"/> to the disk device XML config when the VIR_DOMAIN_XML_INTERNAL_STATUS flag is used. We still don't parse the domain and bus number, but the format allows us to do that in future. * src/domain_conf.h: replace slotnum with pci_addr struct, add helper for testing whether the address is valid * src/domain_conf.c: handle formatting and parsing the address * src/qemu_driver.c: store the parsed slot number as a full PCI address, and use this address with the pci_del monitor command * src/vbox/vbox_tmpl.c: we're debug printing slotnum here even though it can never be set, just delete it
-
- 21 7月, 2009 1 次提交
-
-
由 Jun Koi 提交于
* src/qemu_driver.c: qemudOpenMonitorUnix() had an uninitialized loop counter
-
- 17 7月, 2009 2 次提交
-
-
由 Cole Robinson 提交于
Unlike the pty monitor (which we know exists since we scrape its path from stdout), we have no way of knowing that the unix monitor socket should exist/ be initialized. As a result, some of my KVM guests randomly fail to start on F10 host. Try to open the unix socket in a 3 second timeout loop. Ignore EACCES (path does not exist if a first time run) and ECONNREFUSED (leftover socket from a previous run hasn't been removed yet). Fixes things for me.
-
由 Daniel P. Berrange 提交于
* configure.in: Add --with-qemu-user and --with-qemu-group args * libvirt.spec.in: use 'qemu' for user/group for Fedora >= 12 * qemud/libvirtd_qemu.arg, qemud/test_libvirtd_qemu.aug, src/qemu.conf: Add 'user' and 'group' args for configuration * src/Makefile.am: Create %localstatedir/cache/libvirt/qemu * src/qemu_conf.c, src/qemu_conf.h: Load user/group from config * src/qemu_driver.c: Change user ID/group ID when launching QEMU guests. Change user/group ownership on disks/usb/pci devs. Put memory dumps in %localstatedir/cache/libvirt/qemu * src/util.c, src/util.h: Add convenient APIs for converting username/groupname to user ID / group ID
-
- 16 7月, 2009 4 次提交
-
-
由 Paolo Bonzini 提交于
* src/qemu_driver.c (qemudDomainCoreDump): New (qemuDriver): Add core dump function. The behaviour is similar as the current Xen dump
-
由 Daniel P. Berrange 提交于
* src/qemu_driver.c: Relabel disk images *before* running QEMU hotplug monitor commands
-
由 Daniel P. Berrange 提交于
* src/qemu_driver.c: Try new monitor syntax for hotplug first. If that fails fallback to old KVM specific syntax
-
由 Daniel P. Berrange 提交于
after a libvirtd daemon restart with active guests * src/qemu_driver: Read and dicard pending monitor data before issuing new monitor commands.
-
- 11 7月, 2009 1 次提交
-
-
由 Cole Robinson 提交于
If the qemu_driver was not initialized (possibly due to an error on driver startup), we can segfault if attempting to connect to the URI.
-
- 10 7月, 2009 4 次提交
-
-
由 Mark McLoughlin 提交于
We keep support for the pty based monitor so that we can re-connect to VMs started by older versions of libvirtd. * src/domain_conf.c: handle formatting and parsing unix monitors * src/qemu_driver.c: add qemudOpenMonitorUnix(), remove the monitor pty path searching from qemudFindCharDevicePTYs(), switch qemudStartVMDaemon() and qemuDomainXMLToNative() to using a unix monitor * tests/qemuxml2argvtest.c: switch to using a unix monitor * tests/qemuxml2argvdata/qemuxml2argv-*.args: update test data
-
由 Mark McLoughlin 提交于
There are no functional changes in this patch apart from adding the monitor type to the state XML. The patch mostly consists of switching to use virDomainChrDef every where to describe the monitor. * src/domain_conf.h: replace monitorpath with monitor_chr * src/domain_conf.c: handle parsing the monitor type and initializing monitor chr * src/qemu_conf.[ch]: make qemudBuildCommandLine take a virDomainChrDefPtr and use that to build the -monitor parameter * src/qemu_driver.c: split pty specific and common code from qemudOpenMonitor, have qemudStartVMDaemon() initialize monitor_chr * tests/qemuxml2argvtest.c: update for qemudBuildCommandLine() change
-
由 Mark McLoughlin 提交于
* src/qemu_driver.c: use a consistent coding style for function definitions
-
由 Mark McLoughlin 提交于
* src/qemu_driver.c: vm->monitorpath is already initialized in the case of re-connect, so move the initialization for the normal startup case out of the common code
-
- 30 6月, 2009 1 次提交
-
-
由 Daniel P. Berrange 提交于
-