Signed-off-by: Han Han
---
NEWS.rst | 4
1 file changed, 4 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index f27e8bb22d..34934b42f3 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1020,6 +1020,10 @@ v7.0.0 (2021-01-15)
The cpu model Snowridge is supported since QEMU 4.1.
+ * qemu:
Signed-off-by: Han Han
---
NEWS.rst | 4
1 file changed, 4 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 68e89e0fc8..115114789d 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1192,6 +1192,10 @@ v6.9.0 (2020-11-02)
using . The node device APIs also now
list and provide XML
Han Han (16):
news: make SEV attrs 'cbitpos' & 'reducedPhysBits' optional
news: support device stats collection for SR-IOV VF hostdev
news: cpu_map: Add EPYC-Rome cpu model
news: cpu: Support for XML validation in cpu comparison
news: logging: allow max_len=0 to disable log rollover
Signed-off-by: Han Han
---
NEWS.rst | 7 +++
1 file changed, 7 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 7903449f9b..b17d6f58ec 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1192,6 +1192,13 @@ v6.9.0 (2020-11-02)
using . The node device APIs also now
list and provide XML
Signed-off-by: Han Han
---
NEWS.rst | 5 +
1 file changed, 5 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 3a19ac1d43..008601c0f5 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1137,6 +1137,11 @@ v6.10.0 (2020-12-01)
mode of files and directories, respectively, when using
Signed-off-by: Han Han
---
NEWS.rst | 6 ++
1 file changed, 6 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 92cb7ea1de..3a19ac1d43 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1106,6 +1106,12 @@ v6.10.0 (2020-12-01)
option is missing are now '1'. This ensures that only legitimate
Signed-off-by: Han Han
---
NEWS.rst | 2 ++
1 file changed, 2 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 34934b42f3..aa0eaa7d9a 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -541,6 +541,8 @@ v7.7.0 (2021-09-01)
forbidden for older qemus which don't support the update API as the guest
Signed-off-by: Han Han
---
NEWS.rst | 3 +++
1 file changed, 3 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index aa0eaa7d9a..f8c4b5d3f8 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -470,6 +470,9 @@ v7.8.0 (2021-10-01)
active. This information can also be retrieved with the new virsh command
Signed-off-by: Han Han
---
NEWS.rst | 12
1 file changed, 12 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index f8c4b5d3f8..5bc1eda149 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -474,6 +474,18 @@ v7.8.0 (2021-10-01)
Implement the queue-size from QEMU to adjust the virtio disk
Signed-off-by: Han Han
---
NEWS.rst | 4
1 file changed, 4 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 008601c0f5..f27e8bb22d 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1016,6 +1016,10 @@ v7.0.0 (2021-01-15)
powered off or undefined. Add per-TPM emulator option
Signed-off-by: Han Han
---
NEWS.rst | 7 +++
1 file changed, 7 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 879e2d5f61..92cb7ea1de 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1124,6 +1124,13 @@ v6.10.0 (2020-12-01)
``virDomainSetVcpus()``, and ``virDomainSetVcpusFlags()`` APIs
Signed-off-by: Han Han
---
NEWS.rst | 5 +
1 file changed, 5 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index e00e4e173d..879e2d5f61 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1233,6 +1233,11 @@ v6.9.0 (2020-11-02)
avoid needless cost of host CPU cycles and improve the performance of
Signed-off-by: Han Han
---
NEWS.rst | 7 +++
1 file changed, 7 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index a474a25cba..e00e4e173d 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1204,6 +1204,13 @@ v6.9.0 (2020-11-02)
virsh, use the option ``--validate`` for sub-commmand
Signed-off-by: Han Han
---
NEWS.rst | 6 ++
1 file changed, 6 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 9be6888277..a474a25cba 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1220,6 +1220,12 @@ v6.9.0 (2020-11-02)
Set ``max_len=0`` in ``virtlogd.conf`` to disable log rollover.
Signed-off-by: Han Han
---
NEWS.rst | 4
1 file changed, 4 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 1d6447a324..9be6888277 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1216,6 +1216,10 @@ v6.9.0 (2020-11-02)
For SR-IOV VF hostdev, now libvirt supports to retrieve device traffic
Signed-off-by: Han Han
---
NEWS.rst | 8
1 file changed, 8 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 115114789d..1d6447a324 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1196,6 +1196,14 @@ v6.9.0 (2020-11-02)
The EPYC-Rome is supported in QEMU since ``v5.0.0``.
+ * cpu:
Signed-off-by: Han Han
---
NEWS.rst | 5 +
1 file changed, 5 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index b17d6f58ec..68e89e0fc8 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -1199,6 +1199,11 @@ v6.9.0 (2020-11-02)
Libvirt probes the underlying platform in order to fill in these SEV
On Sat, May 07, 2022 at 03:42:53PM +0200, Claudio Fontana wrote:
> This is v8 of the multifd save prototype, which fixes a few bugs,
> adds a few more code splits, and records the number of channels
> as well as the compression algorithm, so the restore command is
> more user-friendly.
>
> It is
In virDomainVideoModelDefParseXML(), use the virXMLProp* functions
rather than reimplementing them with virXPath* functions.
Signed-off-by: Jonathon Jongsma
---
src/conf/domain_conf.c | 78 +-
1 file changed, 23 insertions(+), 55 deletions(-)
diff --git
This can improve performance for some guests since it reduces copying of
display data between host and guest. Requires udmabuf on the host.
Signed-off-by: Jonathon Jongsma
---
src/qemu/qemu_cgroup.c| 22 ++
src/qemu/qemu_command.c | 3 ++
Add the ability to enable blob resources for the virtio video device.
This will accelerate the display path due to less or no copying of pixel
data.
Blob resource support can be enabled with e.g.:
Some additional background information about blob resources:
Rather than storing the video type as an integer, use the proper enum
type within the struct.
Signed-off-by: Jonathon Jongsma
---
src/conf/domain_conf.c | 4 +---
src/conf/domain_conf.h | 2 +-
src/libxl/libxl_conf.c | 10 ++
src/libxl/libxl_domain.c | 11
Add support to libvirt for the 'blob' option for virtio video devices in qemu.
Also do a little preparatory refactoring of the video device xml parsing code.
I sent this series out a couple months ago but didn't get any review. Sending
out again after rebasing to current master branch.
changes
Capability to determine whether this qemu supports the 'blob' option for
virtio-gpu.
Signed-off-by: Jonathon Jongsma
---
src/qemu/qemu_capabilities.c | 2 ++
src/qemu/qemu_capabilities.h | 1 +
tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml | 1 +
Factor out a separate function to parse out the element for
video devices.
Signed-off-by: Jonathon Jongsma
---
src/conf/domain_conf.c | 95 ++
1 file changed, 59 insertions(+), 36 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
The QEMU process is already running, all we need to do is to call
migrate-recover QMP command. Except for some checks and cookie handling,
of course.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 99 +++
1 file changed, 99 insertions(+)
diff
Every single call to qemuMigrationJobContinue needs to register a
cleanup callback in case the migrating domain dies between phases or
when migration is paused due to a failure in postcopy mode.
Let's integrate registering the callback in qemuMigrationJobContinue to
make sure the current thread
Signed-off-by: Jiri Denemark
---
docs/manpages/virsh.rst | 9 +++--
tools/virsh-domain.c| 8
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index e73e590754..e36d64c164 100644
--- a/docs/manpages/virsh.rst
+++
The original virDomainAbortJob did not support flags.
Signed-off-by: Jiri Denemark
---
include/libvirt/libvirt-domain.h | 3 +++
src/driver-hypervisor.h | 5
src/libvirt-domain.c | 45
src/libvirt_public.syms | 1 +
qemuMigrationSrcRun does a lot of thing before and after telling QEMU to
start the migration. Let's make the core reusable by moving it to a new
qemuMigrationSrcStart function.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 118 +++---
1 file
We want to use query-migrate QMP command to check the current migration
state when reconnecting to active domains, but the reply we get to this
command may not contain any statistics at all if called on the
destination host.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_monitor_json.c | 88
Everything was already done in the normal Finish phase and vCPUs are
running. We just need to wait for all remaining data to be transferred.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 46 ++-
1 file changed, 40 insertions(+), 6 deletions(-)
Normally the structure is created once the source reports completed
migration, but with post-copy migration we can get here even after
libvirt daemon was restarted. It doesn't make sense to preserve the
structure in our status XML as we're going to rewrite almost all of it
while refreshing the
Non-postcopy case talks to QEMU monitor and thus needs to create a
nested job. Since qemuMigrationAnyConnectionClosed is called in case
there's no thread processing a migration API, we need to make the
current thread a temporary owner of the migration job to avoid "This
thread doesn't seem to be
Signed-off-by: Jiri Denemark
---
include/libvirt/libvirt-domain.h | 16
src/libvirt-domain.c | 10 ++
2 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-domain.h
index
Since all parts of post-copy recovery have been implemented now, it's
time to enable the corresponding flag.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/qemu/qemu_migration.h b/src/qemu/qemu_migration.h
index
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 53 ++-
1 file changed, 36 insertions(+), 17 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index d7e8b9d1e4..24aa831c45 100644
--- a/src/qemu/qemu_migration.c
+++
Signed-off-by: Jiri Denemark
---
NEWS.rst | 5 +
1 file changed, 5 insertions(+)
diff --git a/NEWS.rst b/NEWS.rst
index 7903449f9b..bafc70ba90 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -17,6 +17,11 @@ v8.4.0 (unreleased)
* **New features**
+ * qemu: Add support for post-copy recovery
+
Since most of the cleanup code was moved out of this function, we don't
need to preserve the original error here.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 6 +-
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/src/qemu/qemu_migration.c
Offline migration jumps over a big part of qemuMigrationDstPrepareFresh.
Let's move that part into a new qemuMigrationDstPrepareActive function
to make the code easier to follow.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 374 +-
1 file
The callback will properly cleanup non-p2p migration job in case the
migrating domain dies between Begin and Perform while the client which
controls the migration is not cooperating (normally the API for the next
migration phase would handle this).
The same situation can happen even after Prepare
It is used for saving job out of domain object. Just like
virErrorPreserveLast is used for errors. Let's make the naming
consistent as Restore would suggest different semantics.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_domainjob.c | 14 --
src/qemu/qemu_domainjob.h | 4 ++--
The function is now called qemuMigrationAnyConnectionClosed to make it
clear it is supposed to handle broken connection during migration. It
will soon be used on both sides of migration so the "Src" part was changed
to "Any" to avoid renaming the function twice in a row.
The original *Cleanup
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c| 8 ++--
src/qemu/qemu_monitor.h | 1 +
src/qemu/qemu_monitor_json.c | 2 ++
3 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index e1c67c51ec..30c8dbd954
None of the callers now uses the slirp fd passing feature, so it can be
removed.
At this point even the VIR_DEBUG doesn't make sense as it would only log
the pointer of 'props'.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_hotplug.c | 6 ++
src/qemu/qemu_monitor.c | 23
No need to ask the callers to call this extra function.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_extdevice.c | 9 -
src/qemu/qemu_hotplug.c | 3 +--
src/qemu/qemu_slirp.c | 5 -
src/qemu/qemu_slirp.h | 4
4 files changed, 5 insertions(+), 16 deletions(-)
diff
Signed-off-by: Peter Krempa
---
src/qemu/qemu_hotplug.c | 29 ++---
1 file changed, 2 insertions(+), 27 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 9c6f9e673c..c3891ddca7 100644
--- a/src/qemu/qemu_hotplug.c
+++
Signed-off-by: Peter Krempa
---
src/qemu/qemu_command.c | 20 +---
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 0b527784c5..d30c0de748 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@
When reconnecting to an active domains we need to use a different job
structure than the one referenced from the VM object.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 11 ++-
src/qemu/qemu_migration.h | 3 ++-
2 files changed, 8 insertions(+), 6 deletions(-)
diff
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_process.c | 13 +
1 file changed, 13 insertions(+)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index b0b00eb0a2..1925559fad 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -3445,6 +3445,9 @@
To prepare the code for handling incoming migration too.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 72 +--
1 file changed, 39 insertions(+), 33 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index
Both qemuMigrationJobSetPhase and qemuMigrationJobStartPhase were doing
the same thing, which made little sense. Let's follow the difference
between qemuDomainObjSetJobPhase and qemuDomainObjStartJobPhase and
change job owner only in qemuMigrationJobStartPhase.
Signed-off-by: Jiri Denemark
---
This flag can be used to restart post-copy migration once it failed
because of a broken connection.
Signed-off-by: Jiri Denemark
---
include/libvirt/libvirt-domain.h | 5 +
src/libvirt-domain.c | 6 ++
2 files changed, 11 insertions(+)
diff --git
All callers now pass NULL/0 as arguments for vhostfd passing so we can
remove all the associated code.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_hotplug.c | 3 +--
src/qemu/qemu_monitor.c | 14 ++
src/qemu/qemu_monitor.h | 1 -
3 files changed, 3 insertions(+), 15 deletions(-)
So far migration could only be completed while a migration API was
running and waiting for the migration to finish. In case such API could
not be called (the connection that initiated the migration is broken)
the migration would just be aborted or left in a "don't know what to do"
state. But this
Populate the 'slirpfd' qemuFDPass structure inside the private data for
passing the fd to qemu rather than using out-of-band variables.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_command.c | 27 +--
src/qemu/qemu_command.h | 3 +--
src/qemu/qemu_hotplug.c | 9
All callers pass NULL/0.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_command.c | 9 -
src/qemu/qemu_command.h | 2 --
src/qemu/qemu_hotplug.c | 1 -
3 files changed, 12 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index a3b4b8c412..92b91b0a52 100644
---
To keep all cookie handling (parsing and formatting) in the same
function.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 22 --
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index
Migration is a job which takes some time and if it succeeds, there's
nothing to call another migration on. If a migration fails, it might
make sense to rerun it with different arguments, but this would only be
done once the first migration fails rather than while it is still
running.
If this was
Into a new qemuMigrationCheckPhase helper, which can be reused in other
places.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 19 +++
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index
Signed-off-by: Peter Krempa
---
src/qemu/qemu_slirp.c | 9 -
src/qemu/qemu_slirp.h | 2 --
2 files changed, 11 deletions(-)
diff --git a/src/qemu/qemu_slirp.c b/src/qemu/qemu_slirp.c
index b62934f292..618947b6c1 100644
--- a/src/qemu/qemu_slirp.c
+++ b/src/qemu/qemu_slirp.c
@@ -188,15
The 'driver' can be taken from the private data of 'vm' and 'slirp' can
be taken from private data of 'net', both of which we need anyways.
Additionally by checking whether slirp needs to be started inside the
function we don't need to do this logic in the callers.
Signed-off-by: Peter Krempa
Since we keep the migration job active when post-copy migration fails,
we need to restore it when reconnecting to running domains.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_process.c | 128 ++--
1 file changed, 96 insertions(+), 32 deletions(-)
diff
By separating it into a dedicated qemuMigrationDstComplete function
which can be later called in other places.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 99 ++-
src/qemu/qemu_migration.h | 6 +++
2 files changed, 63 insertions(+), 42
Signed-off-by: Peter Krempa
---
src/qemu/qemu_command.c | 11 ---
src/qemu/qemu_command.h | 2 --
src/qemu/qemu_hotplug.c | 1 -
3 files changed, 14 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index d30c0de748..d23baa54a2 100644
---
We don't need 'slirpfdName' and 'slirpfd'. The 'slirp' local can be
removed too as qemuSlirpStart is safe to be called if there's nothing to
do.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_hotplug.c | 9 +
1 file changed, 1 insertion(+), 8 deletions(-)
diff --git
All callers pass NULL/0.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_hotplug.c | 3 +--
src/qemu/qemu_monitor.c | 15 ++-
src/qemu/qemu_monitor.h | 1 -
3 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index
Both callers populate the variable when qemuInterfacePrepareSlirp
returned 1. We can save the hassle in the callers by just doing it right
away.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_hotplug.c | 8 +++-
src/qemu/qemu_interface.c | 10 +-
src/qemu/qemu_interface.h | 3 +--
Use the new infrastructure which stores the fds inside 'qemuFDPass'
objects in the private data.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_command.c | 82 -
src/qemu/qemu_command.h | 1 +
src/qemu/qemu_hotplug.c | 36 ++
3 files
Signed-off-by: Peter Krempa
---
src/qemu/qemu_command.c | 25 +
1 file changed, 1 insertion(+), 24 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 78baa840a8..a3b4b8c412 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
Now all the helper variables and code are not needed.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_hotplug.c | 16
1 file changed, 16 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 2bede03e35..68e8030929 100644
--- a/src/qemu/qemu_hotplug.c
Use the new infrastructure which stores the fds inside 'qemuFDPass'
objects in the private data.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_command.c | 31 +++--
src/qemu/qemu_hotplug.c | 28 ++-
src/qemu/qemu_interface.c | 58
Remove the linebreaks inside of error messages.
Signed-off-by: Peter Krempa
---
src/qemu/qemu_interface.c | 15 ++-
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/src/qemu/qemu_interface.c b/src/qemu/qemu_interface.c
index e5f4710988..e6a26e377f 100644
---
For historical reasons we automatically enabled VIR_MIGRATE_PAUSED flag
when a migration was started for a paused domain. However, when resuming
failed post-copy migration the domain on the source host will always be
paused (as it is already running on the destination host). We must avoid
enabling
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c| 1 +
src/qemu/qemu_monitor.c | 2 +-
src/qemu/qemu_monitor.h | 1 +
src/qemu/qemu_monitor_json.c | 1 +
src/qemu/qemu_process.c | 31 ++-
5 files changed, 34 insertions(+), 2
The check can reveal a serious bug in our migration code and we should
not silently ignore it.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 58 ---
1 file changed, 36 insertions(+), 22 deletions(-)
diff --git a/src/qemu/qemu_migration.c
The comment about QEMU < 0.10.6 has been irrelevant for years.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 4
1 file changed, 4 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index a3d55c8e8b..a6c8e53ac5 100644
---
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_driver.c | 16 ++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index e268d3a478..efa6cbe14d 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -12770,7
When migration fails after it already switched to post-copy phase on the
source, but early enough that we haven't called Finish on the
destination yet, we know the vCPUs were not started on the destination
and the source host still has a complete state of the domain. Thus we
can just ignore the
When recovering from a failed post-copy migration, we need to go through
all migration phases again, but don't need to repeat all the steps in
each phase. Let's create a new set of migration phases dedicated to
post-copy recovery so that we can easily distinguish between normal and
recovery code.
By separating it into a dedicated qemuMigrationSrcComplete function
which can be later called in other places.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 70 ---
src/qemu/qemu_migration.h | 5 +++
2 files changed, 48 insertions(+), 27
Turn the final part of Begin phase formatting a domain XML for migration
into a reusable helper.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 95 ---
1 file changed, 58 insertions(+), 37 deletions(-)
diff --git a/src/qemu/qemu_migration.c
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 176 --
1 file changed, 76 insertions(+), 100 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index e892a09885..63ebc15f65 100644
--- a/src/qemu/qemu_migration.c
+++
All callers effectively pass 'net->driver.virtio.queues'. In case of the
code in 'qemu_hotplug.c' this value was set to '1' if it was 0 before.
Since 'qemuBuildNicDevProps' only uses it if it's greater than 1 we can
remove all the extra complexity.
Signed-off-by: Peter Krempa
---
Signed-off-by: Jiri Denemark
---
docs/manpages/virsh.rst | 8 +++-
tools/virsh-domain.c| 16 +++-
2 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/docs/manpages/virsh.rst b/docs/manpages/virsh.rst
index e36d64c164..1bb9044e0a 100644
---
We want to prevent our error path that can potentially kill the domain
on the destination host from overwriting an error reported earlier, but
we were only doing so in one specific path when starting vCPUs fails.
Let's do it in all paths.
Signed-off-by: Jiri Denemark
---
Refactors qemuMigrationDstFinish by moving some parts to a dedicated
function for easier introduction of postcopy resume code without
duplicating common parts of the Finish phase. The goal is to have the
following call graph:
- qemuMigrationDstFinish
- qemuMigrationDstFinishOffline
Most of the code in "endjob" label is executed only on failure. Let's
duplicate the rest so that the label can be used only in error path
making the success path easier to follow and refactor.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 45
Moves most of the code from qemuMigrationDstPrepareAny to a new
qemuMigrationDstPrepareFresh so that qemuMigrationDstPrepareAny can be
shared with post-copy resume.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 165 --
1 file changed, 103
This series implements a new VIR_MIGRATE_POSTCOPY_RESUME flag (virsh
migrate --resume) for recovering from a failed post-copy migration.
You can also fetch the series from my gitlab fork:
git fetch https://gitlab.com/jirkade/libvirt.git post-copy-recovery
Jiri Denemark (80):
qemu: Add
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index c0ab59f688..c1a60c90ef 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_driver.c | 43 +---
src/qemu/qemu_monitor.c | 9
src/qemu/qemu_monitor.h | 3 +++
src/qemu/qemu_monitor_json.c | 22 ++
src/qemu/qemu_monitor_json.h | 3 +++
5 files
Let's call it "error" so that it's clear the label is only used in
failure path.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 26 +-
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 49 +--
1 file changed, 32 insertions(+), 17 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 29be797d78..8ed1c2c2b6 100644
--- a/src/qemu/qemu_migration.c
+++
Code executed only when dom != NULL can be moved before "endjob" label,
to the only place where dom is set.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 50 ++-
1 file changed, 28 insertions(+), 22 deletions(-)
diff --git
The function can now optionally return a bitmap describing the current
state of each migration capability.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_capabilities.c | 2 +-
src/qemu/qemu_migration_params.c | 2 +-
src/qemu/qemu_monitor.c | 5 +++--
src/qemu/qemu_monitor.h
We will want to update migration phase without affecting job ownership.
Either in the thread that already owns the job or from an event handler
which only changes the phase (of a job no-one owns) without assuming it.
Let's move the ownership change to a new qemuDomainObjStartJobPhase
helper and
Mostly we just need to check whether the domain is in a failed post-copy
migration that can be resumed.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 143 ++
1 file changed, 143 insertions(+)
diff --git a/src/qemu/qemu_migration.c
This command tells QEMU to start listening for an incoming post-copy
recovery connection. Just like migrate-incoming is used for starting
fresh migration on the destination host.
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_monitor.c | 12
src/qemu/qemu_monitor.h | 4
Signed-off-by: Jiri Denemark
---
src/qemu/qemu_migration.c | 44 +++
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 854dfd43c1..180a760bca 100644
--- a/src/qemu/qemu_migration.c
+++
1 - 100 of 147 matches
Mail list logo