- 12 7月, 2011 19 次提交
-
-
由 Daniel P. Berrange 提交于
Given a PID, the QEMU driver reads /proc/$PID/cmdline and /proc/$PID/environ to get the configuration. This is fed into the ARGV->XML convertor to build an XML configuration for the process. /proc/$PID/exe is resolved to identify the full command binary path After checking for name/uuid uniqueness, an attempt is made to connect to the monitor socket. If successful then 'info status' and 'info kvm' are issued to determine whether the CPUs are running and if KVM is enabled. * src/qemu/qemu_driver.c: Implement virDomainQemuAttach * src/qemu/qemu_process.h, src/qemu/qemu_process.c: Add qemuProcessAttach to connect to the monitor of an existing QEMU process
-
由 Daniel P. Berrange 提交于
When attaching to an external QEMU process, it is neccessary to check if the process is using KVM or not. This can be done using a monitor command * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h, src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_json.h, src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h: Add API for checking if KVM is enabled
-
由 Daniel P. Berrange 提交于
To enable attaching to externally launched QEMU, we need to be able to reverse engineer a guest XML config based on the argv for a PID in /proc * src/qemu/qemu_command.c, src/qemu/qemu_command.h: Add qemuParseCommandLinePid which extracts QEMU config from argv in /proc, given a PID number
-
由 Daniel P. Berrange 提交于
When converting QEMU argv into a virDomainDefPtr, also extract the pidfile, monitor character device config and the monitor mode. * src/qemu/qemu_command.c, src/qemu/qemu_command.h: Extract pidfile & monitor config from QEMU argv * src/qemu/qemu_driver.c, tests/qemuargv2xmltest.c: Add extra params when calling qemuParseCommandLineString
-
由 Daniel P. Berrange 提交于
Avoid re-formatting the pidfile path everytime we need it. Create it once when starting the guest, and preserve it until the guest is shutdown. * src/libvirt_private.syms, src/util/util.c, src/util/util.h: Add virFileReadPidPath * src/qemu/qemu_domain.h: Add pidfile field * src/qemu/qemu_process.c: Store pidfile path in qemuDomainObjPrivate
-
由 Daniel P. Berrange 提交于
This command allows libvirt to attach to an existing QEMU instance. $ qemu-kvm -cdrom ~/demo.iso \ -monitor unix:/tmp/demo,server,nowait \ -name foo \ -uuid cece4f9f-dff0-575d-0e8e-01fe380f12ea & $ QEMUPID=$! $ virsh qemu-attach $QEMUPID
-
由 Daniel P. Berrange 提交于
This tweaks the RPC generator to cope with some naming conventions used for the QEMU specific APIs * daemon/remote.c: Server side dispatcher * src/remote/remote_driver.c: Client side dispatcher * src/remote/qemu_protocol.x: Wire protocol definition * src/rpc/gendispatch.pl: Use '$structprefix' in method names, fix QEMU flags and fix dispatcher method names
-
由 Daniel P. Berrange 提交于
Introduce a new API in libvirt-qemu.so virDomainPtr virDomainQemuAttach(virConnectPtr domain, unsigned long long pid, unsigned int flags); This allows libvirtd to attach to an existing, externally launched QEMU process. This is useful for QEMU developers who prefer to launch QEMU themselves for debugging/devel reasons, but still want the benefit of libvirt based tools like virt-top, virt-viewer, etc * include/libvirt/libvirt-qemu.h: Define virDomainQemuAttach * src/driver.h, src/libvirt-qemu.c, src/libvirt_qemu.syms: Driver glue for virDomainQemuAttach
-
由 Alex Jia 提交于
* src/qemu/qemu.conf: Add blkio controller into qemu.conf.
-
由 Eric Blake 提交于
* src/qemu/qemu_driver.c (doCoreDump): Guarantee fd is closed.
-
由 Eric Blake 提交于
* src/util/virtaudit.[ch]: Rename... * src/util/viraudit.[ch]: ...to match virAudit* API. * src/Makefile.am (UTIL_SOURCES): Reflect rename. * daemon/libvirtd.c: Likewise. * po/POTFILES.in: Likewise. * src/libvirt_private.syms: Likewise. * src/qemu/qemu_audit.c: Likewise.
-
由 Oskari Saarenmaa 提交于
Set StrictHostKeyChecking=no to auto-accept new ssh host keys if the no_verify extra parameter was specified. This won't disable host key checking for already known hosts. Includes a test and documentation.
-
由 KAMEZAWA Hiroyuki 提交于
* tools/virsh.pod: move the description which was misplaced
-
由 Michal Privoznik 提交于
* src/conf/domain_conf.c: caller must free returned value of virXPathString in useserial
-
由 Osier Yang 提交于
Initialize ptr data.datastorePathWithoutFileName as NULL, otherwise it might cause crash when trying to free it in cleanup.
-
由 Eric Blake 提交于
Since we are going to add some libvirt-qemu.so entry points in 0.9.4, we might as well start checking for RPC stability, just as for libvirt.so. * src/Makefile.am (PROTOCOL_STRUCTS): New variable. (remote_protocol-structs): Rename... (%_protocol-structs): ...and make more generic. * src/qemu_protocol-structs: New file.
-
由 Eric Blake 提交于
log2() is heavy when ffs() can do the same thing. But ffs() requires gnulib support for mingw. This patch solves this linker error on Fedora 14. /usr/bin/ld: libvirt_lxc-domain_conf.o: undefined reference to symbol 'log2@@GLIBC_2.2.5' /usr/bin/ld: note: 'log2@@GLIBC_2.2.5' is defined in DSO /lib64/libm.so.6 so try adding it to the linker command line /lib64/libm.so.6: could not read symbols: Invalid operation collect2: ld returned 1 exit status * .gnulib: Update to latest, for ffs. * bootstrap.conf (gnulib_modules): Import ffs. * src/conf/domain_conf.c (virDomainDefParseXML): Use ffs instead of log2. Reported by Dave Allan.
-
由 Jim Fehlig 提交于
-
由 Matthias Bolte 提交于
The drivers were accepting domain configs without checking if those were actually meant for them. For example the LXC driver happily accepts configs with type QEMU. Add a check for the expected domain types to the virDomainDefParse* functions.
-
- 11 7月, 2011 8 次提交
-
-
由 Alex Jia 提交于
Detected in valgrind run: ==9184== 1 bytes in 1 blocks are definitely lost in loss record 1 of 19 ==9184== at 0x4A04A28: calloc (vg_replace_malloc.c:467) ==9184== by 0x3073715F78: xdr_array (xdr_array.c:97) ==9184== by 0x4CF97C9: xdr_remote_domain_get_security_label_ret (remote_protocol.c:1696) ==9184== by 0x4D08741: virNetMessageDecodePayload (virnetmessage.c:286) ==9184== by 0x4D00F78: virNetClientProgramCall (virnetclientprogram.c:318) ==9184== by 0x4CE3887: call (remote_driver.c:3933) ==9184== by 0x4CF71C6: remoteDomainGetSecurityLabel (remote_driver.c:1580) ==9184== by 0x4CCA480: virDomainGetSecurityLabel (libvirt.c:7340) ==9184== by 0x41993A: cmdDominfo (virsh.c:2414) ==9184== by 0x411E92: vshCommandRun (virsh.c:12730) ==9184== by 0x4211ED: main (virsh.c:14076) ==9184== ==9184== 2 bytes in 1 blocks are definitely lost in loss record 2 of 19 ==9184== at 0x4A04A28: calloc (vg_replace_malloc.c:467) ==9184== by 0x3073715F78: xdr_array (xdr_array.c:97) ==9184== by 0x4CF974F: xdr_remote_node_get_security_model_ret (remote_protocol.c:1713) ==9184== by 0x4D08741: virNetMessageDecodePayload (virnetmessage.c:286) ==9184== by 0x4D00F78: virNetClientProgramCall (virnetclientprogram.c:318) ==9184== by 0x4CE3887: call (remote_driver.c:3933) ==9184== by 0x4CF6F96: remoteNodeGetSecurityModel (remote_driver.c:1648) ==9184== by 0x4CBF799: virNodeGetSecurityModel (libvirt.c:7382) ==9184== by 0x4197D7: cmdDominfo (virsh.c:2394) ==9184== by 0x411E92: vshCommandRun (virsh.c:12730) ==9184== by 0x4211ED: main (virsh.c:14076) ==9184== ==9184== 8 bytes in 1 blocks are definitely lost in loss record 3 of 19 ==9184== at 0x4A04A28: calloc (vg_replace_malloc.c:467) ==9184== by 0x3073715F78: xdr_array (xdr_array.c:97) ==9184== by 0x4CF9729: xdr_remote_node_get_security_model_ret (remote_protocol.c:1710) ==9184== by 0x4D08741: virNetMessageDecodePayload (virnetmessage.c:286) ==9184== by 0x4D00F78: virNetClientProgramCall (virnetclientprogram.c:318) ==9184== by 0x4CE3887: call (remote_driver.c:3933) ==9184== by 0x4CF6F96: remoteNodeGetSecurityModel (remote_driver.c:1648) ==9184== by 0x4CBF799: virNodeGetSecurityModel (libvirt.c:7382) ==9184== by 0x4197D7: cmdDominfo (virsh.c:2394) ==9184== by 0x411E92: vshCommandRun (virsh.c:12730) ==9184== by 0x4211ED: main (virsh.c:14076) ==9184== ==9184== LEAK SUMMARY: ==9184== definitely lost: 11 bytes in 3 blocks * src/remote/remote_driver.c: Avoid leak on remoteDomainGetSecurityLabel and remoteNodeGetSecurityModel.
-
由 Eric Blake 提交于
The shell version would output 40 extra spaces for a test with a multiple of 40 sub-tests, and the C version can use the same printf optimization for avoiding a loop over single space output as the shell version. * tests/testutils.c (virtTestMain): Avoid loop for alignment. * tests/test-lib.sh: Fix formatting when counter is multiple of 40.
-
由 Jim Fehlig 提交于
Kernel cmdline args can be passed to xen pv domains even when a bootloader is specified. The current config-to-sxpr mapping ignores cmdline when bootloader is present. Since the xend sub-driver is used with many xen toolstack versions, this patch takes conservative approach of adding an else block to existing !def->os.bootloader, and only appends sxpr if def->os.cmdline is non-NULL. V2: Fix existing testcase broken by this patch and add new testcases
-
由 Wen Congyang 提交于
If virDomainSaveConfig() failed, we will return NULL to source, and the vm is still available to restart during confirm() step in v3 protocol. So we should kill it off in qemuMigrationFinish(). In v2 protocol, we should not set vm to NULL, because we hold a reference of vm and should unrefernce it.
-
由 Wen Congyang 提交于
-
由 Wen Congyang 提交于
-
由 Michal Privoznik 提交于
This patch creates new <bios> element which, at this time has only the attribute useserial='yes|no'. This attribute allow users to use Serial Graphics Adapter and see BIOS messages from the very first moment domain boots up. Therefore, users can choose boot medium, set PXE, etc.
-
由 Daniel Veillard 提交于
The qemu-sanlock.conf file is not installed in this case
-
- 09 7月, 2011 7 次提交
-
-
由 Matthias Bolte 提交于
If the main driver is the vbox driver, then the open function has to return an error if the private data is invalid.
-
由 Matthias Bolte 提交于
Don't print OK/FAIL for tests that decide to be skipped after calling virtTestMain. Delay printing of the indentation before the first test until we know that the test didn't decide to be skipped. Also make the reconnect test use VIRT_TEST_MAIN.
-
由 Matthias Bolte 提交于
The current logic tries to count from 1 to 40 and ignores paddings of 0 and 1 to 40. This doesn't work for counter + 1 mod 40 == 0 like here for counter value 159 TEST: virsh-all ........................................ 40 ........................................ 80 ........................................ 120 ....................................... 159 OK PASS: virsh-all Also seq isn't portable. Therefore, calculate the correct padding length directly and use printf to output it at once.
-
由 Matthias Bolte 提交于
-
由 Matthias Bolte 提交于
Add missing line break and fix indention level. Reported by Cole Robinson.
-
由 Federico Simoncelli 提交于
When auto_disk_lease is off we should avoid the automatic lockspace creation. Signed-off-by: NFederico Simoncelli <fsimonce@redhat.com>
-
由 Eric Blake 提交于
Fixes test regression introduced in commit 8e2e4780. * daemon/libvirtd.c (daemonConfigLoad): Add argument. (main): Update caller.
-
- 08 7月, 2011 6 次提交
-
-
由 Michael Santos 提交于
-
由 Daniel P. Berrange 提交于
It is common for the $HOME/.libvirt/libvirtd.conf file to not exist. Treat this situation as non-fatal since we can carry on with our default settings just fine. * daemon/libvirtd.c: Treat ENOENT as non-fatal when loading config
-
由 Daniel P. Berrange 提交于
The dispatch for the CLOSE RPC call was invoking the method virNetServerClientClose(). This caused the client connection to be immediately terminated. This meant the reply to the final RPC message was never sent. Prior to the RPC rewrite we merely flagged the connection for closing, and actually closed it when the next RPC call dispatch had completed. * daemon/remote.c: Flag connection for a delayed close * daemon/stream.c: Update to use new API for closing failed connection * src/rpc/virnetserverclient.c, src/rpc/virnetserverclient.h: Add support for a delayed connection close. Rename the virNetServerClientMarkClose method to virNetServerClientImmediateClose to clarify its semantics
-
由 Daniel P. Berrange 提交于
When closing a remote connection we issue a (fairly pointless) 'CLOSE' RPC call to the daemon. If this fails we skip all the cleanup of private data, but the virConnectPtr object still gets released as normal. This causes a memory leak. Since the CLOSE RPC call is pretty pointless, just carry on freeing the remote driver if it fails. * src/remote/remote_driver.c: Ignore failure to issue CLOSE RPC call
-
由 Daniel P. Berrange 提交于
When sending back the final OK or ERROR message on completion of a stream, we were not decrementing the 'nrequests' tracker on the client. With the default requests limit of '5', this meant once a client had created 5 streams, they are unable to process any further RPC calls. There was also a bug when handling an error from decoding a message length header, which meant a client connection would not immediately be closed. * src/rpc/virnetserverclient.c: Fix release of request after stream completion & mark client for close on error
-
由 Daniel P. Berrange 提交于
In one exit path we forgot to free the virNetMessage object causing a large memory leak for streams which send a lot of data. Some other paths were calling VIR_FREE directly instead of virNetMessageFree although this was (currently) harmless. * src/rpc/virnetclientstream.c: Fix leak of msg object * src/rpc/virnetclientprogram.c: Call virNetMessageFree instead of VIR_FREE
-