- 22 5月, 2012 2 次提交
-
-
由 Wido den Hollander 提交于
This patch adds support for a new storage backend with RBD support. RBD is the RADOS Block Device and is part of the Ceph distributed storage system. It comes in two flavours: Qemu-RBD and Kernel RBD, this storage backend only supports Qemu-RBD, thus limiting the use of this storage driver to Qemu only. To function this backend relies on librbd and librados being present on the local system. The backend also supports Cephx authentication for safe authentication with the Ceph cluster. For storing credentials it uses the built-in secret mechanism of libvirt. Signed-off-by: NWido den Hollander <wido@widodh.nl>
-
由 Daniel P. Berrange 提交于
When the last reference to a virConnectPtr is released by libvirtd, it was possible for a deadlock to occur in the virDomainEventState functions. The virDomainEventStatePtr holds a reference on virConnectPtr for each registered callback. When removing a callback, the virUnrefConnect function is run. If this causes the last reference on the virConnectPtr to be released, then virReleaseConnect can be run, which in turns calls qemudClose. This function has a call to virDomainEventStateDeregisterConn which is intended to remove all callbacks associated with the virConnectPtr instance. This will try to grab a lock on virDomainEventState but this lock is already held. Deadlock ensues Thread 1 (Thread 0x7fcbb526a840 (LWP 23185)): Since each callback associated with a virConnectPtr holds a reference on virConnectPtr, it is impossible for the qemudClose method to be invoked while any callbacks are still registered. Thus the call to virDomainEventStateDeregisterConn must in fact be a no-op. Thus it is possible to just remove all trace of virDomainEventStateDeregisterConn and avoid the deadlock. * src/conf/domain_event.c, src/conf/domain_event.h, src/libvirt_private.syms: Delete virDomainEventStateDeregisterConn * src/libxl/libxl_driver.c, src/lxc/lxc_driver.c, src/qemu/qemu_driver.c, src/uml/uml_driver.c: Remove calls to virDomainEventStateDeregisterConn
-
- 21 5月, 2012 1 次提交
-
-
由 Stefan Berger 提交于
This patch adds support for the recent ipset iptables extension to libvirt's nwfilter subsystem. Ipset allows to maintain 'sets' of IP addresses, ports and other packet parameters and allows for faster lookup (in the order of O(1) vs. O(n)) and rule evaluation to achieve higher throughput than what can be achieved with individual iptables rules. On the command line iptables supports ipset using iptables ... -m set --match-set <ipset name> <flags> -j ... where 'ipset name' is the name of a previously created ipset and flags is a comma-separated list of up to 6 flags. Flags use 'src' and 'dst' for selecting IP addresses, ports etc. from the source or destination part of a packet. So a concrete example may look like this: iptables -A INPUT -m set --match-set test src,src -j ACCEPT Since ipset management is quite complex, the idea was to leave ipset management outside of libvirt but still allow users to reference an ipset. The user would have to make sure the ipset is available once the VM is started so that the iptables rule(s) referencing the ipset can be created. Using XML to describe an ipset in an nwfilter rule would then look as follows: <rule action='accept' direction='in'> <all ipset='test' ipsetflags='src,src'/> </rule> The two parameters on the command line are also the two distinct XML attributes 'ipset' and 'ipsetflags'. FYI: Here is the man page for ipset: https://ipset.netfilter.org/ipset.man.html Regards, Stefan
-
- 18 5月, 2012 1 次提交
-
-
由 Marc-André Lureau 提交于
Allow specifying sound device codecs. See formatdomain.html for more details.
-
- 16 5月, 2012 2 次提交
-
-
由 Daniel P. Berrange 提交于
The uhci1, uhci2, uhci3 companion controllers for ehci1 must have a master start port set. Since this value is predictable we should set it automatically if the app does not supply it
-
由 Daniel P. Berrange 提交于
The virDomainDeviceInfoIsSet API was only checking if an address or alias was set in the struct. Thus if only a rom bar setting / filename, boot index, or USB master value was set, they could be accidentally dropped when formatting XML
-
- 10 5月, 2012 2 次提交
-
-
由 Alex Jia 提交于
Detected by valgrind. Leaks are introduced in commit 122fa379. src/conf/storage_conf.c: fix memory leaks. How to reproduce? $ make && make -C tests check TESTS=storagepoolxml2xmltest $ cd tests && valgrind -v --leak-check=full ./storagepoolxml2xmltest actual result: ==28571== LEAK SUMMARY: ==28571== definitely lost: 40 bytes in 5 blocks ==28571== indirectly lost: 0 bytes in 0 blocks ==28571== possibly lost: 0 bytes in 0 blocks ==28571== still reachable: 1,054 bytes in 21 blocks ==28571== suppressed: 0 bytes in 0 blocks Signed-off-by: NAlex Jia <ajia@redhat.com>
-
由 Jim Fehlig 提交于
No useful error was being reported when an invalid character device target type is specified in the domainXML. E.g. ... <console type="pty"> <source path="/dev/pts/2"/> <target type="kvm" port="0"/> </console> ... resulted in error: Failed to define domain from x.xml error: An error occurred, but the cause is unknown With this small patch, the error is more helpful error: Failed to define domain from x.xml error: XML error: unknown target type 'kvm' specified for character device
-
- 09 5月, 2012 4 次提交
-
-
由 Osier Yang 提交于
<vcpu> is not an optional node. The value for its 'placement' actually always defaults to 'static' in the underlying codes. (Even no 'cpuset' and 'placement' is specified, the domain process will be pinned to all the available pCPUs).
-
由 Osier Yang 提交于
With this patch, one can also fully drive numad by: <vcpu>2</vcpu> <numatune> <memory placement='auto'/> </numatune> New tests are added.
-
由 Osier Yang 提交于
Though numad will manage the memory allocation of task dynamically, it wants management application (libvirt) to pre-set the memory policy according to the advisory nodeset returned from querying numad, (just like pre-bind CPU nodeset for domain process), and thus the performance could benefit much more from it. This patch introduces new XML tag 'placement', value 'auto' indicates whether to set the memory policy with the advisory nodeset from numad, and its value defaults to the value of <vcpu> placement, or 'static' if 'nodeset' is specified. Example of the new XML tag's usage: <numatune> <memory placement='auto' mode='interleave'/> </numatune> Just like what current "numatune" does, the 'auto' numa memory policy setting uses libnuma's API too. If <vcpu> "placement" is "auto", and <numatune> is not specified explicitly, a default <numatume> will be added with "placement" set as "auto", and "mode" set as "strict". The following XML can now fully drive numad: 1) <vcpu> placement is 'auto', no <numatune> is specified. <vcpu placement='auto'>10</vcpu> 2) <vcpu> placement is 'auto', no 'placement' is specified for <numatune>. <vcpu placement='auto'>10</vcpu> <numatune> <memory mode='interleave'/> </numatune> And it's also able to control the CPU placement and memory policy independently. e.g. 1) <vcpu> placement is 'auto', and <numatune> placement is 'static' <vcpu placement='auto'>10</vcpu> <numatune> <memory mode='strict' nodeset='0-10,^7'/> </numatune> 2) <vcpu> placement is 'static', and <numatune> placement is 'auto' <vcpu placement='static' cpuset='0-24,^12'>10</vcpu> <numatune> <memory mode='interleave' placement='auto'/> </numatume> A follow up patch will change the XML formatting codes to always output 'placement' for <vcpu>, even it's 'static'.
-
由 Alon Levy 提交于
qemu's behavior in this case is to change the spice server behavior to require secure connection to any channel not otherwise specified as being in plaintext mode. libvirt doesn't currently allow requesting this (via plaintext-channel=<channel name>). RHBZ: 819499 Signed-off-by: NAlon Levy <alevy@redhat.com>
-
- 08 5月, 2012 1 次提交
-
-
由 Alon Levy 提交于
Add "usbredir" channel to list of recognized spice channels. RHBZ: 819498 Signed-off-by: NAlon Levy <alevy@redhat.com>
-
- 03 5月, 2012 1 次提交
-
-
由 Marc-André Lureau 提交于
Fix a few more places where pid_t is printed with wrong type
-
- 01 5月, 2012 1 次提交
-
-
由 Eric Blake 提交于
The previous storage patch missed an instance affected by the struct member rename. It also had some botched whitespace detected by 'make check'. * src/storage/storage_backend_iscsi.c (virStorageBackendISCSIFindPoolSources): Adjust to new struct. * src/conf/storage_conf.c (virStoragePoolSourceFormat): Fix indentation.
-
- 30 4月, 2012 2 次提交
-
-
由 Osier Yang 提交于
It doesn't break out the "for" loop even if duplicate pool is found, and thus the "matchpool" could be overriden as NULL again if there is different pool afterwards. To address the problem in libvirt-user list: https://www.redhat.com/archives/libvirt-users/2012-April/msg00150.html
-
由 Wido den Hollander 提交于
The current storage pools for NFS and iSCSI only require one host to connect to. Future storage pools like RBD and Sheepdog will require multiple hosts. This patch allows multiple source hosts and rewrites the current storage drivers. Signed-off-by: NWido den Hollander <wido@widodh.nl>
-
- 28 4月, 2012 1 次提交
-
-
由 Stefan Berger 提交于
More bug extermination in the category of: Error: CHECKED_RETURN: /libvirt/src/conf/network_conf.c:595: check_return: Calling function "virAsprintf" without checking return value (as is done elsewhere 515 out of 543 times). /libvirt/src/qemu/qemu_process.c:2780: unchecked_value: No check of the return value of "virAsprintf(&msg, "was paused (%s)", virDomainPausedReasonTypeToString(reason))". /libvirt/tests/commandtest.c:809: check_return: Calling function "setsid" without checking return value (as is done elsewhere 4 out of 5 times). /libvirt/tests/commandtest.c:830: unchecked_value: No check of the return value of "virTestGetDebug()". /libvirt/tests/commandtest.c:831: check_return: Calling function "virTestGetVerbose" without checking return value (as is done elsewhere 41 out of 42 times). /libvirt/tests/commandtest.c:833: check_return: Calling function "virInitialize" without checking return value (as is done elsewhere 18 out of 21 times). One note about the error in commandtest line 809: setsid() seems to fail when running the test -- could be removed ?
-
- 27 4月, 2012 2 次提交
-
-
由 Stefan Berger 提交于
This patch addresses the following coverity findings: /libvirt/src/conf/nwfilter_params.c:390: var_assigned: Assigning: "varValue" = null return value from "virHashLookup". /libvirt/src/conf/nwfilter_params.c:392: dereference: Dereferencing a pointer that might be null "varValue" when calling "virNWFilterVarValueGetNthValue". /libvirt/src/conf/nwfilter_params.c:399: dereference: Dereferencing a pointer that might be null "tmp" when calling "virNWFilterVarValueGetNthValue".
-
由 Stefan Berger 提交于
This patch addresses the following coverity findings: /libvirt/src/conf/nwfilter_params.c:157: deref_parm: Directly dereferencing parameter "val". /libvirt/src/conf/nwfilter_params.c:473: negative_returns: Using variable "iterIndex" as an index to array "res->iter". /libvirt/src/nwfilter/nwfilter_ebiptables_driver.c:2891: unchecked_value: No check of the return value of "virAsprintf(&protostr, "-d 01:80:c2:00:00:00 ")". /libvirt/src/nwfilter/nwfilter_ebiptables_driver.c:2894: unchecked_value: No check of the return value of "virAsprintf(&protostr, "-p 0x%04x ", l3_protocols[protoidx].attr)". /libvirt/src/nwfilter/nwfilter_ebiptables_driver.c:3590: var_deref_op: Dereferencing null variable "inst".
-
- 23 4月, 2012 1 次提交
-
-
由 Eric Blake 提交于
In order to track a block copy job across libvirtd restarts, we need to save internal XML that tracks the name of the file holding the mirror. Displaying this name in dumpxml might also be useful to the user, even if we don't yet have a way to (re-) start a domain with mirroring enabled up front. This is done with a new <mirror> sub-element to <disk>, as in: <disk type='file' device='disk'> <driver name='qemu' type='raw'/> <source file='/var/lib/libvirt/images/original.img'/> <mirror file='/var/lib/libvirt/images/copy.img' format='qcow2' ready='yes'/> ... </disk> For now, the element is output-only, in live domains; it is ignored when defining a domain or hot-plugging a disk (since those contexts use VIR_DOMAIN_XML_INACTIVE in parsing). The 'ready' attribute appears when libvirt knows that the job has changed from the initial pulling phase over to the mirroring phase, although absence of the attribute is not a sure indicator of the current phase. If we come up with a way to make qemu start with mirroring enabled, we can relax the xml restriction, and allow <mirror> (but not attribute 'ready') on input. Testing active-only XML meant tweaking the testsuite slightly, but it was worth it. * docs/schemas/domaincommon.rng (diskspec): Add diskMirror. * docs/formatdomain.html.in (elementsDisks): Document it. * src/conf/domain_conf.h (_virDomainDiskDef): New members. * src/conf/domain_conf.c (virDomainDiskDefFree): Clean them. (virDomainDiskDefParseXML): Parse them, but only internally. (virDomainDiskDefFormat): Output them. * tests/qemuxml2argvdata/qemuxml2argv-disk-mirror.xml: New test file. * tests/qemuxml2xmloutdata/qemuxml2xmlout-disk-mirror.xml: Likewise. * tests/qemuxml2xmltest.c (testInfo): Alter members. (testCompareXMLToXMLHelper): Allow more test control. (mymain): Run new test.
-
- 20 4月, 2012 2 次提交
-
-
由 Eric Blake 提交于
I almost copied-and-pasted some redundant () into my new code, and figured a general cleanup prereq patch would be better instead. No semantic change. * src/conf/domain_conf.c (virDomainLeaseDefParseXML) (virDomainDiskDefParseXML, virDomainFSDefParseXML) (virDomainActualNetDefParseXML, virDomainNetDefParseXML) (virDomainGraphicsDefParseXML, virDomainVideoAccelDefParseXML) (virDomainVideoDefParseXML, virDomainHostdevFind) (virDomainControllerInsertPreAlloced, virDomainDefParseXML) (virDomainObjParseXML, virDomainCpuSetFormat) (virDomainCpuSetParse, virDomainDiskDefFormat) (virDomainActualNetDefFormat, virDomainNetDefFormat) (virDomainTimerDefFormat, virDomainGraphicsListenDefFormat) (virDomainDefFormatInternal, virDomainNetGetActualHostdev) (virDomainNetGetActualBandwidth, virDomainGraphicsGetListen): Reduce extra ().
-
由 Eric Blake 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=617711 reported that even with my recent patched to allow <memory unit='G'>1</memory>, people can still get away with trying <memory>1G</memory> and silently get <memory unit='KiB'>1</memory> instead. While virt-xml-validate catches the error, our C parser did not. Not to mention that it's always fun to fix bugs while reducing lines of code. :) * src/conf/domain_conf.c (virDomainParseMemory): Check for parse error. (virDomainDefParseXML): Avoid strtoll. * src/conf/storage_conf.c (virStorageDefParsePerms): Likewise. * src/util/xml.c (virXPathLongBase, virXPathULongBase) (virXPathULongLong, virXPathLongLong): Likewise.
-
- 19 4月, 2012 1 次提交
-
-
由 Stefan Berger 提交于
Fix the support for trusted DHCP server in the ebtables code's hard-coded function applying DHCP only filtering rules: Rather than using a char * use the more flexible virNWFilterVarValuePtr that contains the trusted DHCP server(s) IP address. Process all entries. Since all callers so far provided NULL as parameter, no changes are necessary in any other code.
-
- 18 4月, 2012 1 次提交
-
-
由 Stefan Berger 提交于
The below patch fixes the following memory leak. ==20624== 24 bytes in 2 blocks are definitely lost in loss record 532 of 1,867 ==20624== at 0x4A05E46: malloc (vg_replace_malloc.c:195) ==20624== by 0x38EC27FC01: strdup (strdup.c:43) ==20624== by 0x4EB6BA3: virDomainChrSourceDefCopy (domain_conf.c:1122) ==20624== by 0x495D76: qemuProcessFindCharDevicePTYs (qemu_process.c:1497) ==20624== by 0x498321: qemuProcessWaitForMonitor (qemu_process.c:1258) ==20624== by 0x49B5F9: qemuProcessStart (qemu_process.c:3652) ==20624== by 0x468B5C: qemuDomainObjStart (qemu_driver.c:4753) ==20624== by 0x469171: qemuDomainStartWithFlags (qemu_driver.c:4810) ==20624== by 0x4F21735: virDomainCreate (libvirt.c:8153) ==20624== by 0x4302BF: remoteDispatchDomainCreateHelper (remote_dispatch.h:852) ==20624== by 0x4F72C14: virNetServerProgramDispatch (virnetserverprogram.c:416) ==20624== by 0x4F6D690: virNetServerHandleJob (virnetserver.c:164) ==20624== by 0x4E8F43D: virThreadPoolWorker (threadpool.c:144) ==20624== by 0x4E8EAB5: virThreadHelper (threads-pthread.c:161) ==20624== by 0x38EC606CCA: start_thread (pthread_create.c:301) ==20624== by 0x38EC2E0C2C: clone (clone.S:115)
-
- 17 4月, 2012 1 次提交
-
-
由 Osier Yang 提交于
So that a domain xml which doesn't have "placement" specified, but "cpuset" is specified, could be parsed. And in this case, the "placement" mode will be set as "static".
-
- 16 4月, 2012 1 次提交
-
-
由 Osier Yang 提交于
As explained in previous patch, numad will balance the affinity dynamically, so reflecting the cpuset from numad at the first time doesn't make much case, and may just could cause confusion.
-
- 13 4月, 2012 1 次提交
-
-
由 Michal Privoznik 提交于
Although it should be harmless to do: disk = disk = def->disks[i] some not-so-wise compilers may fool around. Besides, such assignment is useless here.
-
- 05 4月, 2012 1 次提交
-
-
由 Alex Jia 提交于
Detected by valgrind. Leaks are introduced in commit b22eaa75. * src/conf/domain_conf.c (virDomainDiskDefParseXML): fix memory leaks. How to reproduce? % make && make -C tests check TESTS=qemuxml2argvtest % cd tests && valgrind -v --leak-check=full ./qemuxml2argvtest actual result: ==2143== 12 bytes in 2 blocks are definitely lost in loss record 74 of 179 ==2143== at 0x4A05FDE: malloc (vg_replace_malloc.c:236) ==2143== by 0x39D90A67DD: xmlStrndup (xmlstring.c:45) ==2143== by 0x4F5EC0: virDomainDiskDefParseXML (domain_conf.c:3438) ==2143== by 0x502F00: virDomainDefParseXML (domain_conf.c:8304) ==2143== by 0x505FE3: virDomainDefParseNode (domain_conf.c:9080) ==2143== by 0x5069AE: virDomainDefParse (domain_conf.c:9030) ==2143== by 0x41CBF4: testCompareXMLToArgvHelper (qemuxml2argvtest.c:105) ==2143== by 0x41E5DD: virtTestRun (testutils.c:145) ==2143== by 0x416FA3: mymain (qemuxml2argvtest.c:399) ==2143== by 0x41DCB7: virtTestMain (testutils.c:700) ==2143== by 0x39CF01ECDC: (below main) (libc-start.c:226) Signed-off-by: NAlex Jia <ajia@redhat.com>
-
- 02 4月, 2012 1 次提交
-
-
由 Philipp Hahn 提交于
Since Xen 3.1 the clock=variable semantic is supported. In addition to qemu/kvm Xen also knows about a variant where the offset is relative to 'localtime' instead of 'utc'. Extends the libvirt structure with a flag 'basis' to specify, if the offset is relative to 'localtime' or 'utc'. Extends the libvirt structure with a flag 'reset' to force the reset behaviour of 'localtime' and 'utc'; this is needed for backward compatibility with previous versions of libvirt, since they report incorrect XML. Adapt the only user 'qemu' to the new name. Extend the RelaxNG schema accordingly. Document the new 'basis' attribute in the HTML documentation. Adapt test for the new attribute. Signed-off-by: NPhilipp Hahn <hahn@univention.de>
-
- 31 3月, 2012 3 次提交
-
-
由 Eric Blake 提交于
Commit 1b1402b9 introduced a regression. Since older libvirt versions would silently round memory up (until the previous patch), but populated current memory based on querying the guest, it was possible to have dumpxml show cur > max by the amount of the rounding. For example, if a user requested 1048570 KiB memory (just shy of 1GiB), the qemu driver would actually run with 1048576 KiB, and libvirt 0.9.10 would output a current that was 6KiB larger than the maximum. Situations where this could have an impact include, but are not limited to, migration from old to new libvirt, managedsave in old libvirt and start in new libvirt, snapshot creation in old libvirt and revert in new libvirt - without this patch, the new libvirt would reject the VM because of the rounding discrepancy. Fix things by adding a fuzz factor, and silently clamp current down to maximum in that case, rather than failing to reparse XML for an existing VM. From a practical standpoint, this has no user impact: 'virsh dumpxml' will continue to query the running guest rather than rely on the incoming xml, which will see the currect current value, and even if clamping down occurs during parsing, it will be by at most the fuzz factor of a megabyte alignment, and rounded back up when passed back to the hypervisor. Meanwhile, we continue to reject cur > max if the difference is beyond the fuzz factor of nearest megabyte. But this is not a real change in behavior, since with 0.9.10, even though the parser allowed it, later in the processing stream we would reject it at the qemu layer; so rejecting it in the parser just moves error detection to a nicer place. * src/conf/domain_conf.c (virDomainDefParseXML): Don't reject existing XML. Based on a report by Zhou Peng.
-
由 Eric Blake 提交于
Regression introduced when we changed types in commit 3e2c3d8f. We've done this sort of cleanup before (see commit c685993d). * src/conf/storage_conf.c (virStoragePoolDefFormat) (virStorageVolTargetDefFormat): Cast gid_t and uid_t.
-
由 Laine Stump 提交于
This patch reverts commit b0e2bb33. Its functionality has been replaced by commit 3269ee65.
-
- 30 3月, 2012 1 次提交
-
-
由 Alex Jia 提交于
* src/conf/domain_conf.c (virDomainChannelDefCheckABIStability): avoid crashing libvirtd due to derefing a NULL pointer. For details, please see bug: RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=808371Signed-off-by: NAlex Jia <ajia@redhat.com>
-
- 29 3月, 2012 1 次提交
-
-
由 Christophe Fergeau 提交于
libvirt documentation for channels with type 'spicevmc' says that the 'target' child node has: "an optional attribute name controls how the guest will have access to the channel, and defaults to name='com.redhat.spice.0'." However, this default value is never set in libvirt code base, there's only a check in qemu_command.c to error out if the name attribute doesn't have the expected value (if it's set). This commit sets a default target name for spicevmc channels during the domain configuration parsing so that the code agrees with the documentation.
-
- 27 3月, 2012 2 次提交
-
-
由 Daniel P. Berrange 提交于
Pass argv to the init binary of LXC, using a new <initarg> element. * docs/formatdomain.html.in: Document <os> usage for containers * docs/schemas/domaincommon.rng: Add <initarg> element * src/conf/domain_conf.c, src/conf/domain_conf.h: parsing and formatting of <initarg> * src/lxc/lxc_container.c: Setup LXC argv * tests/Makefile.am, tests/lxcxml2xmldata/lxc-systemd.xml, tests/lxcxml2xmltest.c, tests/testutilslxc.c, tests/testutilslxc.h: Test parsing/formatting of LXC related XML parts
-
由 Martin Kletzander 提交于
Return statements with parameter enclosed in parentheses were modified and parentheses were removed. The whole change was scripted, here is how: List of files was obtained using this command: git grep -l -e '\<return\s*([^()]*\(([^()]*)[^()]*\)*)\s*;' | \ grep -e '\.[ch]$' -e '\.py$' Found files were modified with this command: sed -i -e \ 's_^\(.*\<return\)\s*(\(\([^()]*([^()]*)[^()]*\)*\))\s*\(;.*$\)_\1 \2\4_' \ -e 's_^\(.*\<return\)\s*(\([^()]*\))\s*\(;.*$\)_\1 \2\3_' Then checked for nonsense. The whole command looks like this: git grep -l -e '\<return\s*([^()]*\(([^()]*)[^()]*\)*)\s*;' | \ grep -e '\.[ch]$' -e '\.py$' | xargs sed -i -e \ 's_^\(.*\<return\)\s*(\(\([^()]*([^()]*)[^()]*\)*\))\s*\(;.*$\)_\1 \2\4_' \ -e 's_^\(.*\<return\)\s*(\([^()]*\))\s*\(;.*$\)_\1 \2\3_'
-
- 23 3月, 2012 3 次提交
-
-
由 Osier Yang 提交于
This introduces a new domain state pmsuspended to represent the domain which has been suspended by guest power management, e.g. (entered itno s3 state). Because a "running" state could be confused in this case, one will see the guest is paused actually while playing. And state "paused" is for the domain which was paused by virDomainSuspend.
-
由 Osier Yang 提交于
This patch introduces a new event type for the QMP event SUSPEND: VIR_DOMAIN_EVENT_ID_PMSUSPEND The event doesn't take any data, but considering there might be reason for wakeup in future, the callback definition is: typedef void (*virConnectDomainEventSuspendCallback)(virConnectPtr conn, virDomainPtr dom, int reason, void *opaque); "reason" is unused currently, always passes "0".
-
由 Osier Yang 提交于
This patch introduces a new event type for the QMP event WAKEUP: VIR_DOMAIN_EVENT_ID_PMWAKEUP The event doesn't take any data, but considering there might be reason for wakeup in future, the callback definition is: typedef void (*virConnectDomainEventWakeupCallback)(virConnectPtr conn, virDomainPtr dom, int reason, void *opaque); "reason" is unused currently, always passes "0".
-