* [PATCH v2 0/2] migration: feature removals for 11.0
@ 2026-01-15 22:55 Peter Xu
2026-01-15 22:55 ` [PATCH v2 1/2] migration: Remove zero-blocks capability Peter Xu
` (2 more replies)
0 siblings, 3 replies; 13+ messages in thread
From: Peter Xu @ 2026-01-15 22:55 UTC (permalink / raw)
To: qemu-devel
Cc: Juraj Marcin, Daniel P . Berrangé, Fabiano Rosas,
Markus Armbruster, Prasad Pandit, peterx
v2:
- Added R-bs
- Updated description for removing zero-blocks [Markus]
- Squashed the "fd: to file" test removal into the 2nd patch
- I dropped the COLO patch, I have a local patch to remove colo migration
completely, but looks like we won't do it.. Let's leave it for later but
do the rest first
This series removes two deprecated features for 11.0.
Please review, thanks.
Peter Xu (2):
migration: Remove zero-blocks capability
migration: Remove fd: support on files
docs/about/deprecated.rst | 20 -------------
docs/about/removed-features.rst | 16 +++++++++++
qapi/migration.json | 12 --------
migration/fd.c | 11 ++++---
migration/options.c | 5 ----
tests/qtest/migration/precopy-tests.c | 41 ---------------------------
6 files changed, 23 insertions(+), 82 deletions(-)
--
2.50.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH v2 1/2] migration: Remove zero-blocks capability
2026-01-15 22:55 [PATCH v2 0/2] migration: feature removals for 11.0 Peter Xu
@ 2026-01-15 22:55 ` Peter Xu
2026-01-16 8:49 ` Markus Armbruster
2026-01-15 22:55 ` [PATCH v2 2/2] migration: Remove fd: support on files Peter Xu
2026-02-17 9:29 ` [PATCH v2 0/2] migration: feature removals for 11.0 Peter Krempa
2 siblings, 1 reply; 13+ messages in thread
From: Peter Xu @ 2026-01-15 22:55 UTC (permalink / raw)
To: qemu-devel
Cc: Juraj Marcin, Daniel P . Berrangé, Fabiano Rosas,
Markus Armbruster, Prasad Pandit, peterx
It was declared deprecated since 9.2.
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Peter Xu <peterx@redhat.com>
---
docs/about/deprecated.rst | 6 ------
docs/about/removed-features.rst | 7 +++++++
qapi/migration.json | 12 ------------
migration/options.c | 5 -----
4 files changed, 7 insertions(+), 23 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index 7abb3dab59..dfb0a6eba5 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -574,9 +574,3 @@ usage of providing a file descriptor to a plain file has been
deprecated in favor of explicitly using the ``file:`` URI with the
file descriptor being passed as an ``fdset``. Refer to the ``add-fd``
command documentation for details on the ``fdset`` usage.
-
-``zero-blocks`` capability (since 9.2)
-''''''''''''''''''''''''''''''''''''''
-
-The ``zero-blocks`` capability was part of the block migration which
-doesn't exist anymore since it was removed in QEMU v9.1.
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index e81d79da47..4aae30918d 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -717,6 +717,13 @@ Block migration has been removed. For a replacement, see "QMP
invocation for live storage migration with ``blockdev-mirror`` + NBD"
in docs/interop/live-block-operations.rst.
+``migrate-set-capabilities`` ``zero-blocks`` option (removed in 11.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+The ``zero-blocks`` capability was accidentally left behind when
+block migration capability got removed in 9.1. Removed with no
+replacement.
+
``migrate-set-parameter`` ``compress-level`` option (removed in 9.1)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/qapi/migration.json b/qapi/migration.json
index 201dedd982..be6ebda5a0 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -440,13 +440,6 @@
# footprint is mlock()'d on demand or all at once. Refer to
# docs/rdma.txt for usage. Disabled by default. (since 2.0)
#
-# @zero-blocks: During storage migration encode blocks of zeroes
-# efficiently. This essentially saves 1MB of zeroes per block on
-# the wire. Enabling requires source and target VM to support
-# this feature. To enable it is sufficient to enable the
-# capability on the source VM. The feature is disabled by
-# default. (since 1.6)
-#
# @events: generate events for each migration state change (since 2.4)
#
# @auto-converge: If enabled, QEMU will automatically throttle down
@@ -531,14 +524,10 @@
#
# @unstable: Members @x-colo and @x-ignore-shared are experimental.
#
-# @deprecated: Member @zero-blocks is deprecated as being part of
-# block migration which was already removed.
-#
# Since: 1.2
##
{ 'enum': 'MigrationCapability',
'data': ['xbzrle', 'rdma-pin-all', 'auto-converge',
- { 'name': 'zero-blocks', 'features': [ 'deprecated' ] },
'events', 'postcopy-ram',
{ 'name': 'x-colo', 'features': [ 'unstable' ] },
'release-ram',
@@ -595,7 +584,6 @@
# {"state": false, "capability": "xbzrle"},
# {"state": false, "capability": "rdma-pin-all"},
# {"state": false, "capability": "auto-converge"},
-# {"state": false, "capability": "zero-blocks"},
# {"state": true, "capability": "events"},
# {"state": false, "capability": "postcopy-ram"},
# {"state": false, "capability": "x-colo"}
diff --git a/migration/options.c b/migration/options.c
index 9a5a39c886..68a4536150 100644
--- a/migration/options.c
+++ b/migration/options.c
@@ -188,7 +188,6 @@ const Property migration_properties[] = {
DEFINE_PROP_MIG_CAP("x-xbzrle", MIGRATION_CAPABILITY_XBZRLE),
DEFINE_PROP_MIG_CAP("x-rdma-pin-all", MIGRATION_CAPABILITY_RDMA_PIN_ALL),
DEFINE_PROP_MIG_CAP("x-auto-converge", MIGRATION_CAPABILITY_AUTO_CONVERGE),
- DEFINE_PROP_MIG_CAP("x-zero-blocks", MIGRATION_CAPABILITY_ZERO_BLOCKS),
DEFINE_PROP_MIG_CAP("x-events", MIGRATION_CAPABILITY_EVENTS),
DEFINE_PROP_MIG_CAP("x-postcopy-ram", MIGRATION_CAPABILITY_POSTCOPY_RAM),
DEFINE_PROP_MIG_CAP("x-postcopy-preempt",
@@ -576,10 +575,6 @@ bool migrate_caps_check(bool *old_caps, bool *new_caps, Error **errp)
ERRP_GUARD();
MigrationIncomingState *mis = migration_incoming_get_current();
- if (new_caps[MIGRATION_CAPABILITY_ZERO_BLOCKS]) {
- warn_report("zero-blocks capability is deprecated");
- }
-
#ifndef CONFIG_REPLICATION
if (new_caps[MIGRATION_CAPABILITY_X_COLO]) {
error_setg(errp, "QEMU compiled without replication module"
--
2.50.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH v2 2/2] migration: Remove fd: support on files
2026-01-15 22:55 [PATCH v2 0/2] migration: feature removals for 11.0 Peter Xu
2026-01-15 22:55 ` [PATCH v2 1/2] migration: Remove zero-blocks capability Peter Xu
@ 2026-01-15 22:55 ` Peter Xu
2026-02-17 9:29 ` [PATCH v2 0/2] migration: feature removals for 11.0 Peter Krempa
2 siblings, 0 replies; 13+ messages in thread
From: Peter Xu @ 2026-01-15 22:55 UTC (permalink / raw)
To: qemu-devel
Cc: Juraj Marcin, Daniel P . Berrangé, Fabiano Rosas,
Markus Armbruster, Prasad Pandit, peterx
This feature was deprecated in 9.1. Remove it in this release (11.0).
We also need to remove one unit test (/migration/precopy/fd/file) that
covers the fd: file migration, because it'll stop working now.
Reviewed-by: Prasad Pandit <ppandit@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Peter Xu <peterx@redhat.com>
---
docs/about/deprecated.rst | 14 ---------
docs/about/removed-features.rst | 9 ++++++
migration/fd.c | 11 ++++---
tests/qtest/migration/precopy-tests.c | 41 ---------------------------
4 files changed, 16 insertions(+), 59 deletions(-)
diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index dfb0a6eba5..a46cc6b9fd 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -560,17 +560,3 @@ If the user requests a modern x86 CPU model (i.e. not one of ``486``,
``athlon``, ``kvm32``, ``pentium``, ``pentium2``, ``pentium3``or ``qemu32``)
a warning will be displayed until a future QEMU version when such CPUs will
be rejected.
-
-Migration
----------
-
-``fd:`` URI when used for file migration (since 9.1)
-''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-The ``fd:`` URI can currently provide a file descriptor that
-references either a socket or a plain file. These are two different
-types of migration. In order to reduce ambiguity, the ``fd:`` URI
-usage of providing a file descriptor to a plain file has been
-deprecated in favor of explicitly using the ``file:`` URI with the
-file descriptor being passed as an ``fdset``. Refer to the ``add-fd``
-command documentation for details on the ``fdset`` usage.
diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst
index 4aae30918d..ebb46bb3b1 100644
--- a/docs/about/removed-features.rst
+++ b/docs/about/removed-features.rst
@@ -710,6 +710,15 @@ Use blockdev-mirror with NBD instead. See "QMP invocation for live
storage migration with ``blockdev-mirror`` + NBD" in
docs/interop/live-block-operations.rst for a detailed explanation.
+``migrate`` command with file-based ``fd:`` URI (removed in 11.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+In order to reduce ambiguity, the ``fd:`` URI usage of providing a
+file descriptor to a plain file has been removed in favor of
+explicitly using the ``file:`` URI with the file descriptor being
+passed as an ``fdset``. Refer to the ``add-fd`` command documentation
+for details on the ``fdset`` usage.
+
``migrate-set-capabilities`` ``block`` option (removed in 9.1)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
diff --git a/migration/fd.c b/migration/fd.c
index 9bf9be6acb..fdeece2101 100644
--- a/migration/fd.c
+++ b/migration/fd.c
@@ -24,6 +24,7 @@
#include "qemu/sockets.h"
#include "io/channel-util.h"
#include "trace.h"
+#include "qapi/error.h"
static bool fd_is_pipe(int fd)
{
@@ -58,8 +59,9 @@ void fd_start_outgoing_migration(MigrationState *s, const char *fdname, Error **
}
if (!migration_fd_valid(fd)) {
- warn_report("fd: migration to a file is deprecated."
- " Use file: instead.");
+ error_setg(errp, "fd: migration to a file is not supported."
+ " Use file: instead.");
+ return;
}
trace_migration_fd_outgoing(fd);
@@ -92,8 +94,9 @@ void fd_start_incoming_migration(const char *fdname, Error **errp)
}
if (!migration_fd_valid(fd)) {
- warn_report("fd: migration to a file is deprecated."
- " Use file: instead.");
+ error_setg(errp, "fd: migration to a file is not supported."
+ " Use file: instead.");
+ return;
}
trace_migration_fd_incoming(fd);
diff --git a/tests/qtest/migration/precopy-tests.c b/tests/qtest/migration/precopy-tests.c
index aca7ed51ef..3af8ec2e33 100644
--- a/tests/qtest/migration/precopy-tests.c
+++ b/tests/qtest/migration/precopy-tests.c
@@ -289,45 +289,6 @@ static void test_precopy_fd_socket(char *name, MigrateCommon *args)
test_precopy_common(args);
}
-
-static void *migrate_hook_start_precopy_fd_file(QTestState *from,
- QTestState *to)
-{
- g_autofree char *file = g_strdup_printf("%s/%s", tmpfs, FILE_TEST_FILENAME);
- int src_flags = O_CREAT | O_RDWR;
- int dst_flags = O_CREAT | O_RDWR;
- int fds[2];
-
- fds[0] = open(file, src_flags, 0660);
- assert(fds[0] != -1);
-
- fds[1] = open(file, dst_flags, 0660);
- assert(fds[1] != -1);
-
-
- qtest_qmp_fds_assert_success(to, &fds[0], 1,
- "{ 'execute': 'getfd',"
- " 'arguments': { 'fdname': 'fd-mig' }}");
-
- qtest_qmp_fds_assert_success(from, &fds[1], 1,
- "{ 'execute': 'getfd',"
- " 'arguments': { 'fdname': 'fd-mig' }}");
-
- close(fds[0]);
- close(fds[1]);
-
- return NULL;
-}
-
-static void test_precopy_fd_file(char *name, MigrateCommon *args)
-{
- args->listen_uri = "defer";
- args->connect_uri = "fd:fd-mig";
- args->start_hook = migrate_hook_start_precopy_fd_file;
- args->end_hook = migrate_hook_end_fd;
-
- test_file_common(args, true);
-}
#endif /* _WIN32 */
/*
@@ -1255,8 +1216,6 @@ void migration_test_add_precopy(MigrationTestEnv *env)
#ifndef _WIN32
migration_test_add("/migration/precopy/fd/tcp",
test_precopy_fd_socket);
- migration_test_add("/migration/precopy/fd/file",
- test_precopy_fd_file);
#endif
/*
--
2.50.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v2 1/2] migration: Remove zero-blocks capability
2026-01-15 22:55 ` [PATCH v2 1/2] migration: Remove zero-blocks capability Peter Xu
@ 2026-01-16 8:49 ` Markus Armbruster
0 siblings, 0 replies; 13+ messages in thread
From: Markus Armbruster @ 2026-01-16 8:49 UTC (permalink / raw)
To: Peter Xu
Cc: qemu-devel, Juraj Marcin, Daniel P . Berrangé, Fabiano Rosas,
Prasad Pandit
Peter Xu <peterx@redhat.com> writes:
> It was declared deprecated since 9.2.
>
> Reviewed-by: Fabiano Rosas <farosas@suse.de>
> Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 0/2] migration: feature removals for 11.0
2026-01-15 22:55 [PATCH v2 0/2] migration: feature removals for 11.0 Peter Xu
2026-01-15 22:55 ` [PATCH v2 1/2] migration: Remove zero-blocks capability Peter Xu
2026-01-15 22:55 ` [PATCH v2 2/2] migration: Remove fd: support on files Peter Xu
@ 2026-02-17 9:29 ` Peter Krempa
2026-02-17 9:47 ` Daniel P. Berrangé
2026-02-17 11:25 ` Markus Armbruster
2 siblings, 2 replies; 13+ messages in thread
From: Peter Krempa @ 2026-02-17 9:29 UTC (permalink / raw)
To: Peter Xu
Cc: qemu-devel, Juraj Marcin, Daniel P . Berrangé, Fabiano Rosas,
Markus Armbruster, Prasad Pandit
On Thu, Jan 15, 2026 at 17:55:01 -0500, Peter Xu wrote:
> v2:
> - Added R-bs
> - Updated description for removing zero-blocks [Markus]
> - Squashed the "fd: to file" test removal into the 2nd patch
> - I dropped the COLO patch, I have a local patch to remove colo migration
> completely, but looks like we won't do it.. Let's leave it for later but
> do the rest first
>
> This series removes two deprecated features for 11.0.
>
> Please review, thanks.
>
> Peter Xu (2):
> migration: Remove zero-blocks capability
> migration: Remove fd: support on files
>
> docs/about/deprecated.rst | 20 -------------
Note that per the 'MAINTAINERS' file, changes to any deprecations ought
to be CC'd to the libvirt list for visibility.
In this case we've forgotten about the deprecation and didn't fix it
before the qemu cahnge was pushed. I'll send out patches soon, but keep
in mind to *always* CC the libvirt list with deprecations.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 0/2] migration: feature removals for 11.0
2026-02-17 9:29 ` [PATCH v2 0/2] migration: feature removals for 11.0 Peter Krempa
@ 2026-02-17 9:47 ` Daniel P. Berrangé
2026-02-17 9:55 ` Peter Krempa
2026-02-17 11:25 ` Markus Armbruster
1 sibling, 1 reply; 13+ messages in thread
From: Daniel P. Berrangé @ 2026-02-17 9:47 UTC (permalink / raw)
To: Peter Krempa
Cc: Peter Xu, qemu-devel, Juraj Marcin, Fabiano Rosas,
Markus Armbruster, Prasad Pandit
On Tue, Feb 17, 2026 at 10:29:38AM +0100, Peter Krempa wrote:
> On Thu, Jan 15, 2026 at 17:55:01 -0500, Peter Xu wrote:
> > v2:
> > - Added R-bs
> > - Updated description for removing zero-blocks [Markus]
> > - Squashed the "fd: to file" test removal into the 2nd patch
> > - I dropped the COLO patch, I have a local patch to remove colo migration
> > completely, but looks like we won't do it.. Let's leave it for later but
> > do the rest first
> >
> > This series removes two deprecated features for 11.0.
> >
> > Please review, thanks.
> >
> > Peter Xu (2):
> > migration: Remove zero-blocks capability
> > migration: Remove fd: support on files
> >
> > docs/about/deprecated.rst | 20 -------------
>
> Note that per the 'MAINTAINERS' file, changes to any deprecations ought
> to be CC'd to the libvirt list for visibility.
>
> In this case we've forgotten about the deprecation and didn't fix it
> before the qemu cahnge was pushed. I'll send out patches soon, but keep
> in mind to *always* CC the libvirt list with deprecations.
I'm suprised to see libvirt broken at all here.
AFAIR, the 'fd:' protocol inadvertantly gained support for targetting
plain files, which the deprecation aimed to then revert (remove). The
actual removal though seems to have targetted anything which is not a
socket, which includes pipes, which libvirt was using.
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 0/2] migration: feature removals for 11.0
2026-02-17 9:47 ` Daniel P. Berrangé
@ 2026-02-17 9:55 ` Peter Krempa
2026-02-17 10:08 ` Daniel P. Berrangé
0 siblings, 1 reply; 13+ messages in thread
From: Peter Krempa @ 2026-02-17 9:55 UTC (permalink / raw)
To: Daniel P. Berrangé
Cc: Peter Xu, qemu-devel, Juraj Marcin, Fabiano Rosas,
Markus Armbruster, Prasad Pandit
On Tue, Feb 17, 2026 at 09:47:08 +0000, Daniel P. Berrangé wrote:
> On Tue, Feb 17, 2026 at 10:29:38AM +0100, Peter Krempa wrote:
> > On Thu, Jan 15, 2026 at 17:55:01 -0500, Peter Xu wrote:
> > > v2:
> > > - Added R-bs
> > > - Updated description for removing zero-blocks [Markus]
> > > - Squashed the "fd: to file" test removal into the 2nd patch
> > > - I dropped the COLO patch, I have a local patch to remove colo migration
> > > completely, but looks like we won't do it.. Let's leave it for later but
> > > do the rest first
> > >
> > > This series removes two deprecated features for 11.0.
> > >
> > > Please review, thanks.
> > >
> > > Peter Xu (2):
> > > migration: Remove zero-blocks capability
> > > migration: Remove fd: support on files
> > >
> > > docs/about/deprecated.rst | 20 -------------
> >
> > Note that per the 'MAINTAINERS' file, changes to any deprecations ought
> > to be CC'd to the libvirt list for visibility.
> >
> > In this case we've forgotten about the deprecation and didn't fix it
> > before the qemu cahnge was pushed. I'll send out patches soon, but keep
> > in mind to *always* CC the libvirt list with deprecations.
>
> I'm suprised to see libvirt broken at all here.
>
> AFAIR, the 'fd:' protocol inadvertantly gained support for targetting
> plain files, which the deprecation aimed to then revert (remove). The
> actual removal though seems to have targetted anything which is not a
> socket, which includes pipes, which libvirt was using.
Libvirt is using pipes for *most* cases, but not all. There is one code
path (virsh restore without compression or cache bypass, when residing
on an actual filesystem (not a root squashed NFS)) which still can pass
a file FD to the migration code as 'fd:'. In all other cases we do pass
in a pipe in one way or another (via the compression program,
virFileWrapper (mandatorily used on equivalents of 'virsh save', or the
helper process used to access root-squashed NFS). The code is not easy
to follow because there are numerous layers where the wrapping of the
file into a pipe can happen, one of which is right next to the migration
code. I'll soon post patches.
Anyways, my point was that notifications about deprecated and removed
features ought to be CCd to the libvirt list regardless of perceived
impact on libvirt.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 0/2] migration: feature removals for 11.0
2026-02-17 9:55 ` Peter Krempa
@ 2026-02-17 10:08 ` Daniel P. Berrangé
0 siblings, 0 replies; 13+ messages in thread
From: Daniel P. Berrangé @ 2026-02-17 10:08 UTC (permalink / raw)
To: Peter Krempa
Cc: Peter Xu, qemu-devel, Juraj Marcin, Fabiano Rosas,
Markus Armbruster, Prasad Pandit
On Tue, Feb 17, 2026 at 10:55:13AM +0100, Peter Krempa wrote:
> On Tue, Feb 17, 2026 at 09:47:08 +0000, Daniel P. Berrangé wrote:
> > On Tue, Feb 17, 2026 at 10:29:38AM +0100, Peter Krempa wrote:
> > > On Thu, Jan 15, 2026 at 17:55:01 -0500, Peter Xu wrote:
> > > > v2:
> > > > - Added R-bs
> > > > - Updated description for removing zero-blocks [Markus]
> > > > - Squashed the "fd: to file" test removal into the 2nd patch
> > > > - I dropped the COLO patch, I have a local patch to remove colo migration
> > > > completely, but looks like we won't do it.. Let's leave it for later but
> > > > do the rest first
> > > >
> > > > This series removes two deprecated features for 11.0.
> > > >
> > > > Please review, thanks.
> > > >
> > > > Peter Xu (2):
> > > > migration: Remove zero-blocks capability
> > > > migration: Remove fd: support on files
> > > >
> > > > docs/about/deprecated.rst | 20 -------------
> > >
> > > Note that per the 'MAINTAINERS' file, changes to any deprecations ought
> > > to be CC'd to the libvirt list for visibility.
> > >
> > > In this case we've forgotten about the deprecation and didn't fix it
> > > before the qemu cahnge was pushed. I'll send out patches soon, but keep
> > > in mind to *always* CC the libvirt list with deprecations.
> >
> > I'm suprised to see libvirt broken at all here.
> >
> > AFAIR, the 'fd:' protocol inadvertantly gained support for targetting
> > plain files, which the deprecation aimed to then revert (remove). The
> > actual removal though seems to have targetted anything which is not a
> > socket, which includes pipes, which libvirt was using.
>
> Libvirt is using pipes for *most* cases, but not all. There is one code
> path (virsh restore without compression or cache bypass, when residing
> on an actual filesystem (not a root squashed NFS)) which still can pass
> a file FD to the migration code as 'fd:'. In all other cases we do pass
> in a pipe in one way or another (via the compression program,
> virFileWrapper (mandatorily used on equivalents of 'virsh save', or the
> helper process used to access root-squashed NFS). The code is not easy
> to follow because there are numerous layers where the wrapping of the
> file into a pipe can happen, one of which is right next to the migration
> code. I'll soon post patches.
NB if there is any scenario where we passed a plain file to QEMU, that
would be a bug in libvirt. The iohelper was intended to be used in
*all* cases where we had plain files, so that we can ensure poll()
works sanely for QEMU, and that we don't end up with an unkillable
QEMU due to a syscall stuck in kernel on an uninterruptible sleep
on dead storage.
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 0/2] migration: feature removals for 11.0
2026-02-17 9:29 ` [PATCH v2 0/2] migration: feature removals for 11.0 Peter Krempa
2026-02-17 9:47 ` Daniel P. Berrangé
@ 2026-02-17 11:25 ` Markus Armbruster
2026-02-18 21:21 ` Peter Xu
1 sibling, 1 reply; 13+ messages in thread
From: Markus Armbruster @ 2026-02-17 11:25 UTC (permalink / raw)
To: Peter Krempa
Cc: Peter Xu, qemu-devel, Juraj Marcin, Daniel P . Berrangé,
Fabiano Rosas, Prasad Pandit
Peter Krempa <pkrempa@redhat.com> writes:
> On Thu, Jan 15, 2026 at 17:55:01 -0500, Peter Xu wrote:
>> v2:
>> - Added R-bs
>> - Updated description for removing zero-blocks [Markus]
>> - Squashed the "fd: to file" test removal into the 2nd patch
>> - I dropped the COLO patch, I have a local patch to remove colo migration
>> completely, but looks like we won't do it.. Let's leave it for later but
>> do the rest first
>>
>> This series removes two deprecated features for 11.0.
>>
>> Please review, thanks.
>>
>> Peter Xu (2):
>> migration: Remove zero-blocks capability
>> migration: Remove fd: support on files
>>
>> docs/about/deprecated.rst | 20 -------------
>
> Note that per the 'MAINTAINERS' file, changes to any deprecations ought
> to be CC'd to the libvirt list for visibility.
>
> In this case we've forgotten about the deprecation and didn't fix it
> before the qemu cahnge was pushed. I'll send out patches soon, but keep
> in mind to *always* CC the libvirt list with deprecations.
Review fail (mine).
Should we try to make checkpatch.pl catch it? So far, it doesn't check
cc: at all.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 0/2] migration: feature removals for 11.0
2026-02-17 11:25 ` Markus Armbruster
@ 2026-02-18 21:21 ` Peter Xu
2026-02-19 7:23 ` Markus Armbruster
0 siblings, 1 reply; 13+ messages in thread
From: Peter Xu @ 2026-02-18 21:21 UTC (permalink / raw)
To: Markus Armbruster, Peter Krempa
Cc: Peter Krempa, qemu-devel, Juraj Marcin, Daniel P . Berrangé,
Fabiano Rosas, Prasad Pandit
On Tue, Feb 17, 2026 at 12:25:20PM +0100, Markus Armbruster wrote:
> Peter Krempa <pkrempa@redhat.com> writes:
>
> > On Thu, Jan 15, 2026 at 17:55:01 -0500, Peter Xu wrote:
> >> v2:
> >> - Added R-bs
> >> - Updated description for removing zero-blocks [Markus]
> >> - Squashed the "fd: to file" test removal into the 2nd patch
> >> - I dropped the COLO patch, I have a local patch to remove colo migration
> >> completely, but looks like we won't do it.. Let's leave it for later but
> >> do the rest first
> >>
> >> This series removes two deprecated features for 11.0.
> >>
> >> Please review, thanks.
> >>
> >> Peter Xu (2):
> >> migration: Remove zero-blocks capability
> >> migration: Remove fd: support on files
> >>
> >> docs/about/deprecated.rst | 20 -------------
> >
> > Note that per the 'MAINTAINERS' file, changes to any deprecations ought
> > to be CC'd to the libvirt list for visibility.
> >
> > In this case we've forgotten about the deprecation and didn't fix it
> > before the qemu cahnge was pushed. I'll send out patches soon, but keep
> > in mind to *always* CC the libvirt list with deprecations.
>
> Review fail (mine).
I confess I didn't notice this hard requirement when posting deprecation
patches. I definitely kept in mind of libvirt all the time, it's just that
for this one since it used to be discussed well I didn't expect this to
cause any surprise.
>
> Should we try to make checkpatch.pl catch it? So far, it doesn't check
> cc: at all.
I don't know if that'll work because logically we can also copy anyone or
lists only when sending patches (e.g. with "git send-email --cc")..
For now, I'll just remember to always copy libvirt list on touching
deprecation file. My apologize if it caused any unwanted surprise.
--
Peter Xu
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 0/2] migration: feature removals for 11.0
2026-02-18 21:21 ` Peter Xu
@ 2026-02-19 7:23 ` Markus Armbruster
2026-02-23 10:00 ` Daniel P. Berrangé
0 siblings, 1 reply; 13+ messages in thread
From: Markus Armbruster @ 2026-02-19 7:23 UTC (permalink / raw)
To: Peter Xu
Cc: Peter Krempa, qemu-devel, Juraj Marcin, Daniel P . Berrangé,
Fabiano Rosas, Prasad Pandit
Peter Xu <peterx@redhat.com> writes:
> On Tue, Feb 17, 2026 at 12:25:20PM +0100, Markus Armbruster wrote:
>> Peter Krempa <pkrempa@redhat.com> writes:
>>
>> > On Thu, Jan 15, 2026 at 17:55:01 -0500, Peter Xu wrote:
>> >> v2:
>> >> - Added R-bs
>> >> - Updated description for removing zero-blocks [Markus]
>> >> - Squashed the "fd: to file" test removal into the 2nd patch
>> >> - I dropped the COLO patch, I have a local patch to remove colo migration
>> >> completely, but looks like we won't do it.. Let's leave it for later but
>> >> do the rest first
>> >>
>> >> This series removes two deprecated features for 11.0.
>> >>
>> >> Please review, thanks.
>> >>
>> >> Peter Xu (2):
>> >> migration: Remove zero-blocks capability
>> >> migration: Remove fd: support on files
>> >>
>> >> docs/about/deprecated.rst | 20 -------------
>> >
>> > Note that per the 'MAINTAINERS' file, changes to any deprecations ought
>> > to be CC'd to the libvirt list for visibility.
>> >
>> > In this case we've forgotten about the deprecation and didn't fix it
>> > before the qemu cahnge was pushed. I'll send out patches soon, but keep
>> > in mind to *always* CC the libvirt list with deprecations.
>>
>> Review fail (mine).
>
> I confess I didn't notice this hard requirement when posting deprecation
> patches. I definitely kept in mind of libvirt all the time, it's just that
> for this one since it used to be discussed well I didn't expect this to
> cause any surprise.
>
>>
>> Should we try to make checkpatch.pl catch it? So far, it doesn't check
>> cc: at all.
>
> I don't know if that'll work because logically we can also copy anyone or
> lists only when sending patches (e.g. with "git send-email --cc")..
For what it's worth, scripts/get_maintainer.pl would have told us to cc:
libvirt with this line:
devel@lists.libvirt.org (open list:Incompatible changes)
> For now, I'll just remember to always copy libvirt list on touching
> deprecation file. My apologize if it caused any unwanted surprise.
We cannot and do not expect a patch submitter to know and remember
everything. We rely on tooling and review to catch misses in time.
Doesn't always work, because nothing and nobody's perfect.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 0/2] migration: feature removals for 11.0
2026-02-19 7:23 ` Markus Armbruster
@ 2026-02-23 10:00 ` Daniel P. Berrangé
2026-02-23 15:56 ` Peter Xu
0 siblings, 1 reply; 13+ messages in thread
From: Daniel P. Berrangé @ 2026-02-23 10:00 UTC (permalink / raw)
To: Markus Armbruster
Cc: Peter Xu, Peter Krempa, qemu-devel, Juraj Marcin, Fabiano Rosas,
Prasad Pandit
On Thu, Feb 19, 2026 at 08:23:06AM +0100, Markus Armbruster wrote:
> Peter Xu <peterx@redhat.com> writes:
> > I don't know if that'll work because logically we can also copy anyone or
> > lists only when sending patches (e.g. with "git send-email --cc")..
>
> For what it's worth, scripts/get_maintainer.pl would have told us to cc:
> libvirt with this line:
>
> devel@lists.libvirt.org (open list:Incompatible changes)
>
> > For now, I'll just remember to always copy libvirt list on touching
> > deprecation file. My apologize if it caused any unwanted surprise.
>
> We cannot and do not expect a patch submitter to know and remember
> everything. We rely on tooling and review to catch misses in time.
> Doesn't always work, because nothing and nobody's perfect.
If any contributor is sending patches to QEMU, please don't use the raw
'git send-email' command directly. Instead use 'git-publish' which wraps
'send-email' with logic that automatically consults get_maintainer.pl.
This means you'll always CC the required people by default, and have
to conciously make an effort to drop them from the CC list.
With regards,
Daniel
--
|: https://berrange.com ~~ https://hachyderm.io/@berrange :|
|: https://libvirt.org ~~ https://entangle-photo.org :|
|: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2 0/2] migration: feature removals for 11.0
2026-02-23 10:00 ` Daniel P. Berrangé
@ 2026-02-23 15:56 ` Peter Xu
0 siblings, 0 replies; 13+ messages in thread
From: Peter Xu @ 2026-02-23 15:56 UTC (permalink / raw)
To: Daniel P. Berrangé
Cc: Markus Armbruster, Peter Krempa, qemu-devel, Juraj Marcin,
Fabiano Rosas, Prasad Pandit
On Mon, Feb 23, 2026 at 10:00:12AM +0000, Daniel P. Berrangé wrote:
> On Thu, Feb 19, 2026 at 08:23:06AM +0100, Markus Armbruster wrote:
> > Peter Xu <peterx@redhat.com> writes:
> > > I don't know if that'll work because logically we can also copy anyone or
> > > lists only when sending patches (e.g. with "git send-email --cc")..
> >
> > For what it's worth, scripts/get_maintainer.pl would have told us to cc:
> > libvirt with this line:
> >
> > devel@lists.libvirt.org (open list:Incompatible changes)
> >
> > > For now, I'll just remember to always copy libvirt list on touching
> > > deprecation file. My apologize if it caused any unwanted surprise.
> >
> > We cannot and do not expect a patch submitter to know and remember
> > everything. We rely on tooling and review to catch misses in time.
> > Doesn't always work, because nothing and nobody's perfect.
>
> If any contributor is sending patches to QEMU, please don't use the raw
> 'git send-email' command directly. Instead use 'git-publish' which wraps
> 'send-email' with logic that automatically consults get_maintainer.pl.
>
> This means you'll always CC the required people by default, and have
> to conciously make an effort to drop them from the CC list.
I am using git-publish, I found that it's because I have my own profile
setup so it didn't use the default profile provided in .gitpublish, which
offered cccmd=.
Now I've added that into my setup too, thanks for the suggestion.
--
Peter Xu
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2026-02-23 15:57 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-15 22:55 [PATCH v2 0/2] migration: feature removals for 11.0 Peter Xu
2026-01-15 22:55 ` [PATCH v2 1/2] migration: Remove zero-blocks capability Peter Xu
2026-01-16 8:49 ` Markus Armbruster
2026-01-15 22:55 ` [PATCH v2 2/2] migration: Remove fd: support on files Peter Xu
2026-02-17 9:29 ` [PATCH v2 0/2] migration: feature removals for 11.0 Peter Krempa
2026-02-17 9:47 ` Daniel P. Berrangé
2026-02-17 9:55 ` Peter Krempa
2026-02-17 10:08 ` Daniel P. Berrangé
2026-02-17 11:25 ` Markus Armbruster
2026-02-18 21:21 ` Peter Xu
2026-02-19 7:23 ` Markus Armbruster
2026-02-23 10:00 ` Daniel P. Berrangé
2026-02-23 15:56 ` Peter Xu
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.