[PATCH] docs: apps: Add the app cockpit
by Han Han
Signed-off-by: Han Han <hhan(a)redhat.com>
---
docs/apps.rst | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/docs/apps.rst b/docs/apps.rst
index a21e2249ea..d01ad33f37 100644
--- a/docs/apps.rst
+++ b/docs/apps.rst
@@ -331,6 +331,10 @@ Web applications
Secrets
- Create and launch VMs
- Configure VMs with easy panels or go pro and edit the VM's XML
+`Cockpit <https://cockpit-project.org/>`__
+ Cockpit is a web-based graphical interface for servers. With
+ `cockpit-machines <https://github.com/cockpit-project/cockpit-machines>`__
+ it can create and manage virtual machines via libvirt.
Other
-----
--
2.36.0
2 years, 6 months
[libvirt PATCH v2 0/4] Enable copy/paste for vnc displays
by Jonathon Jongsma
This patch series enables support for the qemu-vdagent character device which
enables copy/paste support between guest and client when using vnc graphics.
The guest must be configured with something like the following:
<channel type='qemu-vdagent'>
<source>
<clipboard copypaste='yes'/>
<mouse mode='client'/>
</source>
<target type='virtio' name='com.redhat.spice.0'/>
</channel>
Copy/paste sync requires a vnc client that has support for copy/paste commands.
Currently virt-viewer does not work, but the version of tigervnc provided by
fedora (executable name 'vncviewer') does work.
More details about this device on Gerd's blog:
https://www.kraxel.org/blog/2021/05/qemu-cut-paste/
For now I have left the target to be configurable to match the spicevmc
channel, although Marc-Andre has suggested to simply hard-code it to the virtio
name com.redhat.spice.0
Changes in v2:
- change xml syntax to use <clipboard> and <mouse> sub-elements of <source>
defined in the same way as they are for the spice display.
- fix a build failure when apparmor was enabled
- Add another test for when features are turned off
Jonathon Jongsma (4):
qemu: add capability for qemu-vdagent chardev
Rename virDomainGraphicsSpiceMouseMode to virDomainMouseMode
conf: add qemu-vdagent channel
qemu: add support for qemu-vdagent channel
docs/formatdomain.rst | 23 ++++++
src/conf/domain_conf.c | 70 +++++++++++++++++--
src/conf/domain_conf.h | 24 ++++---
src/conf/domain_validate.c | 1 +
src/conf/schemas/domaincommon.rng | 51 +++++++++-----
src/libvirt_private.syms | 4 +-
src/libxl/libxl_conf.c | 8 +--
src/libxl/xen_xl.c | 16 ++---
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 32 +++++++--
src/qemu/qemu_monitor_json.c | 27 +++++++
src/qemu/qemu_process.c | 1 +
src/qemu/qemu_validate.c | 9 +++
src/security/security_apparmor.c | 2 +
src/security/security_dac.c | 2 +
.../caps_6.1.0.x86_64.xml | 1 +
.../caps_6.2.0.aarch64.xml | 1 +
.../caps_6.2.0.x86_64.xml | 1 +
.../caps_7.0.0.x86_64.xml | 1 +
...l-qemu-vdagent-features.x86_64-latest.args | 41 +++++++++++
.../channel-qemu-vdagent-features.xml | 37 ++++++++++
.../channel-qemu-vdagent.x86_64-latest.args | 41 +++++++++++
.../qemuxml2argvdata/channel-qemu-vdagent.xml | 37 ++++++++++
tests/qemuxml2argvtest.c | 2 +
...el-qemu-vdagent-features.x86_64-latest.xml | 58 +++++++++++++++
.../channel-qemu-vdagent.x86_64-latest.xml | 58 +++++++++++++++
tests/qemuxml2xmltest.c | 2 +
tests/testutilsqemu.c | 1 +
29 files changed, 500 insertions(+), 54 deletions(-)
create mode 100644 tests/qemuxml2argvdata/channel-qemu-vdagent-features.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/channel-qemu-vdagent-features.xml
create mode 100644 tests/qemuxml2argvdata/channel-qemu-vdagent.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/channel-qemu-vdagent.xml
create mode 100644 tests/qemuxml2xmloutdata/channel-qemu-vdagent-features.x86_64-latest.xml
create mode 100644 tests/qemuxml2xmloutdata/channel-qemu-vdagent.x86_64-latest.xml
--
2.35.1
2 years, 6 months
[PATCH] qemu_security: Drop qemuSecurityStartVhostUserGPU()
by Michal Privoznik
There's no real difference between
qemuSecurityStartVhostUserGPU() and qemuSecurityCommandRun(). The
latter is used more frequently while the former has just one
user. Therefore, drop the less frequently used one.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_security.c | 40 ----------------------------------
src/qemu/qemu_security.h | 6 -----
src/qemu/qemu_vhost_user_gpu.c | 3 +--
3 files changed, 1 insertion(+), 48 deletions(-)
diff --git a/src/qemu/qemu_security.c b/src/qemu/qemu_security.c
index 19d957dd4b..3be1766764 100644
--- a/src/qemu/qemu_security.c
+++ b/src/qemu/qemu_security.c
@@ -499,46 +499,6 @@ qemuSecurityRestoreNetdevLabel(virQEMUDriver *driver,
}
-/*
- * qemuSecurityStartVhostUserGPU:
- *
- * @driver: the QEMU driver
- * @vm: the domain object
- * @cmd: the command to run
- * @existstatus: pointer to int returning exit status of process
- * @cmdret: pointer to int returning result of virCommandRun
- *
- * Start the vhost-user-gpu process with appropriate labels.
- * This function returns -1 on security setup error, 0 if all the
- * setup was done properly. In case the virCommand failed to run
- * 0 is returned but cmdret is set appropriately with the process
- * exitstatus also set.
- */
-int
-qemuSecurityStartVhostUserGPU(virQEMUDriver *driver,
- virDomainObj *vm,
- virCommand *cmd,
- int *exitstatus,
- int *cmdret)
-{
- if (virSecurityManagerSetChildProcessLabel(driver->securityManager,
- vm->def, cmd) < 0)
- return -1;
-
- if (virSecurityManagerPreFork(driver->securityManager) < 0)
- return -1;
-
- *cmdret = virCommandRun(cmd, exitstatus);
-
- virSecurityManagerPostFork(driver->securityManager);
-
- if (*cmdret < 0)
- return -1;
-
- return 0;
-}
-
-
/*
* qemuSecurityStartTPMEmulator:
*
diff --git a/src/qemu/qemu_security.h b/src/qemu/qemu_security.h
index 8b26ea3f99..eaf646f225 100644
--- a/src/qemu/qemu_security.h
+++ b/src/qemu/qemu_security.h
@@ -87,12 +87,6 @@ int qemuSecurityRestoreNetdevLabel(virQEMUDriver *driver,
virDomainObj *vm,
virDomainNetDef *net);
-int qemuSecurityStartVhostUserGPU(virQEMUDriver *driver,
- virDomainObj *vm,
- virCommand *cmd,
- int *exitstatus,
- int *cmdret);
-
int qemuSecurityStartTPMEmulator(virQEMUDriver *driver,
virDomainObj *vm,
virCommand *cmd,
diff --git a/src/qemu/qemu_vhost_user_gpu.c b/src/qemu/qemu_vhost_user_gpu.c
index f7d444e851..6f601cebde 100644
--- a/src/qemu/qemu_vhost_user_gpu.c
+++ b/src/qemu/qemu_vhost_user_gpu.c
@@ -158,8 +158,7 @@ int qemuExtVhostUserGPUStart(virQEMUDriver *driver,
virCommandAddArgFormat(cmd, "--render-node=%s", video->accel->rendernode);
}
- if (qemuSecurityStartVhostUserGPU(driver, vm, cmd,
- &exitstatus, &cmdret) < 0)
+ if (qemuSecurityCommandRun(driver, vm, cmd, -1, -1, &exitstatus, &cmdret) < 0)
goto error;
if (cmdret < 0 || exitstatus != 0) {
--
2.35.1
2 years, 6 months
[PATCH RESEND] apibuild: Fix self.waring method call
by luzhipeng
The parameters of self.warning is inconsistent with it's definition, So
fix it.
Signed-off-by: luzhipeng <luzhipeng(a)cestc.cn>
---
scripts/apibuild.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/apibuild.py b/scripts/apibuild.py
index 2a343208c5..23a66734ac 100755
--- a/scripts/apibuild.py
+++ b/scripts/apibuild.py
@@ -328,7 +328,7 @@ class index:
if type in type_map:
type_map[type][name] = d
else:
- self.warning("Unable to register type ", type)
+ self.warning("Unable to register type %s" % type)
if name == debugsym and not quiet:
print("New symbol: %s" % (d))
--
2.34.0.windows.1
2 years, 6 months
[PATCH 0/3] Add a retry procedure after failing to do post parsing
by zhangjl02
Get default emulator based on guest's arch, and replace it in domain's
definition after domainPostParseDataAlloc's failure, then alloc again.
This will solve the migration problem because of qemu emulator location error,
especially, from host with to host without qemu-kvm.
This commit will also allow user to create a domain with wrong emulator
location, and correct it to the default one.
zhangjl02 (3):
qemu_domain: introduce qemuDomainPostParseDataDefEmulator
domain_conf: introduce virDomainPostParseDataDefEmulator type
domain_conf: set default emulator into def if it fails to alloc
src/conf/domain_conf.c | 10 +++++++++-
src/conf/domain_conf.h | 2 ++
src/qemu/qemu_domain.c | 18 ++++++++++++++++++
3 files changed, 29 insertions(+), 1 deletion(-)
--
2.35.1.windows.2
2 years, 6 months
[libvirt RFCv7 00/40] multifd save restore prototype
by Claudio Fontana
This is v7 of the multifd save prototype, rebased on post 8.3.0 release,
which features more splits and better support for multifd compression.
changes from v6:
* improved error path handling, with error messages and especially
cancellation of qemu process on error during restore.
* split patches more and reordered them to keep general refactoring
at the beginning before the --parallel stuff is introduced.
* improved multifd compression support, including adding an enum
and extending the QEMU save image format to record the compression
used on save, and pick it up automatically on restore.
KNOWN ISSUES:
1) this applies only to virsh save and virsh restore for now
(no managed save etc).
...
changes from v4:
* runIO renamed to virFileDiskCopy and rethought arguments
* renamed new APIs from ...ParametersFlags to ...Params
* introduce the new virDomainSaveParams and virDomainRestoreParams
without any additional parameters, so they can be upstreamed first.
* solved the issue in the gendispatch.pl script generating code that
was missing the conn parameter.
---
changes from v3:
* reordered series to have all helper-related change at the start
* solved all reported issues from ninja test, including documentation
* fixed most broken migration capabilities code (still imperfect likely)
* added G_GNUC_UNUSED as needed
* after multifd restore, added what I think were the missing operations:
qemuProcessRefreshState(),
qemuProcessStartCPUs() - most importantly,
virDomainObjSave()
The domain now starts running after restore without further encouragement
* removed the sleep(10) from the multifd-helper
changes from v2:
* added ability to restore the VM from disk using multifd
* fixed the multifd-helper to work in both directions,
assuming the need to listen for save, and connect for restore.
* fixed a large number of bugs, and probably introduced some :-)
Thanks for your thoughts,
Claudio
Claudio Fontana (40):
iohelper: introduce new struct to carry copy operation parameters
iohelper: refactor copy operation as a separate function
iohelper: move runIO function to virfile.c
virfile: rename runIO to virFileDiskCopy
virfile: change virFileDiskCopy arguments to extend beyond stdin,
stdout
virfile: add comment about the use of SEEK_END in virFileDiskCopy
libvirt: introduce virDomainSaveParams public API
libvirt: introduce virDomainRestoreParams public API
remote: Add RPC support for the virDomainSaveParams API
gendispatch: add DomainRestoreParams as requiring conn argument
remote: Add RPC support for the virDomainRestoreParams API
tools: make use of params in doSave
tools: make use of params in cmdRestore
multifd-helper: new helper for parallel save/restore
qemu: add implementation for virDomainSaveParams API
qemu: add implementation for virDomainRestoreParams API
libvirt: add new VIR_DOMAIN_SAVE_PARALLEL flag and parameter
qemu: add stub support for VIR_DOMAIN_SAVE_PARALLEL in save
qemu: add stub support for VIR_DOMAIN_SAVE_PARALLEL in restore
qemu: saveimage: introduce virQEMUSaveFd
qemu: saveimage: convert qemuSaveImageCreate to use virQEMUSaveFd
qemu: saveimage: convert qemuSaveImageOpen to use virQEMUSaveFd
qemu: saveimage: add virQEMUSaveFd APIs for multifd
qemu: saveimage: wire up saveimage code with the multifd helper
qemu: capabilities: add multifd to the probed migration capabilities
qemu: implement qemuMigrationSrcToFilesMultiFd
qemu: add parameter to qemuMigrationDstRun to skip waiting
qemu: implement qemuSaveImageLoadMultiFd
tools: add parallel parameter to virsh save command
tools: add parallel parameter to virsh restore command
docs: update refs to virDomainSaveParams and virDomainRestoreParams
qemu: add migration parameter multifd-compression
libvirt: add new VIR_SAVE_PARAM_PARALLEL_COMPRESSION
qemu: saveimage: add multifd-compression field to save format
qemu: saveimage: add parallel compression argument to ImageCreate
qemu: saveimage: add stub support for multifd compression parameter
qemu: migration: expose qemuMigrationParamsSetString
qemu: saveimage: implement multifd-compression in parallel save
tools: add parallel-compression parameter to virsh save command
qemu: saveimage: restore compressed parallel saves
docs/formatsnapshot.rst | 5 +-
docs/manpages/virsh.rst | 38 +-
include/libvirt/libvirt-domain.h | 60 ++
po/POTFILES.in | 1 +
src/driver-hypervisor.h | 14 +
src/libvirt-domain.c | 99 +++-
src/libvirt_private.syms | 1 +
src/libvirt_public.syms | 6 +
src/qemu/qemu_capabilities.c | 6 +
src/qemu/qemu_capabilities.h | 4 +
src/qemu/qemu_driver.c | 244 ++++++--
src/qemu/qemu_migration.c | 160 ++++--
src/qemu/qemu_migration.h | 16 +-
src/qemu/qemu_migration_params.c | 71 ++-
src/qemu/qemu_migration_params.h | 15 +
src/qemu/qemu_process.c | 3 +-
src/qemu/qemu_process.h | 5 +-
src/qemu/qemu_saveimage.c | 544 ++++++++++++++----
src/qemu/qemu_saveimage.h | 55 +-
src/qemu/qemu_snapshot.c | 6 +-
src/remote/remote_driver.c | 2 +
src/remote/remote_protocol.x | 29 +-
src/remote_protocol-structs | 17 +
src/rpc/gendispatch.pl | 5 +-
src/util/iohelper.c | 162 +-----
src/util/meson.build | 20 +
src/util/multifd-helper.c | 249 ++++++++
src/util/virfile.c | 214 +++++++
src/util/virfile.h | 2 +
src/util/virthread.c | 5 +
src/util/virthread.h | 1 +
.../caps_4.0.0.aarch64.xml | 1 +
.../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 +
.../caps_4.0.0.riscv32.xml | 1 +
.../caps_4.0.0.riscv64.xml | 1 +
.../qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 +
.../caps_4.0.0.x86_64.xml | 1 +
.../caps_4.1.0.x86_64.xml | 1 +
.../caps_4.2.0.aarch64.xml | 1 +
.../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 +
.../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 +
.../caps_4.2.0.x86_64.xml | 1 +
.../caps_5.0.0.aarch64.xml | 2 +
.../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 2 +
.../caps_5.0.0.riscv64.xml | 2 +
.../caps_5.0.0.x86_64.xml | 2 +
.../qemucapabilitiesdata/caps_5.1.0.sparc.xml | 2 +
.../caps_5.1.0.x86_64.xml | 2 +
.../caps_5.2.0.aarch64.xml | 2 +
.../qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 2 +
.../caps_5.2.0.riscv64.xml | 2 +
.../qemucapabilitiesdata/caps_5.2.0.s390x.xml | 2 +
.../caps_5.2.0.x86_64.xml | 2 +
.../caps_6.0.0.aarch64.xml | 2 +
.../qemucapabilitiesdata/caps_6.0.0.s390x.xml | 2 +
.../caps_6.0.0.x86_64.xml | 2 +
.../caps_6.1.0.x86_64.xml | 2 +
.../caps_6.2.0.aarch64.xml | 2 +
.../qemucapabilitiesdata/caps_6.2.0.ppc64.xml | 2 +
.../caps_6.2.0.x86_64.xml | 2 +
.../caps_7.0.0.aarch64.xml | 2 +
.../qemucapabilitiesdata/caps_7.0.0.ppc64.xml | 2 +
.../caps_7.0.0.x86_64.xml | 2 +
tools/virsh-domain.c | 101 +++-
64 files changed, 1766 insertions(+), 447 deletions(-)
create mode 100644 src/util/multifd-helper.c
--
2.35.3
2 years, 6 months
[libvirt PATCH] NEWS: Mention improved heuristics for CPU baseline
by Jiri Denemark
Signed-off-by: Jiri Denemark <jdenemar(a)redhat.com>
---
NEWS.rst | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 4a213682a4..70fbfc0108 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -21,6 +21,15 @@ v8.4.0 (unreleased)
* **Bug fixes**
+ * Improve heuristics for computing baseline CPU models
+
+ Both virConnectBaselineHypervisorCPU and virConnectBaselineCPU were
+ in some cases computing the result using a CPU model which was newer
+ than some of the input models. For example, ``Cascadelake-Server`` was
+ used as a baseline for ``Skylake-Server-IBRS`` and ``Cascadelake-Server``.
+ The CPU model selection heuristics was improved to choose a more
+ appropriate model.
+
v8.3.0 (2022-05-02)
===================
--
2.35.1
2 years, 6 months
[libvirt PATCH] ci: Move clang/asan/ubsan jobs to Ubuntu 22.04
by Andrea Bolognani
Using an updated toolchain means we're likely to catch more
issues.
Signed-off-by: Andrea Bolognani <abologna(a)redhat.com>
---
ci/gitlab.yml | 16 ++++++++--------
ci/manifest.yml | 6 +++---
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/ci/gitlab.yml b/ci/gitlab.yml
index f93f6222e8..07ad36809d 100644
--- a/ci/gitlab.yml
+++ b/ci/gitlab.yml
@@ -581,31 +581,31 @@ x86_64-ubuntu-2004:
- x86_64-ubuntu-2004-container
allow_failure: false
variables:
- ASAN_OPTIONS: verify_asan_link_order=0
- MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
NAME: ubuntu-2004
- UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
-x86_64-ubuntu-2004-clang:
+x86_64-ubuntu-2204:
extends: .native_build_job
needs:
- - x86_64-ubuntu-2004-container
+ - x86_64-ubuntu-2204-container
allow_failure: false
variables:
- CC: clang
+ ASAN_OPTIONS: verify_asan_link_order=0
MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
- NAME: ubuntu-2004
+ NAME: ubuntu-2204
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
-x86_64-ubuntu-2204:
+x86_64-ubuntu-2204-clang:
extends: .native_build_job
needs:
- x86_64-ubuntu-2204-container
allow_failure: false
variables:
+ CC: clang
+ MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
NAME: ubuntu-2204
+ UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
diff --git a/ci/manifest.yml b/ci/manifest.yml
index 9a643be5b8..38582da3a6 100644
--- a/ci/manifest.yml
+++ b/ci/manifest.yml
@@ -209,7 +209,9 @@ targets:
PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin
PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig
- ubuntu-2004:
+ ubuntu-2004: x86_64
+
+ ubuntu-2204:
jobs:
- arch: x86_64
variables:
@@ -223,5 +225,3 @@ targets:
CC: clang
MESON_ARGS: -Db_lundef=false -Db_sanitize=address,undefined
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
-
- ubuntu-2204: x86_64
--
2.35.1
2 years, 6 months
[libvirt RFCv6 00/27] multifd save restore prototype
by Claudio Fontana
This a respin of the multifd save prototype,
rebased on post 8.3.0 release.
There are still quite a few rough edges:
KNOWN ISSUES:
1) this applies only to virsh save and virsh restore for now
(no managed save etc).
2) error handling is not good yet, especially during resume,
errors may leave behind a qemu process and such.
May need some help find all of these cases
3) the compression part is demonstrative only, there needs
to be more attention to compression options, and detecting
the compression used to store the multifd saves.
...
changes from v4:
* runIO renamed to virFileDiskCopy and rethought arguments
* renamed new APIs from ...ParametersFlags to ...Params
* introduce the new virDomainSaveParams and virDomainRestoreParams
without any additional parameters, so they can be upstreamed first.
* solved the issue in the gendispatch.pl script generating code that
was missing the conn parameter.
---
changes from v3:
* reordered series to have all helper-related change at the start
* solved all reported issues from ninja test, including documentation
* fixed most broken migration capabilities code (still imperfect likely)
* added G_GNUC_UNUSED as needed
* after multifd restore, added what I think were the missing operations:
qemuProcessRefreshState(),
qemuProcessStartCPUs() - most importantly,
virDomainObjSave()
The domain now starts running after restore without further encouragement
* removed the sleep(10) from the multifd-helper
changes from v2:
* added ability to restore the VM from disk using multifd
* fixed the multifd-helper to work in both directions,
assuming the need to listen for save, and connect for restore.
* fixed a large number of bugs, and probably introduced some :-)
Thanks for your thoughts,
Claudio
Claudio Fontana (27):
iohelper: introduce new struct to carry copy operation parameters
iohelper: refactor copy operation as a separate function
iohelper: move runIO function to virfile.c
virfile: rename runIO to virFileDiskCopy
virfile: change virFileDiskCopy arguments to extend beyond stdin,
stdout
virfile: add comment about the use of SEEK_END in virFileDiskCopy
multifd-helper: new helper for parallel save/restore
libvirt: introduce virDomainSaveParams public API
libvirt: introduce virDomainRestoreParams public API
remote: Add RPC support for the virDomainSaveParams API
gendispatch: add DomainRestoreParams as requiring conn argument
remote: Add RPC support for the virDomainRestoreParams API
qemu: add implementation for virDomainSaveParams API
qemu: add implementation for virDomainRestoreParams API
libvirt: add new VIR_DOMAIN_SAVE_PARALLEL flag and parameter
qemu: add stub support for VIR_DOMAIN_SAVE_PARALLEL in save
qemu: add stub support for VIR_DOMAIN_SAVE_PARALLEL in restore
qemu: saveimage: introduce virQEMUSaveFd
qemu: wire up saveimage code with the multifd helper
qemu: capabilities: add multifd to the probed migration capabilities
qemu: implement qemuMigrationSrcToFilesMultiFd
qemu: add parameter to qemuMigrationDstRun to skip waiting
qemu: implement qemuSaveImageLoadMultiFd
tools: add parallel parameter to virsh save command
tools: add parallel parameter to virsh restore command
docs: update refs to virDomainSaveParams and virDomainRestoreParams
qemu: add migration parameter multifd-compression
docs/formatsnapshot.rst | 5 +-
docs/manpages/virsh.rst | 34 +-
include/libvirt/libvirt-domain.h | 49 ++
po/POTFILES.in | 1 +
src/driver-hypervisor.h | 14 +
src/libvirt-domain.c | 99 +++-
src/libvirt_private.syms | 1 +
src/libvirt_public.syms | 6 +
src/qemu/qemu_capabilities.c | 6 +
src/qemu/qemu_capabilities.h | 4 +
src/qemu/qemu_driver.c | 239 +++++++--
src/qemu/qemu_migration.c | 155 ++++--
src/qemu/qemu_migration.h | 16 +-
src/qemu/qemu_migration_params.c | 71 ++-
src/qemu/qemu_migration_params.h | 15 +
src/qemu/qemu_process.c | 3 +-
src/qemu/qemu_process.h | 5 +-
src/qemu/qemu_saveimage.c | 496 ++++++++++++++----
src/qemu/qemu_saveimage.h | 49 +-
src/qemu/qemu_snapshot.c | 6 +-
src/remote/remote_driver.c | 2 +
src/remote/remote_protocol.x | 29 +-
src/remote_protocol-structs | 17 +
src/rpc/gendispatch.pl | 5 +-
src/util/iohelper.c | 162 +-----
src/util/meson.build | 19 +
src/util/multifd-helper.c | 249 +++++++++
src/util/virfile.c | 218 ++++++++
src/util/virfile.h | 2 +
src/util/virthread.c | 5 +
src/util/virthread.h | 1 +
.../caps_4.0.0.aarch64.xml | 1 +
.../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 +
.../caps_4.0.0.riscv32.xml | 1 +
.../caps_4.0.0.riscv64.xml | 1 +
.../qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 +
.../caps_4.0.0.x86_64.xml | 1 +
.../caps_4.1.0.x86_64.xml | 1 +
.../caps_4.2.0.aarch64.xml | 1 +
.../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 +
.../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 +
.../caps_4.2.0.x86_64.xml | 1 +
.../caps_5.0.0.aarch64.xml | 2 +
.../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 2 +
.../caps_5.0.0.riscv64.xml | 2 +
.../caps_5.0.0.x86_64.xml | 2 +
.../qemucapabilitiesdata/caps_5.1.0.sparc.xml | 2 +
.../caps_5.1.0.x86_64.xml | 2 +
.../caps_5.2.0.aarch64.xml | 2 +
.../qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 2 +
.../caps_5.2.0.riscv64.xml | 2 +
.../qemucapabilitiesdata/caps_5.2.0.s390x.xml | 2 +
.../caps_5.2.0.x86_64.xml | 2 +
.../caps_6.0.0.aarch64.xml | 2 +
.../qemucapabilitiesdata/caps_6.0.0.s390x.xml | 2 +
.../caps_6.0.0.x86_64.xml | 2 +
.../caps_6.1.0.x86_64.xml | 2 +
.../caps_6.2.0.aarch64.xml | 2 +
.../qemucapabilitiesdata/caps_6.2.0.ppc64.xml | 2 +
.../caps_6.2.0.x86_64.xml | 2 +
.../caps_7.0.0.aarch64.xml | 2 +
.../qemucapabilitiesdata/caps_7.0.0.ppc64.xml | 2 +
.../caps_7.0.0.x86_64.xml | 2 +
tools/virsh-domain.c | 96 +++-
64 files changed, 1686 insertions(+), 446 deletions(-)
create mode 100644 src/util/multifd-helper.c
--
2.35.3
2 years, 6 months