All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/14] deprecations: remove many old deprecations
@ 2021-02-24 13:11 Daniel P. Berrangé
  2021-02-24 13:11 ` [PATCH 01/14] ui, monitor: remove deprecated VNC ACL option and HMP commands Daniel P. Berrangé
                   ` (16 more replies)
  0 siblings, 17 replies; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

The following features have been deprecated for well over the 2
release cycle we promise

  ``-usbdevice`` (since 2.10.0)
  ``-drive file=3Djson:{...{'driver':'file'}}`` (since 3.0)
  ``-vnc acl`` (since 4.0.0)
  ``-mon ...,control=3Dreadline,pretty=3Don|off`` (since 4.1)
  ``migrate_set_downtime`` and ``migrate_set_speed`` (since 2.8.0)
  ``query-named-block-nodes`` result ``encryption_key_missing`` (since 2.10.0)
  ``query-block`` result ``inserted.encryption_key_missing`` (since 2.10.0)
  ``migrate-set-cache-size`` and ``query-migrate-cache-size`` (since 2.11.0)
  ``query-named-block-nodes`` and ``query-block`` result dirty-bitmaps[i].sta=
tus (ince 4.0)
  ``query-cpus`` (since 2.12.0)
  ``query-cpus-fast`` ``arch`` output member (since 3.0.0)
  ``query-events`` (since 4.0)
  chardev client socket with ``wait`` option (since 4.0)
  ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, ``acl_remove`` (s=
ince 4.0.0)
  ``ide-drive`` (since 4.2)
  ``scsi-disk`` (since 4.2)

AFAICT, libvirt has ceased to use all of these too.

There are many more similarly old deprecations not (yet) tackled.

Daniel P. Berrang=C3=A9 (14):
  ui, monitor: remove deprecated VNC ACL option and HMP commands
  monitor: raise error when 'pretty' option is used with HMP
  monitor: remove 'query-events' QMP command
  softmmu: remove '-usbdevice' command line option
  migrate: remove QMP/HMP commands for speed, downtime and cache size
  machine: remove 'query-cpus' QMP command
  machine: remove 'arch' field from 'query-cpus-fast' QMP command
  chardev: reject use of 'wait' flag for socket client chardevs
  hw/ide: remove 'ide-drive' device
  hw/scsi: remove 'scsi-disk' device
  block: remove 'encryption_key_missing' flag from QAPI
  block: remove dirty bitmaps 'status' field
  block: remove 'dirty-bitmaps' field from 'BlockInfo' struct
  block: remove support for using "file" driver with block/char devices

 block/dirty-bitmap.c                       |  38 ---
 block/file-posix.c                         |  17 +-
 block/qapi.c                               |   6 -
 chardev/char-socket.c                      |  12 +-
 docs/devel/migration.rst                   |   2 +-
 docs/qdev-device-use.txt                   |   2 +-
 docs/rdma.txt                              |   2 +-
 docs/system/deprecated.rst                 | 117 -------
 docs/system/removed-features.rst           | 123 +++++++
 docs/xbzrle.txt                            |   5 -
 hmp-commands-info.hx                       |  13 -
 hmp-commands.hx                            | 121 -------
 hw/core/machine-hmp-cmds.c                 |   8 +-
 hw/core/machine-qmp-cmds.c                 | 120 -------
 hw/i386/pc.c                               |   2 -
 hw/ide/qdev.c                              |  38 ---
 hw/ppc/mac_newworld.c                      |  13 -
 hw/ppc/mac_oldworld.c                      |  13 -
 hw/scsi/scsi-disk.c                        |  62 ----
 hw/sparc64/sun4u.c                         |  15 -
 include/block/dirty-bitmap.h               |   1 -
 include/monitor/hmp.h                      |   4 -
 migration/migration.c                      |  45 ---
 migration/ram.c                            |   2 +-
 monitor/hmp-cmds.c                         |  34 --
 monitor/misc.c                             | 187 ----------
 monitor/monitor.c                          |   4 +-
 monitor/qmp-cmds-control.c                 |  24 --
 qapi/block-core.json                       |  64 +---
 qapi/control.json                          |  45 ---
 qapi/machine.json                          | 181 +---------
 qapi/migration.json                        |  98 ------
 qemu-options.hx                            |   5 +-
 scripts/device-crash-test                  |   2 -
 softmmu/vl.c                               |  43 ---
 tests/acceptance/pc_cpu_hotplug_props.py   |   2 +-
 tests/acceptance/x86_cpu_model_versions.py |   2 +-
 tests/migration/guestperf/engine.py        |  18 +-
 tests/qemu-iotests/051                     |   4 -
 tests/qemu-iotests/051.pc.out              |  20 --
 tests/qemu-iotests/124                     |   4 -
 tests/qemu-iotests/181                     |   2 +-
 tests/qemu-iotests/184.out                 |   6 +-
 tests/qemu-iotests/191.out                 |  48 +--
 tests/qemu-iotests/194                     |   4 +-
 tests/qemu-iotests/194.out                 |   4 +-
 tests/qemu-iotests/226.out                 |  10 +-
 tests/qemu-iotests/236                     |   2 +-
 tests/qemu-iotests/236.out                 |  42 +--
 tests/qemu-iotests/246                     |   3 +-
 tests/qemu-iotests/246.out                 |  66 ++--
 tests/qemu-iotests/254                     |   2 +-
 tests/qemu-iotests/254.out                 |   9 +-
 tests/qemu-iotests/257.out                 | 378 +++++++--------------
 tests/qemu-iotests/260                     |   5 +-
 tests/qemu-iotests/273.out                 |  15 +-
 tests/qtest/migration-test.c               |  48 ---
 tests/qtest/numa-test.c                    |   6 +-
 tests/qtest/qmp-test.c                     |   6 +-
 tests/qtest/test-hmp.c                     |   6 +-
 tests/qtest/test-x86-cpuid-compat.c        |   4 +-
 tests/qtest/vhost-user-test.c              |   8 +-
 ui/vnc.c                                   |  38 ---
 63 files changed, 380 insertions(+), 1850 deletions(-)

--=20
2.29.2




^ permalink raw reply	[flat|nested] 49+ messages in thread

* [PATCH 01/14] ui, monitor: remove deprecated VNC ACL option and HMP commands
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-02-24 13:36   ` Thomas Huth
  2021-02-24 13:11 ` [PATCH 02/14] monitor: raise error when 'pretty' option is used with HMP Daniel P. Berrangé
                   ` (15 subsequent siblings)
  16 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

The VNC ACL concept has been replaced by the pluggable "authz" framework
which does not use monitor commands.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 docs/system/deprecated.rst       |  16 ---
 docs/system/removed-features.rst |  13 +++
 hmp-commands.hx                  |  76 -------------
 monitor/misc.c                   | 187 -------------------------------
 ui/vnc.c                         |  38 -------
 5 files changed, 13 insertions(+), 317 deletions(-)

diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 2fcac7861e..786b997fe7 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -37,12 +37,6 @@ The 'file' driver for drives is no longer appropriate for character or host
 devices and will only accept regular files (S_IFREG). The correct driver
 for these file types is 'host_cdrom' or 'host_device' as appropriate.
 
-``-vnc acl`` (since 4.0.0)
-''''''''''''''''''''''''''
-
-The ``acl`` option to the ``-vnc`` argument has been replaced
-by the ``tls-authz`` and ``sasl-authz`` options.
-
 ``QEMU_AUDIO_`` environment variables and ``-audio-help`` (since 4.0)
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
@@ -254,16 +248,6 @@ Use the more generic commands ``block-export-add`` and ``block-export-del``
 instead.  As part of this deprecation, where ``nbd-server-add`` used a
 single ``bitmap``, the new ``block-export-add`` uses a list of ``bitmaps``.
 
-Human Monitor Protocol (HMP) commands
--------------------------------------
-
-``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, ``acl_remove`` (since 4.0.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-The ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, and
-``acl_remove`` commands are deprecated with no replacement. Authorization
-for VNC should be performed using the pluggable QAuthZ objects.
-
 System emulator CPUS
 --------------------
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index c8481cafbd..0424b9a89d 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -38,6 +38,12 @@ or ``-display default,show-cursor=on`` instead.
 QEMU 5.0 introduced an alternative syntax to specify the size of the translation
 block cache, ``-accel tcg,tb-size=``.
 
+``-vnc acl`` (removed in 6.0)
+'''''''''''''''''''''''''''''
+
+The ``acl`` option to the ``-vnc`` argument has been replaced
+by the ``tls-authz`` and ``sasl-authz`` options.
+
 QEMU Machine Protocol (QMP) commands
 ------------------------------------
 
@@ -79,6 +85,13 @@ documentation of ``query-hotpluggable-cpus`` for additional details.
 No replacement.  The ``change vnc password`` and ``change DEVICE MEDIUM``
 commands are not affected.
 
+``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, ``acl_remove`` (removed in 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+The ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, and
+``acl_remove`` commands were removed with no replacement. Authorization
+for VNC should be performed using the pluggable QAuthZ objects.
+
 Guest Emulator ISAs
 -------------------
 
diff --git a/hmp-commands.hx b/hmp-commands.hx
index d4001f9c5d..b500b8526d 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -1433,82 +1433,6 @@ SRST
   Change watchdog action.
 ERST
 
-    {
-        .name       = "acl_show",
-        .args_type  = "aclname:s",
-        .params     = "aclname",
-        .help       = "list rules in the access control list",
-        .cmd        = hmp_acl_show,
-    },
-
-SRST
-``acl_show`` *aclname*
-  List all the matching rules in the access control list, and the default
-  policy. There are currently two named access control lists,
-  *vnc.x509dname* and *vnc.username* matching on the x509 client
-  certificate distinguished name, and SASL username respectively.
-ERST
-
-    {
-        .name       = "acl_policy",
-        .args_type  = "aclname:s,policy:s",
-        .params     = "aclname allow|deny",
-        .help       = "set default access control list policy",
-        .cmd        = hmp_acl_policy,
-    },
-
-SRST
-``acl_policy`` *aclname* ``allow|deny``
-  Set the default access control list policy, used in the event that
-  none of the explicit rules match. The default policy at startup is
-  always ``deny``.
-ERST
-
-    {
-        .name       = "acl_add",
-        .args_type  = "aclname:s,match:s,policy:s,index:i?",
-        .params     = "aclname match allow|deny [index]",
-        .help       = "add a match rule to the access control list",
-        .cmd        = hmp_acl_add,
-    },
-
-SRST
-``acl_add`` *aclname* *match* ``allow|deny`` [*index*]
-  Add a match rule to the access control list, allowing or denying access.
-  The match will normally be an exact username or x509 distinguished name,
-  but can optionally include wildcard globs. eg ``*@EXAMPLE.COM`` to
-  allow all users in the ``EXAMPLE.COM`` kerberos realm. The match will
-  normally be appended to the end of the ACL, but can be inserted
-  earlier in the list if the optional *index* parameter is supplied.
-ERST
-
-    {
-        .name       = "acl_remove",
-        .args_type  = "aclname:s,match:s",
-        .params     = "aclname match",
-        .help       = "remove a match rule from the access control list",
-        .cmd        = hmp_acl_remove,
-    },
-
-SRST
-``acl_remove`` *aclname* *match*
-  Remove the specified match rule from the access control list.
-ERST
-
-    {
-        .name       = "acl_reset",
-        .args_type  = "aclname:s",
-        .params     = "aclname",
-        .help       = "reset the access control list",
-        .cmd        = hmp_acl_reset,
-    },
-
-SRST
-``acl_reset`` *aclname*
-  Remove all matches from the access control list, and set the default
-  policy back to ``deny``.
-ERST
-
     {
         .name       = "nbd_server_start",
         .args_type  = "all:-a,writable:-w,uri:s",
diff --git a/monitor/misc.c b/monitor/misc.c
index a7650ed747..d9ed2bacef 100644
--- a/monitor/misc.c
+++ b/monitor/misc.c
@@ -1045,193 +1045,6 @@ static void hmp_wavcapture(Monitor *mon, const QDict *qdict)
     QLIST_INSERT_HEAD (&capture_head, s, entries);
 }
 
-static QAuthZList *find_auth(Monitor *mon, const char *name)
-{
-    Object *obj;
-    Object *container;
-
-    container = object_get_objects_root();
-    obj = object_resolve_path_component(container, name);
-    if (!obj) {
-        monitor_printf(mon, "acl: unknown list '%s'\n", name);
-        return NULL;
-    }
-
-    return QAUTHZ_LIST(obj);
-}
-
-static bool warn_acl;
-static void hmp_warn_acl(void)
-{
-    if (warn_acl) {
-        return;
-    }
-    error_report("The acl_show, acl_reset, acl_policy, acl_add, acl_remove "
-                 "commands are deprecated with no replacement. Authorization "
-                 "for VNC should be performed using the pluggable QAuthZ "
-                 "objects");
-    warn_acl = true;
-}
-
-static void hmp_acl_show(Monitor *mon, const QDict *qdict)
-{
-    const char *aclname = qdict_get_str(qdict, "aclname");
-    QAuthZList *auth = find_auth(mon, aclname);
-    QAuthZListRuleList *rules;
-    size_t i = 0;
-
-    hmp_warn_acl();
-
-    if (!auth) {
-        return;
-    }
-
-    monitor_printf(mon, "policy: %s\n",
-                   QAuthZListPolicy_str(auth->policy));
-
-    rules = auth->rules;
-    while (rules) {
-        QAuthZListRule *rule = rules->value;
-        i++;
-        monitor_printf(mon, "%zu: %s %s\n", i,
-                       QAuthZListPolicy_str(rule->policy),
-                       rule->match);
-        rules = rules->next;
-    }
-}
-
-static void hmp_acl_reset(Monitor *mon, const QDict *qdict)
-{
-    const char *aclname = qdict_get_str(qdict, "aclname");
-    QAuthZList *auth = find_auth(mon, aclname);
-
-    hmp_warn_acl();
-
-    if (!auth) {
-        return;
-    }
-
-    auth->policy = QAUTHZ_LIST_POLICY_DENY;
-    qapi_free_QAuthZListRuleList(auth->rules);
-    auth->rules = NULL;
-    monitor_printf(mon, "acl: removed all rules\n");
-}
-
-static void hmp_acl_policy(Monitor *mon, const QDict *qdict)
-{
-    const char *aclname = qdict_get_str(qdict, "aclname");
-    const char *policy = qdict_get_str(qdict, "policy");
-    QAuthZList *auth = find_auth(mon, aclname);
-    int val;
-    Error *err = NULL;
-
-    hmp_warn_acl();
-
-    if (!auth) {
-        return;
-    }
-
-    val = qapi_enum_parse(&QAuthZListPolicy_lookup,
-                          policy,
-                          QAUTHZ_LIST_POLICY_DENY,
-                          &err);
-    if (err) {
-        error_free(err);
-        monitor_printf(mon, "acl: unknown policy '%s', "
-                       "expected 'deny' or 'allow'\n", policy);
-    } else {
-        auth->policy = val;
-        if (auth->policy == QAUTHZ_LIST_POLICY_ALLOW) {
-            monitor_printf(mon, "acl: policy set to 'allow'\n");
-        } else {
-            monitor_printf(mon, "acl: policy set to 'deny'\n");
-        }
-    }
-}
-
-static QAuthZListFormat hmp_acl_get_format(const char *match)
-{
-    if (strchr(match, '*')) {
-        return QAUTHZ_LIST_FORMAT_GLOB;
-    } else {
-        return QAUTHZ_LIST_FORMAT_EXACT;
-    }
-}
-
-static void hmp_acl_add(Monitor *mon, const QDict *qdict)
-{
-    const char *aclname = qdict_get_str(qdict, "aclname");
-    const char *match = qdict_get_str(qdict, "match");
-    const char *policystr = qdict_get_str(qdict, "policy");
-    int has_index = qdict_haskey(qdict, "index");
-    int index = qdict_get_try_int(qdict, "index", -1);
-    QAuthZList *auth = find_auth(mon, aclname);
-    Error *err = NULL;
-    QAuthZListPolicy policy;
-    QAuthZListFormat format;
-    size_t i = 0;
-
-    hmp_warn_acl();
-
-    if (!auth) {
-        return;
-    }
-
-    policy = qapi_enum_parse(&QAuthZListPolicy_lookup,
-                             policystr,
-                             QAUTHZ_LIST_POLICY_DENY,
-                             &err);
-    if (err) {
-        error_free(err);
-        monitor_printf(mon, "acl: unknown policy '%s', "
-                       "expected 'deny' or 'allow'\n", policystr);
-        return;
-    }
-
-    format = hmp_acl_get_format(match);
-
-    if (has_index && index == 0) {
-        monitor_printf(mon, "acl: unable to add acl entry\n");
-        return;
-    }
-
-    if (has_index) {
-        i = qauthz_list_insert_rule(auth, match, policy,
-                                    format, index - 1, &err);
-    } else {
-        i = qauthz_list_append_rule(auth, match, policy,
-                                    format, &err);
-    }
-    if (err) {
-        monitor_printf(mon, "acl: unable to add rule: %s",
-                       error_get_pretty(err));
-        error_free(err);
-    } else {
-        monitor_printf(mon, "acl: added rule at position %zu\n", i + 1);
-    }
-}
-
-static void hmp_acl_remove(Monitor *mon, const QDict *qdict)
-{
-    const char *aclname = qdict_get_str(qdict, "aclname");
-    const char *match = qdict_get_str(qdict, "match");
-    QAuthZList *auth = find_auth(mon, aclname);
-    ssize_t i = 0;
-
-    hmp_warn_acl();
-
-    if (!auth) {
-        return;
-    }
-
-    i = qauthz_list_delete_rule(auth, match);
-    if (i >= 0) {
-        monitor_printf(mon, "acl: removed rule at position %zu\n", i + 1);
-    } else {
-        monitor_printf(mon, "acl: no matching acl entry\n");
-    }
-}
-
 void qmp_getfd(const char *fdname, Error **errp)
 {
     Monitor *cur_mon = monitor_cur();
diff --git a/ui/vnc.c b/ui/vnc.c
index 16bb3be770..edb100dfbc 100644
--- a/ui/vnc.c
+++ b/ui/vnc.c
@@ -3481,9 +3481,6 @@ static QemuOptsList qemu_vnc_opts = {
         },{
             .name = "sasl",
             .type = QEMU_OPT_BOOL,
-        },{
-            .name = "acl",
-            .type = QEMU_OPT_BOOL,
         },{
             .name = "tls-authz",
             .type = QEMU_OPT_STRING,
@@ -3935,7 +3932,6 @@ void vnc_display_open(const char *id, Error **errp)
     bool reverse = false;
     const char *credid;
     bool sasl = false;
-    int acl = 0;
     const char *tlsauthz;
     const char *saslauthz;
     int lock_key_sync = 1;
@@ -4010,29 +4006,13 @@ void vnc_display_open(const char *id, Error **errp)
             goto fail;
         }
     }
-    if (qemu_opt_get(opts, "acl")) {
-        error_report("The 'acl' option to -vnc is deprecated. "
-                     "Please use the 'tls-authz' and 'sasl-authz' "
-                     "options instead");
-    }
-    acl = qemu_opt_get_bool(opts, "acl", false);
     tlsauthz = qemu_opt_get(opts, "tls-authz");
-    if (acl && tlsauthz) {
-        error_setg(errp, "'acl' option is mutually exclusive with the "
-                   "'tls-authz' option");
-        goto fail;
-    }
     if (tlsauthz && !vd->tlscreds) {
         error_setg(errp, "'tls-authz' provided but TLS is not enabled");
         goto fail;
     }
 
     saslauthz = qemu_opt_get(opts, "sasl-authz");
-    if (acl && saslauthz) {
-        error_setg(errp, "'acl' option is mutually exclusive with the "
-                   "'sasl-authz' option");
-        goto fail;
-    }
     if (saslauthz && !sasl) {
         error_setg(errp, "'sasl-authz' provided but SASL auth is not enabled");
         goto fail;
@@ -4070,29 +4050,11 @@ void vnc_display_open(const char *id, Error **errp)
 
     if (tlsauthz) {
         vd->tlsauthzid = g_strdup(tlsauthz);
-    } else if (acl) {
-        if (strcmp(vd->id, "default") == 0) {
-            vd->tlsauthzid = g_strdup("vnc.x509dname");
-        } else {
-            vd->tlsauthzid = g_strdup_printf("vnc.%s.x509dname", vd->id);
-        }
-        vd->tlsauthz = QAUTHZ(qauthz_list_new(vd->tlsauthzid,
-                                              QAUTHZ_LIST_POLICY_DENY,
-                                              &error_abort));
     }
 #ifdef CONFIG_VNC_SASL
     if (sasl) {
         if (saslauthz) {
             vd->sasl.authzid = g_strdup(saslauthz);
-        } else if (acl) {
-            if (strcmp(vd->id, "default") == 0) {
-                vd->sasl.authzid = g_strdup("vnc.username");
-            } else {
-                vd->sasl.authzid = g_strdup_printf("vnc.%s.username", vd->id);
-            }
-            vd->sasl.authz = QAUTHZ(qauthz_list_new(vd->sasl.authzid,
-                                                    QAUTHZ_LIST_POLICY_DENY,
-                                                    &error_abort));
         }
     }
 #endif
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 02/14] monitor: raise error when 'pretty' option is used with HMP
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
  2021-02-24 13:11 ` [PATCH 01/14] ui, monitor: remove deprecated VNC ACL option and HMP commands Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-02-24 13:20   ` Dr. David Alan Gilbert
  2021-02-24 13:11 ` [PATCH 03/14] monitor: remove 'query-events' QMP command Daniel P. Berrangé
                   ` (14 subsequent siblings)
  16 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

This is only semantically useful for QMP.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 docs/system/deprecated.rst       | 7 -------
 docs/system/removed-features.rst | 6 ++++++
 monitor/monitor.c                | 4 ++--
 qemu-options.hx                  | 5 +++--
 4 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 786b997fe7..dfd8a8c497 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -62,13 +62,6 @@ needs two devices (``-device intel-hda -device hda-duplex``) and
 ``pcspk`` which can be activated using ``-machine
 pcspk-audiodev=<name>``.
 
-``-mon ...,control=readline,pretty=on|off`` (since 4.1)
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-The ``pretty=on|off`` switch has no effect for HMP monitors, but is
-silently ignored. Using the switch with HMP monitors will become an
-error in the future.
-
 RISC-V ``-bios`` (since 5.1)
 ''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 0424b9a89d..3ca13d2844 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -44,6 +44,12 @@ block cache, ``-accel tcg,tb-size=``.
 The ``acl`` option to the ``-vnc`` argument has been replaced
 by the ``tls-authz`` and ``sasl-authz`` options.
 
+``-mon ...,control=readline,pretty=on|off`` (removed in 6.0)
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+The ``pretty=on|off`` switch has no effect for HMP monitors and
+its use is rejected.
+
 QEMU Machine Protocol (QMP) commands
 ------------------------------------
 
diff --git a/monitor/monitor.c b/monitor/monitor.c
index e94f532cf5..515efb015e 100644
--- a/monitor/monitor.c
+++ b/monitor/monitor.c
@@ -720,8 +720,8 @@ int monitor_init(MonitorOptions *opts, bool allow_hmp, Error **errp)
             return -1;
         }
         if (opts->pretty) {
-            warn_report("'pretty' is deprecated for HMP monitors, it has no "
-                        "effect and will be removed in future versions");
+            error_setg(errp, "'pretty' is not compatible with HMP monitors");
+            return -1;
         }
         monitor_init_hmp(chr, true, &local_err);
         break;
diff --git a/qemu-options.hx b/qemu-options.hx
index 6c34c7050f..a934d5c787 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -3702,8 +3702,9 @@ DEF("mon", HAS_ARG, QEMU_OPTION_mon, \
     "-mon [chardev=]name[,mode=readline|control][,pretty[=on|off]]\n", QEMU_ARCH_ALL)
 SRST
 ``-mon [chardev=]name[,mode=readline|control][,pretty[=on|off]]``
-    Setup monitor on chardev name. ``pretty`` turns on JSON pretty
-    printing easing human reading and debugging.
+    Setup monitor on chardev name. ``pretty`` is only valid when
+    ``mode=control``, turning on JSON pretty printing to ease
+    human reading and debugging.
 ERST
 
 DEF("debugcon", HAS_ARG, QEMU_OPTION_debugcon, \
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 03/14] monitor: remove 'query-events' QMP command
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
  2021-02-24 13:11 ` [PATCH 01/14] ui, monitor: remove deprecated VNC ACL option and HMP commands Daniel P. Berrangé
  2021-02-24 13:11 ` [PATCH 02/14] monitor: raise error when 'pretty' option is used with HMP Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-02-24 13:47   ` Thomas Huth
  2021-02-24 13:11 ` [PATCH 04/14] softmmu: remove '-usbdevice' command line option Daniel P. Berrangé
                   ` (13 subsequent siblings)
  16 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

The code comment suggests removing QAPIEvent_(str|lookup) symbols too,
however, these are both auto-generated as standard for any enum in
QAPI. As such it they'll exist whether we use them or not.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 docs/system/deprecated.rst       |  6 -----
 docs/system/removed-features.rst |  6 +++++
 monitor/qmp-cmds-control.c       | 24 -----------------
 qapi/control.json                | 45 --------------------------------
 4 files changed, 6 insertions(+), 75 deletions(-)

diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index dfd8a8c497..611adf60f7 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -222,12 +222,6 @@ The ``query-cpus`` command is replaced by the ``query-cpus-fast`` command.
 The ``arch`` output member of the ``query-cpus-fast`` command is
 replaced by the ``target`` output member.
 
-``query-events`` (since 4.0)
-''''''''''''''''''''''''''''
-
-The ``query-events`` command has been superseded by the more powerful
-and accurate ``query-qmp-schema`` command.
-
 chardev client socket with ``wait`` option (since 4.0)
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 3ca13d2844..dc63581fe5 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -70,6 +70,12 @@ documentation of ``query-hotpluggable-cpus`` for additional details.
 
 Use ``blockdev-change-medium`` or ``change-vnc-password`` instead.
 
+``query-events`` (removed in 6.0)
+'''''''''''''''''''''''''''''''''
+
+The ``query-events`` command has been superseded by the more powerful
+and accurate ``query-qmp-schema`` command.
+
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
diff --git a/monitor/qmp-cmds-control.c b/monitor/qmp-cmds-control.c
index 509ae870bd..513b547233 100644
--- a/monitor/qmp-cmds-control.c
+++ b/monitor/qmp-cmds-control.c
@@ -130,30 +130,6 @@ CommandInfoList *qmp_query_commands(Error **errp)
     return list;
 }
 
-EventInfoList *qmp_query_events(Error **errp)
-{
-    /*
-     * TODO This deprecated command is the only user of
-     * QAPIEvent_str() and QAPIEvent_lookup[].  When the command goes,
-     * they should go, too.
-     */
-    EventInfoList *ev_list = NULL;
-    QAPIEvent e;
-
-    for (e = 0 ; e < QAPI_EVENT__MAX ; e++) {
-        const char *event_name = QAPIEvent_str(e);
-        EventInfo *info;
-
-        assert(event_name != NULL);
-        info = g_malloc0(sizeof(*info));
-        info->name = g_strdup(event_name);
-
-        QAPI_LIST_PREPEND(ev_list, info);
-    }
-
-    return ev_list;
-}
-
 /*
  * Minor hack: generated marshalling suppressed for this command
  * ('gen': false in the schema) so we can parse the JSON string
diff --git a/qapi/control.json b/qapi/control.json
index 2615d5170b..71a838d49e 100644
--- a/qapi/control.json
+++ b/qapi/control.json
@@ -159,51 +159,6 @@
 { 'command': 'query-commands', 'returns': ['CommandInfo'],
   'allow-preconfig': true }
 
-##
-# @EventInfo:
-#
-# Information about a QMP event
-#
-# @name: The event name
-#
-# Since: 1.2
-##
-{ 'struct': 'EventInfo', 'data': {'name': 'str'} }
-
-##
-# @query-events:
-#
-# Return information on QMP events.
-#
-# Features:
-# @deprecated: This command is deprecated, because its output doesn't
-#              reflect compile-time configuration.  Use 'query-qmp-schema'
-#              instead.
-#
-# Returns: A list of @EventInfo.
-#
-# Since: 1.2
-#
-# Example:
-#
-# -> { "execute": "query-events" }
-# <- {
-#      "return": [
-#          {
-#             "name":"SHUTDOWN"
-#          },
-#          {
-#             "name":"RESET"
-#          }
-#       ]
-#    }
-#
-# Note: This example has been shortened as the real response is too long.
-#
-##
-{ 'command': 'query-events', 'returns': ['EventInfo'],
-  'features': [ 'deprecated' ] }
-
 ##
 # @quit:
 #
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 04/14] softmmu: remove '-usbdevice' command line option
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (2 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 03/14] monitor: remove 'query-events' QMP command Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-02-24 13:25   ` Paolo Bonzini
  2021-02-24 13:58   ` Thomas Huth
  2021-02-24 13:11 ` [PATCH 05/14] migrate: remove QMP/HMP commands for speed, downtime and cache size Daniel P. Berrangé
                   ` (12 subsequent siblings)
  16 siblings, 2 replies; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

This was replaced by the '-device usb-DEV' option.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 docs/system/deprecated.rst       |  9 -------
 docs/system/removed-features.rst |  9 +++++++
 softmmu/vl.c                     | 42 --------------------------------
 3 files changed, 9 insertions(+), 51 deletions(-)

diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 611adf60f7..c577cc97c4 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -21,15 +21,6 @@ deprecated.
 System emulator command line arguments
 --------------------------------------
 
-``-usbdevice`` (since 2.10.0)
-'''''''''''''''''''''''''''''
-
-The ``-usbdevice DEV`` argument is now a synonym for setting
-the ``-device usb-DEV`` argument instead. The deprecated syntax
-would automatically enable USB support on the machine type.
-If using the new syntax, USB support must be explicitly
-enabled via the ``-machine usb=on`` argument.
-
 ``-drive file=json:{...{'driver':'file'}}`` (since 3.0)
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index dc63581fe5..74d022babf 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -50,6 +50,15 @@ by the ``tls-authz`` and ``sasl-authz`` options.
 The ``pretty=on|off`` switch has no effect for HMP monitors and
 its use is rejected.
 
+``-usbdevice`` (removed in 6.0)
+'''''''''''''''''''''''''''''''
+
+The ``-usbdevice DEV`` argument was now a synonym for setting
+the ``-device usb-DEV`` argument instead. The removed syntax
+would automatically enable USB support on the machine type.
+When using the new syntax, USB support must be explicitly
+enabled via the ``-machine usb=on`` argument.
+
 QEMU Machine Protocol (QMP) commands
 ------------------------------------
 
diff --git a/softmmu/vl.c b/softmmu/vl.c
index b219ce1f35..c31061cc09 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -743,34 +743,6 @@ static void configure_msg(QemuOpts *opts)
 }
 
 
-/***********************************************************/
-/* USB devices */
-
-static int usb_device_add(const char *devname)
-{
-    USBDevice *dev = NULL;
-
-    if (!machine_usb(current_machine)) {
-        return -1;
-    }
-
-    dev = usbdevice_create(devname);
-    if (!dev)
-        return -1;
-
-    return 0;
-}
-
-static int usb_parse(const char *cmdline)
-{
-    int r;
-    r = usb_device_add(cmdline);
-    if (r < 0) {
-        error_report("could not add USB device '%s'", cmdline);
-    }
-    return r;
-}
-
 /***********************************************************/
 /* machine registration */
 
@@ -1267,7 +1239,6 @@ static void monitor_parse(const char *optarg, const char *mode, bool pretty)
 
 struct device_config {
     enum {
-        DEV_USB,       /* -usbdevice     */
         DEV_SERIAL,    /* -serial        */
         DEV_PARALLEL,  /* -parallel      */
         DEV_DEBUGCON,  /* -debugcon */
@@ -2484,12 +2455,6 @@ static void qemu_create_cli_devices(void)
     qemu_opts_foreach(qemu_find_opts("fw_cfg"),
                       parse_fw_cfg, fw_cfg_find(), &error_fatal);
 
-    /* init USB devices */
-    if (machine_usb(current_machine)) {
-        if (foreach_device_config(DEV_USB, usb_parse) < 0)
-            exit(1);
-    }
-
     /* init generic devices */
     rom_set_order_override(FW_CFG_ORDER_OVERRIDE_DEVICE);
     qemu_opts_foreach(qemu_find_opts("device"),
@@ -3182,13 +3147,6 @@ void qemu_init(int argc, char **argv, char **envp)
                 olist = qemu_find_opts("machine");
                 qemu_opts_parse_noisily(olist, "usb=on", false);
                 break;
-            case QEMU_OPTION_usbdevice:
-                error_report("'-usbdevice' is deprecated, please use "
-                             "'-device usb-...' instead");
-                olist = qemu_find_opts("machine");
-                qemu_opts_parse_noisily(olist, "usb=on", false);
-                add_device_config(DEV_USB, optarg);
-                break;
             case QEMU_OPTION_device:
                 if (!qemu_opts_parse_noisily(qemu_find_opts("device"),
                                              optarg, true)) {
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 05/14] migrate: remove QMP/HMP commands for speed, downtime and cache size
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (3 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 04/14] softmmu: remove '-usbdevice' command line option Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-03-11 11:54   ` Dr. David Alan Gilbert
  2021-02-24 13:11 ` [PATCH 06/14] machine: remove 'query-cpus' QMP command Daniel P. Berrangé
                   ` (11 subsequent siblings)
  16 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

The generic 'migrate_set_parameters' command handle all types of param.

Only the QMP commands were documented in the deprecations page, but the
rationale for deprecating applies equally to HMP, and the replacements
exist. Furthermore the HMP commands are just shims to the QMP commands,
so removing the latter breaks the former unless they get re-implemented.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 docs/devel/migration.rst            |  2 +-
 docs/rdma.txt                       |  2 +-
 docs/system/deprecated.rst          | 10 ---
 docs/system/removed-features.rst    | 20 ++++++
 docs/xbzrle.txt                     |  5 --
 hmp-commands-info.hx                | 13 ----
 hmp-commands.hx                     | 45 -------------
 include/monitor/hmp.h               |  4 --
 migration/migration.c               | 45 -------------
 migration/ram.c                     |  2 +-
 monitor/hmp-cmds.c                  | 34 ----------
 qapi/migration.json                 | 98 -----------------------------
 tests/migration/guestperf/engine.py | 16 ++---
 tests/qemu-iotests/181              |  2 +-
 tests/qtest/migration-test.c        | 48 --------------
 tests/qtest/test-hmp.c              |  6 +-
 tests/qtest/vhost-user-test.c       |  8 +--
 17 files changed, 40 insertions(+), 320 deletions(-)

diff --git a/docs/devel/migration.rst b/docs/devel/migration.rst
index ad381b89b2..19c3d4f3ea 100644
--- a/docs/devel/migration.rst
+++ b/docs/devel/migration.rst
@@ -641,7 +641,7 @@ time per vCPU.
 
 .. note::
   During the postcopy phase, the bandwidth limits set using
-  ``migrate_set_speed`` is ignored (to avoid delaying requested pages that
+  ``migrate_set_parameter`` is ignored (to avoid delaying requested pages that
   the destination is waiting for).
 
 Postcopy device transfer
diff --git a/docs/rdma.txt b/docs/rdma.txt
index 49dc9f8bca..2b4cdea1d8 100644
--- a/docs/rdma.txt
+++ b/docs/rdma.txt
@@ -89,7 +89,7 @@ RUNNING:
 First, set the migration speed to match your hardware's capabilities:
 
 QEMU Monitor Command:
-$ migrate_set_speed 40g # or whatever is the MAX of your RDMA device
+$ migrate_set_parameter max_bandwidth 40g # or whatever is the MAX of your RDMA device
 
 Next, on the destination machine, add the following to the QEMU command line:
 
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index c577cc97c4..e214f0a9cf 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -147,11 +147,6 @@ Use argument ``id`` instead.
 
 Use argument ``id`` instead.
 
-``migrate_set_downtime`` and ``migrate_set_speed`` (since 2.8.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Use ``migrate-set-parameters`` instead.
-
 ``query-named-block-nodes`` result ``encryption_key_missing`` (since 2.10.0)
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
@@ -167,11 +162,6 @@ Always false.
 
 Use argument value ``null`` instead.
 
-``migrate-set-cache-size`` and ``query-migrate-cache-size`` (since 2.11.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Use ``migrate-set-parameters`` and ``query-migrate-parameters`` instead.
-
 ``block-commit`` arguments ``base`` and ``top`` (since 3.1.0)
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 74d022babf..2c5513dcc7 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -85,6 +85,16 @@ Use ``blockdev-change-medium`` or ``change-vnc-password`` instead.
 The ``query-events`` command has been superseded by the more powerful
 and accurate ``query-qmp-schema`` command.
 
+``migrate_set_cache_size`` and ``query-migrate-cache-size`` (removed in 6.0)
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Use ``migrate_set_parameter`` and ``info migrate_parameters`` instead.
+
+``migrate_set_downtime`` and ``migrate_set_speed`` (removed in 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Use ``migrate_set_parameter`` instead.
+
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
@@ -113,6 +123,16 @@ The ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, and
 ``acl_remove`` commands were removed with no replacement. Authorization
 for VNC should be performed using the pluggable QAuthZ objects.
 
+``migrate-set-cache-size`` and ``info migrate-cache-size`` (removed in 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Use ``migrate-set-parameters`` and ``info migrate-parameters`` instead.
+
+``migrate_set_downtime`` and ``migrate_set_speed`` (removed in 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Use ``migrate-set-parameters`` instead.
+
 Guest Emulator ISAs
 -------------------
 
diff --git a/docs/xbzrle.txt b/docs/xbzrle.txt
index 6bd1828f34..bcb3f0c901 100644
--- a/docs/xbzrle.txt
+++ b/docs/xbzrle.txt
@@ -90,11 +90,6 @@ Usage
 
 3. Set the XBZRLE cache size - the cache size is in MBytes and should be a
 power of 2. The cache default value is 64MBytes. (on source only)
-    {qemu} migrate_set_cache_size 256m
-
-Commit 73af8dd8d7 "migration: Make xbzrle_cache_size a migration parameter"
-(v2.11.0) deprecated migrate-set-cache-size, therefore, the new parameter
-is recommended.
     {qemu} migrate_set_parameter xbzrle-cache-size 256m
 
 4. Start outgoing migration
diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx
index 117ba25f91..ab0c7aa5ee 100644
--- a/hmp-commands-info.hx
+++ b/hmp-commands-info.hx
@@ -567,19 +567,6 @@ SRST
     Show current migration parameters.
 ERST
 
-    {
-        .name       = "migrate_cache_size",
-        .args_type  = "",
-        .params     = "",
-        .help       = "show current migration xbzrle cache size",
-        .cmd        = hmp_info_migrate_cache_size,
-    },
-
-SRST
-  ``info migrate_cache_size``
-    Show current migration xbzrle cache size.
-ERST
-
     {
         .name       = "balloon",
         .args_type  = "",
diff --git a/hmp-commands.hx b/hmp-commands.hx
index b500b8526d..2bbe133bb6 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -979,51 +979,6 @@ SRST
   Pause an ongoing migration.  Currently it only supports postcopy.
 ERST
 
-    {
-        .name       = "migrate_set_cache_size",
-        .args_type  = "value:o",
-        .params     = "value",
-        .help       = "set cache size (in bytes) for XBZRLE migrations,"
-                      "the cache size will be rounded down to the nearest "
-                      "power of 2.\n"
-                      "The cache size affects the number of cache misses."
-                      "In case of a high cache miss ratio you need to increase"
-                      " the cache size",
-        .cmd        = hmp_migrate_set_cache_size,
-    },
-
-SRST
-``migrate_set_cache_size`` *value*
-  Set cache size to *value* (in bytes) for xbzrle migrations.
-ERST
-
-    {
-        .name       = "migrate_set_speed",
-        .args_type  = "value:o",
-        .params     = "value",
-        .help       = "set maximum speed (in bytes) for migrations. "
-	"Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
-        .cmd        = hmp_migrate_set_speed,
-    },
-
-SRST
-``migrate_set_speed`` *value*
-  Set maximum speed to *value* (in bytes) for migrations.
-ERST
-
-    {
-        .name       = "migrate_set_downtime",
-        .args_type  = "value:T",
-        .params     = "value",
-        .help       = "set maximum tolerated downtime (in seconds) for migrations",
-        .cmd        = hmp_migrate_set_downtime,
-    },
-
-SRST
-``migrate_set_downtime`` *second*
-  Set maximum tolerated downtime (in seconds) for migration.
-ERST
-
     {
         .name       = "migrate_set_capability",
         .args_type  = "capability:s,state:b",
diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h
index ed2913fd18..605d57287a 100644
--- a/include/monitor/hmp.h
+++ b/include/monitor/hmp.h
@@ -28,7 +28,6 @@ void hmp_info_mice(Monitor *mon, const QDict *qdict);
 void hmp_info_migrate(Monitor *mon, const QDict *qdict);
 void hmp_info_migrate_capabilities(Monitor *mon, const QDict *qdict);
 void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict);
-void hmp_info_migrate_cache_size(Monitor *mon, const QDict *qdict);
 void hmp_info_cpus(Monitor *mon, const QDict *qdict);
 void hmp_info_vnc(Monitor *mon, const QDict *qdict);
 void hmp_info_spice(Monitor *mon, const QDict *qdict);
@@ -64,11 +63,8 @@ void hmp_migrate_continue(Monitor *mon, const QDict *qdict);
 void hmp_migrate_incoming(Monitor *mon, const QDict *qdict);
 void hmp_migrate_recover(Monitor *mon, const QDict *qdict);
 void hmp_migrate_pause(Monitor *mon, const QDict *qdict);
-void hmp_migrate_set_downtime(Monitor *mon, const QDict *qdict);
-void hmp_migrate_set_speed(Monitor *mon, const QDict *qdict);
 void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict);
 void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict);
-void hmp_migrate_set_cache_size(Monitor *mon, const QDict *qdict);
 void hmp_client_migrate_info(Monitor *mon, const QDict *qdict);
 void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict);
 void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict);
diff --git a/migration/migration.c b/migration/migration.c
index a5ddf43559..5408367eda 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2318,51 +2318,6 @@ void qmp_migrate_continue(MigrationStatus state, Error **errp)
     qemu_sem_post(&s->pause_sem);
 }
 
-void qmp_migrate_set_cache_size(int64_t value, Error **errp)
-{
-    MigrateSetParameters p = {
-        .has_xbzrle_cache_size = true,
-        .xbzrle_cache_size = value,
-    };
-
-    qmp_migrate_set_parameters(&p, errp);
-}
-
-uint64_t qmp_query_migrate_cache_size(Error **errp)
-{
-    return migrate_xbzrle_cache_size();
-}
-
-void qmp_migrate_set_speed(int64_t value, Error **errp)
-{
-    MigrateSetParameters p = {
-        .has_max_bandwidth = true,
-        .max_bandwidth = value,
-    };
-
-    qmp_migrate_set_parameters(&p, errp);
-}
-
-void qmp_migrate_set_downtime(double value, Error **errp)
-{
-    if (value < 0 || value > MAX_MIGRATE_DOWNTIME_SECONDS) {
-        error_setg(errp, QERR_INVALID_PARAMETER_VALUE,
-                   "downtime_limit",
-                   "an integer in the range of 0 to "
-                    stringify(MAX_MIGRATE_DOWNTIME_SECONDS)" seconds");
-        return;
-    }
-
-    value *= 1000; /* Convert to milliseconds */
-
-    MigrateSetParameters p = {
-        .has_downtime_limit = true,
-        .downtime_limit = (int64_t)value,
-    };
-
-    qmp_migrate_set_parameters(&p, errp);
-}
-
 bool migrate_release_ram(void)
 {
     MigrationState *s;
diff --git a/migration/ram.c b/migration/ram.c
index 72143da0ac..a569b87875 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -121,7 +121,7 @@ static void XBZRLE_cache_unlock(void)
 /**
  * xbzrle_cache_resize: resize the xbzrle cache
  *
- * This function is called from qmp_migrate_set_cache_size in main
+ * This function is called from migrate_params_apply in main
  * thread, possibly while a migration is in progress.  A running
  * migration may be using the cache and might finish during this call,
  * hence changes to the cache are protected by XBZRLE.lock().
diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
index 3c88a4faef..8a47ba8fbb 100644
--- a/monitor/hmp-cmds.c
+++ b/monitor/hmp-cmds.c
@@ -518,12 +518,6 @@ void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict)
     qapi_free_MigrationParameters(params);
 }
 
-void hmp_info_migrate_cache_size(Monitor *mon, const QDict *qdict)
-{
-    monitor_printf(mon, "xbzrel cache size: %" PRId64 " kbytes\n",
-                   qmp_query_migrate_cache_size(NULL) >> 10);
-}
-
 
 #ifdef CONFIG_VNC
 /* Helper for hmp_info_vnc_clients, _servers */
@@ -1226,34 +1220,6 @@ void hmp_migrate_pause(Monitor *mon, const QDict *qdict)
     hmp_handle_error(mon, err);
 }
 
-/* Kept for backwards compatibility */
-void hmp_migrate_set_downtime(Monitor *mon, const QDict *qdict)
-{
-    Error *err = NULL;
-
-    double value = qdict_get_double(qdict, "value");
-    qmp_migrate_set_downtime(value, &err);
-    hmp_handle_error(mon, err);
-}
-
-void hmp_migrate_set_cache_size(Monitor *mon, const QDict *qdict)
-{
-    int64_t value = qdict_get_int(qdict, "value");
-    Error *err = NULL;
-
-    qmp_migrate_set_cache_size(value, &err);
-    hmp_handle_error(mon, err);
-}
-
-/* Kept for backwards compatibility */
-void hmp_migrate_set_speed(Monitor *mon, const QDict *qdict)
-{
-    Error *err = NULL;
-
-    int64_t value = qdict_get_int(qdict, "value");
-    qmp_migrate_set_speed(value, &err);
-    hmp_handle_error(mon, err);
-}
 
 void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict)
 {
diff --git a/qapi/migration.json b/qapi/migration.json
index 6e5943fbb4..9bf0bc4d25 100644
--- a/qapi/migration.json
+++ b/qapi/migration.json
@@ -1398,104 +1398,6 @@
 ##
 { 'command': 'migrate-continue', 'data': {'state': 'MigrationStatus'} }
 
-##
-# @migrate_set_downtime:
-#
-# Set maximum tolerated downtime for migration.
-#
-# @value: maximum downtime in seconds
-#
-# Features:
-# @deprecated: This command is deprecated.  Use
-#              'migrate-set-parameters' instead.
-#
-# Returns: nothing on success
-#
-# Since: 0.14
-#
-# Example:
-#
-# -> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
-# <- { "return": {} }
-#
-##
-{ 'command': 'migrate_set_downtime', 'data': {'value': 'number'},
-  'features': [ 'deprecated' ] }
-
-##
-# @migrate_set_speed:
-#
-# Set maximum speed for migration.
-#
-# @value: maximum speed in bytes per second.
-#
-# Features:
-# @deprecated: This command is deprecated.  Use
-#              'migrate-set-parameters' instead.
-#
-# Returns: nothing on success
-#
-# Since: 0.14
-#
-# Example:
-#
-# -> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
-# <- { "return": {} }
-#
-##
-{ 'command': 'migrate_set_speed', 'data': {'value': 'int'},
-  'features': [ 'deprecated' ] }
-
-##
-# @migrate-set-cache-size:
-#
-# Set cache size to be used by XBZRLE migration
-#
-# @value: cache size in bytes
-#
-# Features:
-# @deprecated: This command is deprecated.  Use
-#              'migrate-set-parameters' instead.
-#
-# The size will be rounded down to the nearest power of 2.
-# The cache size can be modified before and during ongoing migration
-#
-# Returns: nothing on success
-#
-# Since: 1.2
-#
-# Example:
-#
-# -> { "execute": "migrate-set-cache-size",
-#      "arguments": { "value": 536870912 } }
-# <- { "return": {} }
-#
-##
-{ 'command': 'migrate-set-cache-size', 'data': {'value': 'int'},
-  'features': [ 'deprecated' ] }
-
-##
-# @query-migrate-cache-size:
-#
-# Query migration XBZRLE cache size
-#
-# Features:
-# @deprecated: This command is deprecated.  Use
-#              'query-migrate-parameters' instead.
-#
-# Returns: XBZRLE cache size in bytes
-#
-# Since: 1.2
-#
-# Example:
-#
-# -> { "execute": "query-migrate-cache-size" }
-# <- { "return": 67108864 }
-#
-##
-{ 'command': 'query-migrate-cache-size', 'returns': 'size',
-  'features': [ 'deprecated' ] }
-
 ##
 # @migrate:
 #
diff --git a/tests/migration/guestperf/engine.py b/tests/migration/guestperf/engine.py
index 83bfc3b6bb..5161e4ff81 100644
--- a/tests/migration/guestperf/engine.py
+++ b/tests/migration/guestperf/engine.py
@@ -149,11 +149,11 @@ def _migrate(self, hardware, scenario, src, dst, connect_uri):
                                      "state": True }
                                ])
 
-        resp = src.command("migrate_set_speed",
-                           value=scenario._bandwidth * 1024 * 1024)
+        resp = src.command("migrate-set-parameters",
+                           max_bandwidth=scenario._bandwidth * 1024 * 1024)
 
-        resp = src.command("migrate_set_downtime",
-                           value=scenario._downtime / 1024.0)
+        resp = src.command("migrate-set-parameters",
+                           downtime_limit=scenario._downtime / 1024.0)
 
         if scenario._compression_mt:
             resp = src.command("migrate-set-capabilities",
@@ -182,9 +182,11 @@ def _migrate(self, hardware, scenario, src, dst, connect_uri):
                                    { "capability": "xbzrle",
                                      "state": True }
                                ])
-            resp = src.command("migrate-set-cache-size",
-                               value=(hardware._mem * 1024 * 1024 * 1024 / 100 *
-                                      scenario._compression_xbzrle_cache))
+            resp = src.command("migrate-set-parameters",
+                               xbzrle_cache_size=(
+                                   hardware._mem *
+                                   1024 * 1024 * 1024 / 100 *
+                                   scenario._compression_xbzrle_cache))
 
         resp = src.command("migrate", uri=connect_uri)
 
diff --git a/tests/qemu-iotests/181 b/tests/qemu-iotests/181
index 820c53ef35..cb96d09ae5 100755
--- a/tests/qemu-iotests/181
+++ b/tests/qemu-iotests/181
@@ -109,7 +109,7 @@ if [ ${QEMU_STATUS[$dest]} -lt 0 ]; then
     _notrun 'Postcopy is not supported'
 fi
 
-_send_qemu_cmd $src 'migrate_set_speed 4k' "(qemu)"
+_send_qemu_cmd $src 'migrate_set_parameter max_bandwidth 4k' "(qemu)"
 _send_qemu_cmd $src 'migrate_set_capability postcopy-ram on' "(qemu)"
 _send_qemu_cmd $src "migrate -d unix:${MIG_SOCKET}" "(qemu)"
 _send_qemu_cmd $src 'migrate_start_postcopy' "(qemu)"
diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
index f2142fbd3c..3a711bb492 100644
--- a/tests/qtest/migration-test.c
+++ b/tests/qtest/migration-test.c
@@ -658,53 +658,6 @@ static void test_migrate_end(QTestState *from, QTestState *to, bool test_dest)
     cleanup("dest_serial");
 }
 
-static void deprecated_set_downtime(QTestState *who, const double value)
-{
-    QDict *rsp;
-
-    rsp = qtest_qmp(who,
-                    "{ 'execute': 'migrate_set_downtime',"
-                    " 'arguments': { 'value': %f } }", value);
-    g_assert(qdict_haskey(rsp, "return"));
-    qobject_unref(rsp);
-    migrate_check_parameter_int(who, "downtime-limit", value * 1000);
-}
-
-static void deprecated_set_speed(QTestState *who, long long value)
-{
-    QDict *rsp;
-
-    rsp = qtest_qmp(who, "{ 'execute': 'migrate_set_speed',"
-                          "'arguments': { 'value': %lld } }", value);
-    g_assert(qdict_haskey(rsp, "return"));
-    qobject_unref(rsp);
-    migrate_check_parameter_int(who, "max-bandwidth", value);
-}
-
-static void deprecated_set_cache_size(QTestState *who, long long value)
-{
-    QDict *rsp;
-
-    rsp = qtest_qmp(who, "{ 'execute': 'migrate-set-cache-size',"
-                         "'arguments': { 'value': %lld } }", value);
-    g_assert(qdict_haskey(rsp, "return"));
-    qobject_unref(rsp);
-    migrate_check_parameter_int(who, "xbzrle-cache-size", value);
-}
-
-static void test_deprecated(void)
-{
-    QTestState *from;
-
-    from = qtest_init("-machine none");
-
-    deprecated_set_downtime(from, 0.12345);
-    deprecated_set_speed(from, 12345);
-    deprecated_set_cache_size(from, 4096);
-
-    qtest_quit(from);
-}
-
 static int migrate_postcopy_prepare(QTestState **from_ptr,
                                     QTestState **to_ptr,
                                     MigrateStart *args)
@@ -1486,7 +1439,6 @@ int main(int argc, char **argv)
 
     qtest_add_func("/migration/postcopy/unix", test_postcopy);
     qtest_add_func("/migration/postcopy/recovery", test_postcopy_recovery);
-    qtest_add_func("/migration/deprecated", test_deprecated);
     qtest_add_func("/migration/bad_dest", test_baddest);
     qtest_add_func("/migration/precopy/unix", test_precopy_unix);
     qtest_add_func("/migration/precopy/tcp", test_precopy_tcp);
diff --git a/tests/qtest/test-hmp.c b/tests/qtest/test-hmp.c
index 94a8023173..413eb95d2a 100644
--- a/tests/qtest/test-hmp.c
+++ b/tests/qtest/test-hmp.c
@@ -45,9 +45,9 @@ static const char *hmp_cmds[] = {
     "log all",
     "log none",
     "memsave 0 4096 \"/dev/null\"",
-    "migrate_set_cache_size 1",
-    "migrate_set_downtime 1",
-    "migrate_set_speed 1",
+    "migrate_set_parameter xbzrle_cache_size 1",
+    "migrate_set_parameter downtime_limit 1",
+    "migrate_set_parameter max_bandwidth 1",
     "netdev_add user,id=net1",
     "set_link net1 off",
     "set_link net1 on",
diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c
index 1a5f5313ff..3d6337fb5c 100644
--- a/tests/qtest/vhost-user-test.c
+++ b/tests/qtest/vhost-user-test.c
@@ -756,8 +756,8 @@ static void test_migrate(void *obj, void *arg, QGuestAllocator *alloc)
 
     /* slow down migration to have time to fiddle with log */
     /* TODO: qtest could learn to break on some places */
-    rsp = qmp("{ 'execute': 'migrate_set_speed',"
-              "'arguments': { 'value': 10 } }");
+    rsp = qmp("{ 'execute': 'migrate-set-parameters',"
+              "'arguments': { 'max-bandwidth': 10 } }");
     g_assert(qdict_haskey(rsp, "return"));
     qobject_unref(rsp);
 
@@ -776,8 +776,8 @@ static void test_migrate(void *obj, void *arg, QGuestAllocator *alloc)
     munmap(log, size);
 
     /* speed things up */
-    rsp = qmp("{ 'execute': 'migrate_set_speed',"
-              "'arguments': { 'value': 0 } }");
+    rsp = qmp("{ 'execute': 'migrate-set-parameters',"
+              "'arguments': { 'max-bandwidth': 0 } }");
     g_assert(qdict_haskey(rsp, "return"));
     qobject_unref(rsp);
 
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 06/14] machine: remove 'query-cpus' QMP command
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (4 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 05/14] migrate: remove QMP/HMP commands for speed, downtime and cache size Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-02-25 12:32   ` Wainer dos Santos Moschetta
  2021-02-24 13:11 ` [PATCH 07/14] machine: remove 'arch' field from 'query-cpus-fast' " Daniel P. Berrangé
                   ` (10 subsequent siblings)
  16 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

The newer 'query-cpus-fast' command avoids side effects on the guest
execution. Note that some of the field names are different in the
'query-cpus-fast' command.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 docs/system/deprecated.rst                 |   5 -
 docs/system/removed-features.rst           |   5 +
 hw/core/machine-hmp-cmds.c                 |   8 +-
 hw/core/machine-qmp-cmds.c                 |  79 ----------
 qapi/machine.json                          | 161 +--------------------
 tests/acceptance/pc_cpu_hotplug_props.py   |   2 +-
 tests/acceptance/x86_cpu_model_versions.py |   2 +-
 tests/migration/guestperf/engine.py        |   2 +-
 tests/qtest/numa-test.c                    |   6 +-
 tests/qtest/qmp-test.c                     |   6 +-
 tests/qtest/test-x86-cpuid-compat.c        |   4 +-
 11 files changed, 22 insertions(+), 258 deletions(-)

diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index e214f0a9cf..484f017119 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -192,11 +192,6 @@ Since the ``dirty-bitmaps`` field is optionally present in both the old and
 new locations, clients must use introspection to learn where to anticipate
 the field if/when it does appear in command output.
 
-``query-cpus`` (since 2.12.0)
-'''''''''''''''''''''''''''''
-
-The ``query-cpus`` command is replaced by the ``query-cpus-fast`` command.
-
 ``query-cpus-fast`` ``arch`` output member (since 3.0.0)
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 2c5513dcc7..ad146daf9b 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -95,6 +95,11 @@ Use ``migrate_set_parameter`` and ``info migrate_parameters`` instead.
 
 Use ``migrate_set_parameter`` instead.
 
+``query-cpus`` (removed in 6.0)
+'''''''''''''''''''''''''''''''
+
+The ``query-cpus`` command is replaced by the ``query-cpus-fast`` command.
+
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
diff --git a/hw/core/machine-hmp-cmds.c b/hw/core/machine-hmp-cmds.c
index 6357be9c6b..58248cffa3 100644
--- a/hw/core/machine-hmp-cmds.c
+++ b/hw/core/machine-hmp-cmds.c
@@ -130,7 +130,7 @@ void hmp_info_numa(Monitor *mon, const QDict *qdict)
 {
     int i, nb_numa_nodes;
     NumaNodeMem *node_mem;
-    CpuInfoList *cpu_list, *cpu;
+    CpuInfoFastList *cpu_list, *cpu;
     MachineState *ms = MACHINE(qdev_get_machine());
 
     nb_numa_nodes = ms->numa_state ? ms->numa_state->num_nodes : 0;
@@ -139,7 +139,7 @@ void hmp_info_numa(Monitor *mon, const QDict *qdict)
         return;
     }
 
-    cpu_list = qmp_query_cpus(&error_abort);
+    cpu_list = qmp_query_cpus_fast(&error_abort);
     node_mem = g_new0(NumaNodeMem, nb_numa_nodes);
 
     query_numa_node_mem(node_mem, ms);
@@ -148,7 +148,7 @@ void hmp_info_numa(Monitor *mon, const QDict *qdict)
         for (cpu = cpu_list; cpu; cpu = cpu->next) {
             if (cpu->value->has_props && cpu->value->props->has_node_id &&
                 cpu->value->props->node_id == i) {
-                monitor_printf(mon, " %" PRIi64, cpu->value->CPU);
+                monitor_printf(mon, " %" PRIi64, cpu->value->cpu_index);
             }
         }
         monitor_printf(mon, "\n");
@@ -157,6 +157,6 @@ void hmp_info_numa(Monitor *mon, const QDict *qdict)
         monitor_printf(mon, "node %d plugged: %" PRId64 " MB\n", i,
                        node_mem[i].node_plugged_mem >> 20);
     }
-    qapi_free_CpuInfoList(cpu_list);
+    qapi_free_CpuInfoFastList(cpu_list);
     g_free(node_mem);
 }
diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c
index 44e979e503..af60cd969d 100644
--- a/hw/core/machine-qmp-cmds.c
+++ b/hw/core/machine-qmp-cmds.c
@@ -24,85 +24,6 @@
 #include "sysemu/runstate.h"
 #include "sysemu/sysemu.h"
 
-CpuInfoList *qmp_query_cpus(Error **errp)
-{
-    MachineState *ms = MACHINE(qdev_get_machine());
-    MachineClass *mc = MACHINE_GET_CLASS(ms);
-    CpuInfoList *head = NULL, **tail = &head;
-    CPUState *cpu;
-
-    CPU_FOREACH(cpu) {
-        CpuInfo *value;
-#if defined(TARGET_I386)
-        X86CPU *x86_cpu = X86_CPU(cpu);
-        CPUX86State *env = &x86_cpu->env;
-#elif defined(TARGET_PPC)
-        PowerPCCPU *ppc_cpu = POWERPC_CPU(cpu);
-        CPUPPCState *env = &ppc_cpu->env;
-#elif defined(TARGET_SPARC)
-        SPARCCPU *sparc_cpu = SPARC_CPU(cpu);
-        CPUSPARCState *env = &sparc_cpu->env;
-#elif defined(TARGET_RISCV)
-        RISCVCPU *riscv_cpu = RISCV_CPU(cpu);
-        CPURISCVState *env = &riscv_cpu->env;
-#elif defined(TARGET_MIPS)
-        MIPSCPU *mips_cpu = MIPS_CPU(cpu);
-        CPUMIPSState *env = &mips_cpu->env;
-#elif defined(TARGET_TRICORE)
-        TriCoreCPU *tricore_cpu = TRICORE_CPU(cpu);
-        CPUTriCoreState *env = &tricore_cpu->env;
-#elif defined(TARGET_S390X)
-        S390CPU *s390_cpu = S390_CPU(cpu);
-        CPUS390XState *env = &s390_cpu->env;
-#endif
-
-        cpu_synchronize_state(cpu);
-
-        value = g_malloc0(sizeof(*value));
-        value->CPU = cpu->cpu_index;
-        value->current = (cpu == first_cpu);
-        value->halted = cpu->halted;
-        value->qom_path = object_get_canonical_path(OBJECT(cpu));
-        value->thread_id = cpu->thread_id;
-#if defined(TARGET_I386)
-        value->arch = CPU_INFO_ARCH_X86;
-        value->u.x86.pc = env->eip + env->segs[R_CS].base;
-#elif defined(TARGET_PPC)
-        value->arch = CPU_INFO_ARCH_PPC;
-        value->u.ppc.nip = env->nip;
-#elif defined(TARGET_SPARC)
-        value->arch = CPU_INFO_ARCH_SPARC;
-        value->u.q_sparc.pc = env->pc;
-        value->u.q_sparc.npc = env->npc;
-#elif defined(TARGET_MIPS)
-        value->arch = CPU_INFO_ARCH_MIPS;
-        value->u.q_mips.PC = env->active_tc.PC;
-#elif defined(TARGET_TRICORE)
-        value->arch = CPU_INFO_ARCH_TRICORE;
-        value->u.tricore.PC = env->PC;
-#elif defined(TARGET_S390X)
-        value->arch = CPU_INFO_ARCH_S390;
-        value->u.s390.cpu_state = env->cpu_state;
-#elif defined(TARGET_RISCV)
-        value->arch = CPU_INFO_ARCH_RISCV;
-        value->u.riscv.pc = env->pc;
-#else
-        value->arch = CPU_INFO_ARCH_OTHER;
-#endif
-        value->has_props = !!mc->cpu_index_to_instance_props;
-        if (value->has_props) {
-            CpuInstanceProperties *props;
-            props = g_malloc0(sizeof(*props));
-            *props = mc->cpu_index_to_instance_props(ms, cpu->cpu_index);
-            value->props = props;
-        }
-
-        QAPI_LIST_APPEND(tail, value);
-    }
-
-    return head;
-}
-
 static CpuInfoArch sysemu_target_to_cpuinfo_arch(SysEmuTarget target)
 {
     /*
diff --git a/qapi/machine.json b/qapi/machine.json
index 330189efe3..9811927504 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -38,7 +38,7 @@
 # @CpuInfoArch:
 #
 # An enumeration of cpu types that enable additional information during
-# @query-cpus and @query-cpus-fast.
+# @query-cpus-fast.
 #
 # @s390: since 2.12
 #
@@ -49,114 +49,6 @@
 { 'enum': 'CpuInfoArch',
   'data': ['x86', 'sparc', 'ppc', 'mips', 'tricore', 's390', 'riscv', 'other' ] }
 
-##
-# @CpuInfo:
-#
-# Information about a virtual CPU
-#
-# @CPU: the index of the virtual CPU
-#
-# @current: this only exists for backwards compatibility and should be ignored
-#
-# @halted: true if the virtual CPU is in the halt state.  Halt usually refers
-#          to a processor specific low power mode.
-#
-# @qom_path: path to the CPU object in the QOM tree (since 2.4)
-#
-# @thread_id: ID of the underlying host thread
-#
-# @props: properties describing to which node/socket/core/thread
-#         virtual CPU belongs to, provided if supported by board (since 2.10)
-#
-# @arch: architecture of the cpu, which determines which additional fields
-#        will be listed (since 2.6)
-#
-# Since: 0.14
-#
-# Notes: @halted is a transient state that changes frequently.  By the time the
-#        data is sent to the client, the guest may no longer be halted.
-##
-{ 'union': 'CpuInfo',
-  'base': {'CPU': 'int', 'current': 'bool', 'halted': 'bool',
-           'qom_path': 'str', 'thread_id': 'int',
-           '*props': 'CpuInstanceProperties', 'arch': 'CpuInfoArch' },
-  'discriminator': 'arch',
-  'data': { 'x86': 'CpuInfoX86',
-            'sparc': 'CpuInfoSPARC',
-            'ppc': 'CpuInfoPPC',
-            'mips': 'CpuInfoMIPS',
-            'tricore': 'CpuInfoTricore',
-            's390': 'CpuInfoS390',
-            'riscv': 'CpuInfoRISCV' } }
-
-##
-# @CpuInfoX86:
-#
-# Additional information about a virtual i386 or x86_64 CPU
-#
-# @pc: the 64-bit instruction pointer
-#
-# Since: 2.6
-##
-{ 'struct': 'CpuInfoX86', 'data': { 'pc': 'int' } }
-
-##
-# @CpuInfoSPARC:
-#
-# Additional information about a virtual SPARC CPU
-#
-# @pc: the PC component of the instruction pointer
-#
-# @npc: the NPC component of the instruction pointer
-#
-# Since: 2.6
-##
-{ 'struct': 'CpuInfoSPARC', 'data': { 'pc': 'int', 'npc': 'int' } }
-
-##
-# @CpuInfoPPC:
-#
-# Additional information about a virtual PPC CPU
-#
-# @nip: the instruction pointer
-#
-# Since: 2.6
-##
-{ 'struct': 'CpuInfoPPC', 'data': { 'nip': 'int' } }
-
-##
-# @CpuInfoMIPS:
-#
-# Additional information about a virtual MIPS CPU
-#
-# @PC: the instruction pointer
-#
-# Since: 2.6
-##
-{ 'struct': 'CpuInfoMIPS', 'data': { 'PC': 'int' } }
-
-##
-# @CpuInfoTricore:
-#
-# Additional information about a virtual Tricore CPU
-#
-# @PC: the instruction pointer
-#
-# Since: 2.6
-##
-{ 'struct': 'CpuInfoTricore', 'data': { 'PC': 'int' } }
-
-##
-# @CpuInfoRISCV:
-#
-# Additional information about a virtual RISCV CPU
-#
-# @pc: the instruction pointer
-#
-# Since 2.12
-##
-{ 'struct': 'CpuInfoRISCV', 'data': { 'pc': 'int' } }
-
 ##
 # @CpuS390State:
 #
@@ -180,53 +72,6 @@
 ##
 { 'struct': 'CpuInfoS390', 'data': { 'cpu-state': 'CpuS390State' } }
 
-##
-# @query-cpus:
-#
-# Returns a list of information about each virtual CPU.
-#
-# This command causes vCPU threads to exit to userspace, which causes
-# a small interruption to guest CPU execution. This will have a negative
-# impact on realtime guests and other latency sensitive guest workloads.
-#
-# Features:
-# @deprecated: This command is deprecated, because it interferes with
-#              the guest.  Use 'query-cpus-fast' instead to avoid the vCPU
-#              interruption.
-#
-# Returns: a list of @CpuInfo for each virtual CPU
-#
-# Since: 0.14
-#
-# Example:
-#
-# -> { "execute": "query-cpus" }
-# <- { "return": [
-#          {
-#             "CPU":0,
-#             "current":true,
-#             "halted":false,
-#             "qom_path":"/machine/unattached/device[0]",
-#             "arch":"x86",
-#             "pc":3227107138,
-#             "thread_id":3134
-#          },
-#          {
-#             "CPU":1,
-#             "current":false,
-#             "halted":true,
-#             "qom_path":"/machine/unattached/device[2]",
-#             "arch":"x86",
-#             "pc":7108165,
-#             "thread_id":3135
-#          }
-#       ]
-#    }
-#
-##
-{ 'command': 'query-cpus', 'returns': ['CpuInfo'],
-  'features': [ 'deprecated' ] }
-
 ##
 # @CpuInfoFast:
 #
@@ -266,9 +111,7 @@
 ##
 # @query-cpus-fast:
 #
-# Returns information about all virtual CPUs. This command does not
-# incur a performance penalty and should be used in production
-# instead of query-cpus.
+# Returns information about all virtual CPUs.
 #
 # Returns: list of @CpuInfoFast
 #
diff --git a/tests/acceptance/pc_cpu_hotplug_props.py b/tests/acceptance/pc_cpu_hotplug_props.py
index e49bf33fc5..f48f68fc6b 100644
--- a/tests/acceptance/pc_cpu_hotplug_props.py
+++ b/tests/acceptance/pc_cpu_hotplug_props.py
@@ -32,4 +32,4 @@ def test_no_die_id(self):
         self.vm.add_args('-cpu', 'qemu64')
         self.vm.add_args('-device', 'qemu64-x86_64-cpu,socket-id=1,core-id=0,thread-id=0')
         self.vm.launch()
-        self.assertEquals(len(self.vm.command('query-cpus')), 2)
+        self.assertEquals(len(self.vm.command('query-cpus-fast')), 2)
diff --git a/tests/acceptance/x86_cpu_model_versions.py b/tests/acceptance/x86_cpu_model_versions.py
index 2b7461bb41..77ed8597a4 100644
--- a/tests/acceptance/x86_cpu_model_versions.py
+++ b/tests/acceptance/x86_cpu_model_versions.py
@@ -246,7 +246,7 @@ class CascadelakeArchCapabilities(avocado_qemu.Test):
     :avocado: tags=arch:x86_64
     """
     def get_cpu_prop(self, prop):
-        cpu_path = self.vm.command('query-cpus')[0].get('qom_path')
+        cpu_path = self.vm.command('query-cpus-fast')[0].get('qom-path')
         return self.vm.command('qom-get', path=cpu_path, property=prop)
 
     def test_4_1(self):
diff --git a/tests/migration/guestperf/engine.py b/tests/migration/guestperf/engine.py
index 5161e4ff81..5c965140f8 100644
--- a/tests/migration/guestperf/engine.py
+++ b/tests/migration/guestperf/engine.py
@@ -110,7 +110,7 @@ def _migrate(self, hardware, scenario, src, dst, connect_uri):
         src_vcpu_time = []
         src_pid = src.get_pid()
 
-        vcpus = src.command("query-cpus")
+        vcpus = src.command("query-cpus-fast")
         src_threads = []
         for vcpu in vcpus:
             src_threads.append(vcpu["thread_id"])
diff --git a/tests/qtest/numa-test.c b/tests/qtest/numa-test.c
index b25ebf97d8..dc0ec571ca 100644
--- a/tests/qtest/numa-test.c
+++ b/tests/qtest/numa-test.c
@@ -72,7 +72,7 @@ static void test_mon_partial(const void *data)
 
 static QList *get_cpus(QTestState *qts, QDict **resp)
 {
-    *resp = qtest_qmp(qts, "{ 'execute': 'query-cpus' }");
+    *resp = qtest_qmp(qts, "{ 'execute': 'query-cpus-fast' }");
     g_assert(*resp);
     g_assert(qdict_haskey(*resp, "return"));
     return qdict_get_qlist(*resp, "return");
@@ -97,10 +97,10 @@ static void test_query_cpus(const void *data)
         int64_t cpu_idx, node;
 
         cpu = qobject_to(QDict, e);
-        g_assert(qdict_haskey(cpu, "CPU"));
+        g_assert(qdict_haskey(cpu, "cpu-index"));
         g_assert(qdict_haskey(cpu, "props"));
 
-        cpu_idx = qdict_get_int(cpu, "CPU");
+        cpu_idx = qdict_get_int(cpu, "cpu-index");
         props = qdict_get_qdict(cpu, "props");
         g_assert(qdict_haskey(props, "node-id"));
         node = qdict_get_int(props, "node-id");
diff --git a/tests/qtest/qmp-test.c b/tests/qtest/qmp-test.c
index 11614bf63f..cd27fae3de 100644
--- a/tests/qtest/qmp-test.c
+++ b/tests/qtest/qmp-test.c
@@ -252,7 +252,7 @@ static void test_qmp_oob(void)
      * Try any command that does not support OOB but with OOB flag. We
      * should get failure.
      */
-    resp = qtest_qmp(qts, "{ 'exec-oob': 'query-cpus' }");
+    resp = qtest_qmp(qts, "{ 'exec-oob': 'query-cpus-fast' }");
     g_assert(qdict_haskey(resp, "error"));
     qobject_unref(resp);
 
@@ -289,7 +289,7 @@ static void test_qmp_preconfig(void)
     g_assert(!qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'query-commands' }")));
 
     /* forbidden commands, expected error */
-    g_assert(qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'query-cpus' }")));
+    g_assert(qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'query-cpus-fast' }")));
 
     /* check that query-status returns preconfig state */
     rsp = qtest_qmp(qs, "{ 'execute': 'query-status' }");
@@ -313,7 +313,7 @@ static void test_qmp_preconfig(void)
     g_assert(qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'x-exit-preconfig' }")));
 
     /* enabled commands, no error expected  */
-    g_assert(!qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'query-cpus' }")));
+    g_assert(!qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'query-cpus-fast' }")));
 
     qtest_quit(qs);
 }
diff --git a/tests/qtest/test-x86-cpuid-compat.c b/tests/qtest/test-x86-cpuid-compat.c
index 7ca1883a29..2ac169faf0 100644
--- a/tests/qtest/test-x86-cpuid-compat.c
+++ b/tests/qtest/test-x86-cpuid-compat.c
@@ -13,12 +13,12 @@ static char *get_cpu0_qom_path(void)
     QDict *cpu0;
     char *path;
 
-    resp = qmp("{'execute': 'query-cpus', 'arguments': {}}");
+    resp = qmp("{'execute': 'query-cpus-fast', 'arguments': {}}");
     g_assert(qdict_haskey(resp, "return"));
     ret = qdict_get_qlist(resp, "return");
 
     cpu0 = qobject_to(QDict, qlist_peek(ret));
-    path = g_strdup(qdict_get_str(cpu0, "qom_path"));
+    path = g_strdup(qdict_get_str(cpu0, "qom-path"));
     qobject_unref(resp);
     return path;
 }
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 07/14] machine: remove 'arch' field from 'query-cpus-fast' QMP command
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (5 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 06/14] machine: remove 'query-cpus' QMP command Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-03-15 11:51   ` Daniel P. Berrangé
  2021-03-15 11:54   ` Thomas Huth
  2021-02-24 13:11 ` [PATCH 08/14] chardev: reject use of 'wait' flag for socket client chardevs Daniel P. Berrangé
                   ` (9 subsequent siblings)
  16 siblings, 2 replies; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 docs/system/deprecated.rst       |  6 -----
 docs/system/removed-features.rst |  6 +++++
 hw/core/machine-qmp-cmds.c       | 41 --------------------------------
 qapi/machine.json                | 22 -----------------
 4 files changed, 6 insertions(+), 69 deletions(-)

diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 484f017119..78474f0845 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -192,12 +192,6 @@ Since the ``dirty-bitmaps`` field is optionally present in both the old and
 new locations, clients must use introspection to learn where to anticipate
 the field if/when it does appear in command output.
 
-``query-cpus-fast`` ``arch`` output member (since 3.0.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-The ``arch`` output member of the ``query-cpus-fast`` command is
-replaced by the ``target`` output member.
-
 chardev client socket with ``wait`` option (since 4.0)
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index ad146daf9b..7942c2e513 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -100,6 +100,12 @@ Use ``migrate_set_parameter`` instead.
 
 The ``query-cpus`` command is replaced by the ``query-cpus-fast`` command.
 
+``query-cpus-fast`` ``arch`` output member (removed in 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+The ``arch`` output member of the ``query-cpus-fast`` command is
+replaced by the ``target`` output member.
+
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c
index af60cd969d..68a942595a 100644
--- a/hw/core/machine-qmp-cmds.c
+++ b/hw/core/machine-qmp-cmds.c
@@ -24,46 +24,6 @@
 #include "sysemu/runstate.h"
 #include "sysemu/sysemu.h"
 
-static CpuInfoArch sysemu_target_to_cpuinfo_arch(SysEmuTarget target)
-{
-    /*
-     * The @SysEmuTarget -> @CpuInfoArch mapping below is based on the
-     * TARGET_ARCH -> TARGET_BASE_ARCH mapping in the "configure" script.
-     */
-    switch (target) {
-    case SYS_EMU_TARGET_I386:
-    case SYS_EMU_TARGET_X86_64:
-        return CPU_INFO_ARCH_X86;
-
-    case SYS_EMU_TARGET_PPC:
-    case SYS_EMU_TARGET_PPC64:
-        return CPU_INFO_ARCH_PPC;
-
-    case SYS_EMU_TARGET_SPARC:
-    case SYS_EMU_TARGET_SPARC64:
-        return CPU_INFO_ARCH_SPARC;
-
-    case SYS_EMU_TARGET_MIPS:
-    case SYS_EMU_TARGET_MIPSEL:
-    case SYS_EMU_TARGET_MIPS64:
-    case SYS_EMU_TARGET_MIPS64EL:
-        return CPU_INFO_ARCH_MIPS;
-
-    case SYS_EMU_TARGET_TRICORE:
-        return CPU_INFO_ARCH_TRICORE;
-
-    case SYS_EMU_TARGET_S390X:
-        return CPU_INFO_ARCH_S390;
-
-    case SYS_EMU_TARGET_RISCV32:
-    case SYS_EMU_TARGET_RISCV64:
-        return CPU_INFO_ARCH_RISCV;
-
-    default:
-        return CPU_INFO_ARCH_OTHER;
-    }
-}
-
 static void cpustate_to_cpuinfo_s390(CpuInfoS390 *info, const CPUState *cpu)
 {
 #ifdef TARGET_S390X
@@ -104,7 +64,6 @@ CpuInfoFastList *qmp_query_cpus_fast(Error **errp)
             value->props = props;
         }
 
-        value->arch = sysemu_target_to_cpuinfo_arch(target);
         value->target = target;
         if (target == SYS_EMU_TARGET_S390X) {
             cpustate_to_cpuinfo_s390(&value->u.s390x, cpu);
diff --git a/qapi/machine.json b/qapi/machine.json
index 9811927504..c0c52aef10 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -34,21 +34,6 @@
              'sh4eb', 'sparc', 'sparc64', 'tricore', 'unicore32',
              'x86_64', 'xtensa', 'xtensaeb' ] }
 
-##
-# @CpuInfoArch:
-#
-# An enumeration of cpu types that enable additional information during
-# @query-cpus-fast.
-#
-# @s390: since 2.12
-#
-# @riscv: since 2.12
-#
-# Since: 2.6
-##
-{ 'enum': 'CpuInfoArch',
-  'data': ['x86', 'sparc', 'ppc', 'mips', 'tricore', 's390', 'riscv', 'other' ] }
-
 ##
 # @CpuS390State:
 #
@@ -86,14 +71,9 @@
 # @props: properties describing to which node/socket/core/thread
 #         virtual CPU belongs to, provided if supported by board
 #
-# @arch: base architecture of the cpu
-#
 # @target: the QEMU system emulation target, which determines which
 #          additional fields will be listed (since 3.0)
 #
-# Features:
-# @deprecated: Member @arch is deprecated.  Use @target instead.
-#
 # Since: 2.12
 #
 ##
@@ -102,8 +82,6 @@
                       'qom-path'     : 'str',
                       'thread-id'    : 'int',
                       '*props'       : 'CpuInstanceProperties',
-                      'arch'         : { 'type': 'CpuInfoArch',
-                                         'features': [ 'deprecated' ] },
                       'target'       : 'SysEmuTarget' },
   'discriminator' : 'target',
   'data'          : { 's390x'        : 'CpuInfoS390' } }
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 08/14] chardev: reject use of 'wait' flag for socket client chardevs
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (6 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 07/14] machine: remove 'arch' field from 'query-cpus-fast' " Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-02-24 13:17   ` Marc-André Lureau
  2021-02-24 13:11 ` [PATCH 09/14] hw/ide: remove 'ide-drive' device Daniel P. Berrangé
                   ` (8 subsequent siblings)
  16 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

This only makes sense conceptually when used with listener chardevs.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 chardev/char-socket.c            | 12 ++++--------
 docs/system/deprecated.rst       |  6 ------
 docs/system/removed-features.rst |  6 ++++++
 3 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/chardev/char-socket.c b/chardev/char-socket.c
index 9061981f6d..b24618b581 100644
--- a/chardev/char-socket.c
+++ b/chardev/char-socket.c
@@ -1336,14 +1336,10 @@ static bool qmp_chardev_validate_socket(ChardevSocket *sock,
             return false;
         }
         if (sock->has_wait) {
-            warn_report("'wait' option is deprecated with "
-                        "socket in client connect mode");
-            if (sock->wait) {
-                error_setg(errp, "%s",
-                           "'wait' option is incompatible with "
-                           "socket in client connect mode");
-                return false;
-            }
+            error_setg(errp, "%s",
+                       "'wait' option is incompatible with "
+                       "socket in client connect mode");
+            return false;
         }
     }
 
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index 78474f0845..c69887dca8 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -192,12 +192,6 @@ Since the ``dirty-bitmaps`` field is optionally present in both the old and
 new locations, clients must use introspection to learn where to anticipate
 the field if/when it does appear in command output.
 
-chardev client socket with ``wait`` option (since 4.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Character devices creating sockets in client mode should not specify
-the 'wait' field, which is only applicable to sockets in server mode
-
 ``nbd-server-add`` and ``nbd-server-remove`` (since 5.2)
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 7942c2e513..870a222062 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -106,6 +106,12 @@ The ``query-cpus`` command is replaced by the ``query-cpus-fast`` command.
 The ``arch`` output member of the ``query-cpus-fast`` command is
 replaced by the ``target`` output member.
 
+chardev client socket with ``wait`` option (removed in 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Character devices creating sockets in client mode should not specify
+the 'wait' field, which is only applicable to sockets in server mode
+
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 09/14] hw/ide: remove 'ide-drive' device
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (7 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 08/14] chardev: reject use of 'wait' flag for socket client chardevs Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-02-24 14:19   ` Thomas Huth
  2021-02-24 13:11 ` [PATCH 10/14] hw/scsi: remove 'scsi-disk' device Daniel P. Berrangé
                   ` (7 subsequent siblings)
  16 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

The 'ide-hd' and 'ide-cd' devices provide suitable alternatives.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 docs/qdev-device-use.txt         |  2 +-
 docs/system/deprecated.rst       |  6 -----
 docs/system/removed-features.rst |  9 ++++++++
 hw/i386/pc.c                     |  1 -
 hw/ide/qdev.c                    | 38 --------------------------------
 hw/ppc/mac_newworld.c            | 13 -----------
 hw/ppc/mac_oldworld.c            | 13 -----------
 hw/sparc64/sun4u.c               | 14 ------------
 scripts/device-crash-test        |  1 -
 softmmu/vl.c                     |  1 -
 tests/qemu-iotests/051           |  2 --
 tests/qemu-iotests/051.pc.out    | 10 ---------
 12 files changed, 10 insertions(+), 100 deletions(-)

diff --git a/docs/qdev-device-use.txt b/docs/qdev-device-use.txt
index 245cdf29c7..2408889334 100644
--- a/docs/qdev-device-use.txt
+++ b/docs/qdev-device-use.txt
@@ -388,7 +388,7 @@ type.
 some DEVNAMEs:
 
     default device      suppressing DEVNAMEs
-    CD-ROM              ide-cd, ide-drive, ide-hd, scsi-cd, scsi-hd
+    CD-ROM              ide-cd, ide-hd, scsi-cd, scsi-hd
     floppy              floppy, isa-fdc
     parallel            isa-parallel
     serial              isa-serial
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index c69887dca8..f5c82a46dc 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -242,12 +242,6 @@ this CPU is also deprecated.
 System emulator devices
 -----------------------
 
-``ide-drive`` (since 4.2)
-'''''''''''''''''''''''''
-
-The 'ide-drive' device is deprecated. Users should use 'ide-hd' or
-'ide-cd' as appropriate to get an IDE hard disk or CD-ROM as needed.
-
 ``scsi-disk`` (since 4.2)
 '''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 870a222062..8fd3fafb32 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -213,6 +213,15 @@ This machine has been renamed ``fuloong2e``.
 These machine types were very old and likely could not be used for live
 migration from old QEMU versions anymore. Use a newer machine type instead.
 
+System emulator devices
+-----------------------
+
+``ide-drive`` (removed in 6.0)
+''''''''''''''''''''''''''''''
+
+The 'ide-drive' device has been removed. Users should use 'ide-hd' or
+'ide-cd' as appropriate to get an IDE hard disk or CD-ROM as needed.
+
 Related binaries
 ----------------
 
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 8aa85dec54..828122e21e 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -342,7 +342,6 @@ GlobalProperty pc_compat_1_4[] = {
     { "scsi-disk", "discard_granularity", "0" },
     { "ide-hd", "discard_granularity", "0" },
     { "ide-cd", "discard_granularity", "0" },
-    { "ide-drive", "discard_granularity", "0" },
     { "virtio-blk-pci", "discard_granularity", "0" },
     /* DEV_NVECTORS_UNSPECIFIED as a uint32_t string: */
     { "virtio-serial-pci", "vectors", "0xFFFFFFFF" },
diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
index 8cd19fa5e9..e70ebc83a0 100644
--- a/hw/ide/qdev.c
+++ b/hw/ide/qdev.c
@@ -283,20 +283,6 @@ static void ide_cd_realize(IDEDevice *dev, Error **errp)
     ide_dev_initfn(dev, IDE_CD, errp);
 }
 
-static void ide_drive_realize(IDEDevice *dev, Error **errp)
-{
-    DriveInfo *dinfo = NULL;
-
-    warn_report("'ide-drive' is deprecated, "
-                "please use 'ide-hd' or 'ide-cd' instead");
-
-    if (dev->conf.blk) {
-        dinfo = blk_legacy_dinfo(dev->conf.blk);
-    }
-
-    ide_dev_initfn(dev, dinfo && dinfo->media_cd ? IDE_CD : IDE_HD, errp);
-}
-
 #define DEFINE_IDE_DEV_PROPERTIES()                     \
     DEFINE_BLOCK_PROPERTIES(IDEDrive, dev.conf),        \
     DEFINE_BLOCK_ERROR_PROPERTIES(IDEDrive, dev.conf),  \
@@ -355,29 +341,6 @@ static const TypeInfo ide_cd_info = {
     .class_init    = ide_cd_class_init,
 };
 
-static Property ide_drive_properties[] = {
-    DEFINE_IDE_DEV_PROPERTIES(),
-    DEFINE_PROP_END_OF_LIST(),
-};
-
-static void ide_drive_class_init(ObjectClass *klass, void *data)
-{
-    DeviceClass *dc = DEVICE_CLASS(klass);
-    IDEDeviceClass *k = IDE_DEVICE_CLASS(klass);
-
-    k->realize  = ide_drive_realize;
-    dc->fw_name = "drive";
-    dc->desc    = "virtual IDE disk or CD-ROM (legacy)";
-    device_class_set_props(dc, ide_drive_properties);
-}
-
-static const TypeInfo ide_drive_info = {
-    .name          = "ide-drive",
-    .parent        = TYPE_IDE_DEVICE,
-    .instance_size = sizeof(IDEDrive),
-    .class_init    = ide_drive_class_init,
-};
-
 static void ide_device_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *k = DEVICE_CLASS(klass);
@@ -402,7 +365,6 @@ static void ide_register_types(void)
     type_register_static(&ide_bus_info);
     type_register_static(&ide_hd_info);
     type_register_static(&ide_cd_info);
-    type_register_static(&ide_drive_info);
     type_register_static(&ide_device_type_info);
 }
 
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index e991db4add..2175962846 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -539,8 +539,6 @@ static char *core99_fw_dev_path(FWPathProvider *p, BusState *bus,
                                 DeviceState *dev)
 {
     PCIDevice *pci;
-    IDEBus *ide_bus;
-    IDEState *ide_s;
     MACIOIDEState *macio_ide;
 
     if (!strcmp(object_get_typename(OBJECT(dev)), "macio-newworld")) {
@@ -553,17 +551,6 @@ static char *core99_fw_dev_path(FWPathProvider *p, BusState *bus,
         return g_strdup_printf("ata-3@%x", macio_ide->addr);
     }
 
-    if (!strcmp(object_get_typename(OBJECT(dev)), "ide-drive")) {
-        ide_bus = IDE_BUS(qdev_get_parent_bus(dev));
-        ide_s = idebus_active_if(ide_bus);
-
-        if (ide_s->drive_kind == IDE_CD) {
-            return g_strdup("cdrom");
-        }
-
-        return g_strdup("disk");
-    }
-
     if (!strcmp(object_get_typename(OBJECT(dev)), "ide-hd")) {
         return g_strdup("disk");
     }
diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
index 44ee99be88..963d247f5f 100644
--- a/hw/ppc/mac_oldworld.c
+++ b/hw/ppc/mac_oldworld.c
@@ -384,8 +384,6 @@ static char *heathrow_fw_dev_path(FWPathProvider *p, BusState *bus,
                                   DeviceState *dev)
 {
     PCIDevice *pci;
-    IDEBus *ide_bus;
-    IDEState *ide_s;
     MACIOIDEState *macio_ide;
 
     if (!strcmp(object_get_typename(OBJECT(dev)), "macio-oldworld")) {
@@ -398,17 +396,6 @@ static char *heathrow_fw_dev_path(FWPathProvider *p, BusState *bus,
         return g_strdup_printf("ata-3@%x", macio_ide->addr);
     }
 
-    if (!strcmp(object_get_typename(OBJECT(dev)), "ide-drive")) {
-        ide_bus = IDE_BUS(qdev_get_parent_bus(dev));
-        ide_s = idebus_active_if(ide_bus);
-
-        if (ide_s->drive_kind == IDE_CD) {
-            return g_strdup("cdrom");
-        }
-
-        return g_strdup("disk");
-    }
-
     if (!strcmp(object_get_typename(OBJECT(dev)), "ide-hd")) {
         return g_strdup("disk");
     }
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index 0fa13a7330..d7c27144ba 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -749,8 +749,6 @@ static char *sun4u_fw_dev_path(FWPathProvider *p, BusState *bus,
                                DeviceState *dev)
 {
     PCIDevice *pci;
-    IDEBus *ide_bus;
-    IDEState *ide_s;
     int bus_id;
 
     if (!strcmp(object_get_typename(OBJECT(dev)), "pbm-bridge")) {
@@ -764,18 +762,6 @@ static char *sun4u_fw_dev_path(FWPathProvider *p, BusState *bus,
         }
     }
 
-    if (!strcmp(object_get_typename(OBJECT(dev)), "ide-drive")) {
-         ide_bus = IDE_BUS(qdev_get_parent_bus(dev));
-         ide_s = idebus_active_if(ide_bus);
-         bus_id = ide_bus->bus_id;
-
-         if (ide_s->drive_kind == IDE_CD) {
-             return g_strdup_printf("ide@%x/cdrom", bus_id);
-         }
-
-         return g_strdup_printf("ide@%x/disk", bus_id);
-    }
-
     if (!strcmp(object_get_typename(OBJECT(dev)), "ide-hd")) {
         return g_strdup("disk");
     }
diff --git a/scripts/device-crash-test b/scripts/device-crash-test
index ef1412ca59..3981209165 100755
--- a/scripts/device-crash-test
+++ b/scripts/device-crash-test
@@ -76,7 +76,6 @@ ERROR_RULE_LIST = [
     {'device':'ics', 'expected':True},                     # ics_base_realize: required link 'xics' not found: Property '.xics' not found
     # "-device ide-cd" does work on more recent QEMU versions, so it doesn't have expected=True
     {'device':'ide-cd'},                                 # No drive specified
-    {'device':'ide-drive', 'expected':True},               # No drive specified
     {'device':'ide-hd', 'expected':True},                  # No drive specified
     {'device':'ipmi-bmc-extern', 'expected':True},         # IPMI external bmc requires chardev attribute
     {'device':'isa-debugcon', 'expected':True},            # Can't create serial device, empty char device
diff --git a/softmmu/vl.c b/softmmu/vl.c
index c31061cc09..fdabf68433 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -177,7 +177,6 @@ static struct {
     { .driver = "floppy",               .flag = &default_floppy    },
     { .driver = "ide-cd",               .flag = &default_cdrom     },
     { .driver = "ide-hd",               .flag = &default_cdrom     },
-    { .driver = "ide-drive",            .flag = &default_cdrom     },
     { .driver = "scsi-cd",              .flag = &default_cdrom     },
     { .driver = "scsi-hd",              .flag = &default_cdrom     },
     { .driver = "VGA",                  .flag = &default_vga       },
diff --git a/tests/qemu-iotests/051 b/tests/qemu-iotests/051
index 7cbd1415ce..8b334fe41d 100755
--- a/tests/qemu-iotests/051
+++ b/tests/qemu-iotests/051
@@ -185,7 +185,6 @@ case "$QEMU_DEFAULT_MACHINE" in
     pc)
         run_qemu -drive if=none,id=disk -device ide-cd,drive=disk
         run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-cd,drive=disk
-        run_qemu -drive if=none,id=disk -device ide-drive,drive=disk
         run_qemu -drive if=none,id=disk -device ide-hd,drive=disk
         run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-disk,drive=disk
         run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-hd,drive=disk
@@ -238,7 +237,6 @@ case "$QEMU_DEFAULT_MACHINE" in
     pc)
         run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device ide-cd,drive=disk
         run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device lsi53c895a -device scsi-cd,drive=disk
-        run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device ide-drive,drive=disk
         run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device ide-hd,drive=disk
         run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device lsi53c895a -device scsi-disk,drive=disk
         run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device lsi53c895a -device scsi-hd,drive=disk
diff --git a/tests/qemu-iotests/051.pc.out b/tests/qemu-iotests/051.pc.out
index f707471fb0..2e23a4caa0 100644
--- a/tests/qemu-iotests/051.pc.out
+++ b/tests/qemu-iotests/051.pc.out
@@ -156,11 +156,6 @@ Testing: -drive if=none,id=disk -device lsi53c895a -device scsi-cd,drive=disk
 QEMU X.Y.Z monitor - type 'help' for more information
 (qemu) quit
 
-Testing: -drive if=none,id=disk -device ide-drive,drive=disk
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) QEMU_PROG: -device ide-drive,drive=disk: warning: 'ide-drive' is deprecated, please use 'ide-hd' or 'ide-cd' instead
-QEMU_PROG: -device ide-drive,drive=disk: Device needs media, but drive is empty
-
 Testing: -drive if=none,id=disk -device ide-hd,drive=disk
 QEMU X.Y.Z monitor - type 'help' for more information
 (qemu) QEMU_PROG: -device ide-hd,drive=disk: Device needs media, but drive is empty
@@ -228,11 +223,6 @@ Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device lsi53c
 QEMU X.Y.Z monitor - type 'help' for more information
 (qemu) quit
 
-Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device ide-drive,drive=disk
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) QEMU_PROG: -device ide-drive,drive=disk: warning: 'ide-drive' is deprecated, please use 'ide-hd' or 'ide-cd' instead
-QEMU_PROG: -device ide-drive,drive=disk: Block node is read-only
-
 Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device ide-hd,drive=disk
 QEMU X.Y.Z monitor - type 'help' for more information
 (qemu) QEMU_PROG: -device ide-hd,drive=disk: Block node is read-only
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 10/14] hw/scsi: remove 'scsi-disk' device
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (8 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 09/14] hw/ide: remove 'ide-drive' device Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-02-24 14:26   ` Thomas Huth
  2021-03-15 12:21   ` Thomas Huth
  2021-02-24 13:11 ` [PATCH 11/14] block: remove 'encryption_key_missing' flag from QAPI Daniel P. Berrangé
                   ` (6 subsequent siblings)
  16 siblings, 2 replies; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

The 'scsi-hd' and 'scsi-cd' devices provide suitable alternatives.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 docs/system/deprecated.rst       |  9 -----
 docs/system/removed-features.rst |  6 ++++
 hw/i386/pc.c                     |  1 -
 hw/scsi/scsi-disk.c              | 62 --------------------------------
 hw/sparc64/sun4u.c               |  1 -
 scripts/device-crash-test        |  1 -
 tests/qemu-iotests/051           |  2 --
 tests/qemu-iotests/051.pc.out    | 10 ------
 8 files changed, 6 insertions(+), 86 deletions(-)

diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index f5c82a46dc..cb88fea94f 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -239,15 +239,6 @@ The ``I7200`` guest CPU relies on the nanoMIPS ISA, which is deprecated
 (the ISA has never been upstreamed to a compiler toolchain). Therefore
 this CPU is also deprecated.
 
-System emulator devices
------------------------
-
-``scsi-disk`` (since 4.2)
-'''''''''''''''''''''''''
-
-The 'scsi-disk' device is deprecated. Users should use 'scsi-hd' or
-'scsi-cd' as appropriate to get a SCSI hard disk or CD-ROM as needed.
-
 System emulator machines
 ------------------------
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 8fd3fafb32..bb6bc8dfc8 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -222,6 +222,12 @@ System emulator devices
 The 'ide-drive' device has been removed. Users should use 'ide-hd' or
 'ide-cd' as appropriate to get an IDE hard disk or CD-ROM as needed.
 
+``scsi-disk`` (removed in 6.0)
+''''''''''''''''''''''''''''''
+
+The 'scsi-disk' device is deprecated. Users should use 'scsi-hd' or
+'scsi-cd' as appropriate to get a SCSI hard disk or CD-ROM as needed.
+
 Related binaries
 ----------------
 
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 828122e21e..28a77df0d0 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -339,7 +339,6 @@ GlobalProperty pc_compat_1_4[] = {
     PC_CPU_MODEL_IDS("1.4.0")
     { "scsi-hd", "discard_granularity", "0" },
     { "scsi-cd", "discard_granularity", "0" },
-    { "scsi-disk", "discard_granularity", "0" },
     { "ide-hd", "discard_granularity", "0" },
     { "ide-cd", "discard_granularity", "0" },
     { "virtio-blk-pci", "discard_granularity", "0" },
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index ed52fcd49f..2c8f68d3f0 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -2490,28 +2490,6 @@ static void scsi_cd_realize(SCSIDevice *dev, Error **errp)
     aio_context_release(ctx);
 }
 
-static void scsi_disk_realize(SCSIDevice *dev, Error **errp)
-{
-    DriveInfo *dinfo;
-    Error *local_err = NULL;
-
-    warn_report("'scsi-disk' is deprecated, "
-                "please use 'scsi-hd' or 'scsi-cd' instead");
-
-    if (!dev->conf.blk) {
-        scsi_realize(dev, &local_err);
-        assert(local_err);
-        error_propagate(errp, local_err);
-        return;
-    }
-
-    dinfo = blk_legacy_dinfo(dev->conf.blk);
-    if (dinfo && dinfo->media_cd) {
-        scsi_cd_realize(dev, errp);
-    } else {
-        scsi_hd_realize(dev, errp);
-    }
-}
 
 static const SCSIReqOps scsi_disk_emulate_reqops = {
     .size         = sizeof(SCSIDiskReq),
@@ -3131,45 +3109,6 @@ static const TypeInfo scsi_block_info = {
 };
 #endif
 
-static Property scsi_disk_properties[] = {
-    DEFINE_SCSI_DISK_PROPERTIES(),
-    DEFINE_PROP_BIT("removable", SCSIDiskState, features,
-                    SCSI_DISK_F_REMOVABLE, false),
-    DEFINE_PROP_BIT("dpofua", SCSIDiskState, features,
-                    SCSI_DISK_F_DPOFUA, false),
-    DEFINE_PROP_UINT64("wwn", SCSIDiskState, qdev.wwn, 0),
-    DEFINE_PROP_UINT64("port_wwn", SCSIDiskState, qdev.port_wwn, 0),
-    DEFINE_PROP_UINT16("port_index", SCSIDiskState, port_index, 0),
-    DEFINE_PROP_UINT64("max_unmap_size", SCSIDiskState, max_unmap_size,
-                       DEFAULT_MAX_UNMAP_SIZE),
-    DEFINE_PROP_UINT64("max_io_size", SCSIDiskState, max_io_size,
-                       DEFAULT_MAX_IO_SIZE),
-    DEFINE_PROP_INT32("scsi_version", SCSIDiskState, qdev.default_scsi_version,
-                      5),
-    DEFINE_PROP_END_OF_LIST(),
-};
-
-static void scsi_disk_class_initfn(ObjectClass *klass, void *data)
-{
-    DeviceClass *dc = DEVICE_CLASS(klass);
-    SCSIDeviceClass *sc = SCSI_DEVICE_CLASS(klass);
-
-    sc->realize      = scsi_disk_realize;
-    sc->alloc_req    = scsi_new_request;
-    sc->unit_attention_reported = scsi_disk_unit_attention_reported;
-    dc->fw_name = "disk";
-    dc->desc = "virtual SCSI disk or CD-ROM (legacy)";
-    dc->reset = scsi_disk_reset;
-    device_class_set_props(dc, scsi_disk_properties);
-    dc->vmsd  = &vmstate_scsi_disk_state;
-}
-
-static const TypeInfo scsi_disk_info = {
-    .name          = "scsi-disk",
-    .parent        = TYPE_SCSI_DISK_BASE,
-    .class_init    = scsi_disk_class_initfn,
-};
-
 static void scsi_disk_register_types(void)
 {
     type_register_static(&scsi_disk_base_info);
@@ -3178,7 +3117,6 @@ static void scsi_disk_register_types(void)
 #ifdef __linux__
     type_register_static(&scsi_block_info);
 #endif
-    type_register_static(&scsi_disk_info);
 }
 
 type_init(scsi_disk_register_types)
diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
index d7c27144ba..cda7df36e3 100644
--- a/hw/sparc64/sun4u.c
+++ b/hw/sparc64/sun4u.c
@@ -749,7 +749,6 @@ static char *sun4u_fw_dev_path(FWPathProvider *p, BusState *bus,
                                DeviceState *dev)
 {
     PCIDevice *pci;
-    int bus_id;
 
     if (!strcmp(object_get_typename(OBJECT(dev)), "pbm-bridge")) {
         pci = PCI_DEVICE(dev);
diff --git a/scripts/device-crash-test b/scripts/device-crash-test
index 3981209165..6d809ac711 100755
--- a/scripts/device-crash-test
+++ b/scripts/device-crash-test
@@ -93,7 +93,6 @@ ERROR_RULE_LIST = [
     {'device':'pci-bridge-seat', 'expected':True},         # Bridge chassis not specified. Each bridge is required to be assigned a unique chassis id > 0.
     {'device':'pxb', 'expected':True},                     # Bridge chassis not specified. Each bridge is required to be assigned a unique chassis id > 0.
     {'device':'scsi-block', 'expected':True},              # drive property not set
-    {'device':'scsi-disk', 'expected':True},               # drive property not set
     {'device':'scsi-generic', 'expected':True},            # drive property not set
     {'device':'scsi-hd', 'expected':True},                 # drive property not set
     {'device':'spapr-pci-host-bridge', 'expected':True},   # BUID not specified for PHB
diff --git a/tests/qemu-iotests/051 b/tests/qemu-iotests/051
index 8b334fe41d..f92161d8ef 100755
--- a/tests/qemu-iotests/051
+++ b/tests/qemu-iotests/051
@@ -186,7 +186,6 @@ case "$QEMU_DEFAULT_MACHINE" in
         run_qemu -drive if=none,id=disk -device ide-cd,drive=disk
         run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-cd,drive=disk
         run_qemu -drive if=none,id=disk -device ide-hd,drive=disk
-        run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-disk,drive=disk
         run_qemu -drive if=none,id=disk -device lsi53c895a -device scsi-hd,drive=disk
         ;;
      *)
@@ -238,7 +237,6 @@ case "$QEMU_DEFAULT_MACHINE" in
         run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device ide-cd,drive=disk
         run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device lsi53c895a -device scsi-cd,drive=disk
         run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device ide-hd,drive=disk
-        run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device lsi53c895a -device scsi-disk,drive=disk
         run_qemu -drive file="$TEST_IMG",if=none,id=disk,readonly=on -device lsi53c895a -device scsi-hd,drive=disk
         ;;
      *)
diff --git a/tests/qemu-iotests/051.pc.out b/tests/qemu-iotests/051.pc.out
index 2e23a4caa0..845fe0149f 100644
--- a/tests/qemu-iotests/051.pc.out
+++ b/tests/qemu-iotests/051.pc.out
@@ -160,11 +160,6 @@ Testing: -drive if=none,id=disk -device ide-hd,drive=disk
 QEMU X.Y.Z monitor - type 'help' for more information
 (qemu) QEMU_PROG: -device ide-hd,drive=disk: Device needs media, but drive is empty
 
-Testing: -drive if=none,id=disk -device lsi53c895a -device scsi-disk,drive=disk
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) QEMU_PROG: -device scsi-disk,drive=disk: warning: 'scsi-disk' is deprecated, please use 'scsi-hd' or 'scsi-cd' instead
-QEMU_PROG: -device scsi-disk,drive=disk: Device needs media, but drive is empty
-
 Testing: -drive if=none,id=disk -device lsi53c895a -device scsi-hd,drive=disk
 QEMU X.Y.Z monitor - type 'help' for more information
 (qemu) QEMU_PROG: -device scsi-hd,drive=disk: Device needs media, but drive is empty
@@ -227,11 +222,6 @@ Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device ide-hd
 QEMU X.Y.Z monitor - type 'help' for more information
 (qemu) QEMU_PROG: -device ide-hd,drive=disk: Block node is read-only
 
-Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-disk,drive=disk
-QEMU X.Y.Z monitor - type 'help' for more information
-(qemu) QEMU_PROG: -device scsi-disk,drive=disk: warning: 'scsi-disk' is deprecated, please use 'scsi-hd' or 'scsi-cd' instead
-quit
-
 Testing: -drive file=TEST_DIR/t.qcow2,if=none,id=disk,readonly=on -device lsi53c895a -device scsi-hd,drive=disk
 QEMU X.Y.Z monitor - type 'help' for more information
 (qemu) quit
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 11/14] block: remove 'encryption_key_missing' flag from QAPI
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (9 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 10/14] hw/scsi: remove 'scsi-disk' device Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-02-24 15:01   ` Thomas Huth
  2021-02-24 13:11 ` [PATCH 12/14] block: remove dirty bitmaps 'status' field Daniel P. Berrangé
                   ` (5 subsequent siblings)
  16 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

This has been hardcoded to "false" since 2.10.0, since secrets required
to unlock block devices are now always provided upfront instead of using
interactive prompts.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 block/qapi.c                     |  1 -
 docs/system/deprecated.rst       | 10 -------
 docs/system/removed-features.rst | 10 +++++++
 qapi/block-core.json             |  8 ------
 tests/qemu-iotests/184.out       |  6 ++--
 tests/qemu-iotests/191.out       | 48 +++++++++++---------------------
 tests/qemu-iotests/273.out       | 15 ++++------
 7 files changed, 33 insertions(+), 65 deletions(-)

diff --git a/block/qapi.c b/block/qapi.c
index 84a0aadc09..3acc118c44 100644
--- a/block/qapi.c
+++ b/block/qapi.c
@@ -62,7 +62,6 @@ BlockDeviceInfo *bdrv_block_device_info(BlockBackend *blk,
     info->ro                     = bs->read_only;
     info->drv                    = g_strdup(bs->drv->format_name);
     info->encrypted              = bs->encrypted;
-    info->encryption_key_missing = false;
 
     info->cache = g_new(BlockdevCacheInfo, 1);
     *info->cache = (BlockdevCacheInfo) {
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index cb88fea94f..e746a63edf 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -147,16 +147,6 @@ Use argument ``id`` instead.
 
 Use argument ``id`` instead.
 
-``query-named-block-nodes`` result ``encryption_key_missing`` (since 2.10.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Always false.
-
-``query-block`` result ``inserted.encryption_key_missing`` (since 2.10.0)
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-Always false.
-
 ``blockdev-add`` empty string argument ``backing`` (since 2.10.0)
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index bb6bc8dfc8..583f14f02e 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -112,6 +112,16 @@ chardev client socket with ``wait`` option (removed in 6.0)
 Character devices creating sockets in client mode should not specify
 the 'wait' field, which is only applicable to sockets in server mode
 
+``query-named-block-nodes`` result ``encryption_key_missing`` (removed in 6.0)
+''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Always false.
+
+``query-block`` result ``inserted.encryption_key_missing`` (removed in 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+Removed with no replacement
+
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 9f555d5c1d..d256b7b776 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -319,8 +319,6 @@
 #
 # @encrypted: true if the backing device is encrypted
 #
-# @encryption_key_missing: always false
-#
 # @detect_zeroes: detect and optimize zero writes (Since 2.1)
 #
 # @bps: total throughput limit in bytes per second is specified
@@ -385,10 +383,6 @@
 # @dirty-bitmaps: dirty bitmaps information (only present if node
 #                 has one or more dirty bitmaps) (Since 4.2)
 #
-# Features:
-# @deprecated: Member @encryption_key_missing is deprecated.  It is
-#              always false.
-#
 # Since: 0.14
 #
 ##
@@ -396,8 +390,6 @@
   'data': { 'file': 'str', '*node-name': 'str', 'ro': 'bool', 'drv': 'str',
             '*backing_file': 'str', 'backing_file_depth': 'int',
             'encrypted': 'bool',
-            'encryption_key_missing': { 'type': 'bool',
-                                        'features': [ 'deprecated' ] },
             'detect_zeroes': 'BlockdevDetectZeroesOptions',
             'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
             'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int',
diff --git a/tests/qemu-iotests/184.out b/tests/qemu-iotests/184.out
index 87c73070e3..77e5489d65 100644
--- a/tests/qemu-iotests/184.out
+++ b/tests/qemu-iotests/184.out
@@ -54,8 +54,7 @@ Testing:
                 "direct": false,
                 "writeback": true
             },
-            "file": "json:{\"throttle-group\": \"group0\", \"driver\": \"throttle\", \"file\": {\"driver\": \"null-co\"}}",
-            "encryption_key_missing": false
+            "file": "json:{\"throttle-group\": \"group0\", \"driver\": \"throttle\", \"file\": {\"driver\": \"null-co\"}}"
         },
         {
             "iops_rd": 0,
@@ -82,8 +81,7 @@ Testing:
                 "direct": false,
                 "writeback": true
             },
-            "file": "null-co://",
-            "encryption_key_missing": false
+            "file": "null-co://"
         }
     ]
 }
diff --git a/tests/qemu-iotests/191.out b/tests/qemu-iotests/191.out
index 022021efab..ea88777374 100644
--- a/tests/qemu-iotests/191.out
+++ b/tests/qemu-iotests/191.out
@@ -150,8 +150,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.ovl2",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.ovl2"
         },
         {
             "iops_rd": 0,
@@ -179,8 +178,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.ovl2",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.ovl2"
         },
         {
             "iops_rd": 0,
@@ -221,8 +219,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT"
         },
         {
             "iops_rd": 0,
@@ -250,8 +247,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT"
         },
         {
             "iops_rd": 0,
@@ -292,8 +288,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.mid",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.mid"
         },
         {
             "iops_rd": 0,
@@ -321,8 +316,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.mid",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.mid"
         },
         {
             "iops_rd": 0,
@@ -351,8 +345,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.base",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.base"
         },
         {
             "iops_rd": 0,
@@ -380,8 +373,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.base",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.base"
         }
     ]
 }
@@ -565,8 +557,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.ovl2",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.ovl2"
         },
         {
             "iops_rd": 0,
@@ -594,8 +585,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.ovl2",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.ovl2"
         },
         {
             "iops_rd": 0,
@@ -647,8 +637,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.ovl3",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.ovl3"
         },
         {
             "iops_rd": 0,
@@ -676,8 +665,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.ovl3",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.ovl3"
         },
         {
             "iops_rd": 0,
@@ -706,8 +694,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.base",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.base"
         },
         {
             "iops_rd": 0,
@@ -735,8 +722,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.base",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.base"
         },
         {
             "iops_rd": 0,
@@ -777,8 +763,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT"
         },
         {
             "iops_rd": 0,
@@ -806,8 +791,7 @@ wrote 65536/65536 bytes at offset 1048576
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT"
         }
     ]
 }
diff --git a/tests/qemu-iotests/273.out b/tests/qemu-iotests/273.out
index 8247cbaea1..4e840b6730 100644
--- a/tests/qemu-iotests/273.out
+++ b/tests/qemu-iotests/273.out
@@ -69,8 +69,7 @@ Testing: -blockdev file,node-name=base,filename=TEST_DIR/t.IMGFMT.base -blockdev
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT"
         },
         {
             "iops_rd": 0,
@@ -98,8 +97,7 @@ Testing: -blockdev file,node-name=base,filename=TEST_DIR/t.IMGFMT.base -blockdev
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT"
         },
         {
             "iops_rd": 0,
@@ -139,8 +137,7 @@ Testing: -blockdev file,node-name=base,filename=TEST_DIR/t.IMGFMT.base -blockdev
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.mid",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.mid"
         },
         {
             "iops_rd": 0,
@@ -168,8 +165,7 @@ Testing: -blockdev file,node-name=base,filename=TEST_DIR/t.IMGFMT.base -blockdev
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.mid",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.mid"
         },
         {
             "iops_rd": 0,
@@ -197,8 +193,7 @@ Testing: -blockdev file,node-name=base,filename=TEST_DIR/t.IMGFMT.base -blockdev
                 "direct": false,
                 "writeback": true
             },
-            "file": "TEST_DIR/t.IMGFMT.base",
-            "encryption_key_missing": false
+            "file": "TEST_DIR/t.IMGFMT.base"
         }
     ]
 }
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 12/14] block: remove dirty bitmaps 'status' field
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (10 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 11/14] block: remove 'encryption_key_missing' flag from QAPI Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-02-25 15:48   ` Vladimir Sementsov-Ogievskiy
  2021-02-24 13:11 ` [PATCH 13/14] block: remove 'dirty-bitmaps' field from 'BlockInfo' struct Daniel P. Berrangé
                   ` (4 subsequent siblings)
  16 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

The same information is available via the 'recording' and 'busy' fields.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 block/dirty-bitmap.c             |  38 ----
 docs/system/deprecated.rst       |   7 -
 docs/system/removed-features.rst |   7 +
 include/block/dirty-bitmap.h     |   1 -
 qapi/block-core.json             |  45 ----
 tests/qemu-iotests/124           |   4 -
 tests/qemu-iotests/194.out       |   4 +-
 tests/qemu-iotests/236.out       |  42 ++--
 tests/qemu-iotests/246.out       |  66 ++----
 tests/qemu-iotests/254.out       |   9 +-
 tests/qemu-iotests/257.out       | 378 +++++++++++--------------------
 11 files changed, 174 insertions(+), 427 deletions(-)

diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c
index 9b9cd71238..085aa343e1 100644
--- a/block/dirty-bitmap.c
+++ b/block/dirty-bitmap.c
@@ -166,43 +166,6 @@ bool bdrv_dirty_bitmap_enabled(BdrvDirtyBitmap *bitmap)
     return !bitmap->disabled;
 }
 
-/**
- * bdrv_dirty_bitmap_status: This API is now deprecated.
- * Called with BQL taken.
- *
- * A BdrvDirtyBitmap can be in four possible user-visible states:
- * (1) Active:   successor is NULL, and disabled is false: full r/w mode
- * (2) Disabled: successor is NULL, and disabled is true: qualified r/w mode,
- *               guest writes are dropped, but monitor writes are possible,
- *               through commands like merge and clear.
- * (3) Frozen:   successor is not NULL.
- *               A frozen bitmap cannot be renamed, deleted, cleared, set,
- *               enabled, merged to, etc. A frozen bitmap can only abdicate()
- *               or reclaim().
- *               In this state, the anonymous successor bitmap may be either
- *               Active and recording writes from the guest (e.g. backup jobs),
- *               or it can be Disabled and not recording writes.
- * (4) Locked:   Whether Active or Disabled, the user cannot modify this bitmap
- *               in any way from the monitor.
- * (5) Inconsistent: This is a persistent bitmap whose "in use" bit is set, and
- *                   is unusable by QEMU. It can be deleted to remove it from
- *                   the qcow2.
- */
-DirtyBitmapStatus bdrv_dirty_bitmap_status(BdrvDirtyBitmap *bitmap)
-{
-    if (bdrv_dirty_bitmap_inconsistent(bitmap)) {
-        return DIRTY_BITMAP_STATUS_INCONSISTENT;
-    } else if (bdrv_dirty_bitmap_has_successor(bitmap)) {
-        return DIRTY_BITMAP_STATUS_FROZEN;
-    } else if (bdrv_dirty_bitmap_busy(bitmap)) {
-        return DIRTY_BITMAP_STATUS_LOCKED;
-    } else if (!bdrv_dirty_bitmap_enabled(bitmap)) {
-        return DIRTY_BITMAP_STATUS_DISABLED;
-    } else {
-        return DIRTY_BITMAP_STATUS_ACTIVE;
-    }
-}
-
 /* Called with BQL taken.  */
 static bool bdrv_dirty_bitmap_recording(BdrvDirtyBitmap *bitmap)
 {
@@ -582,7 +545,6 @@ BlockDirtyInfoList *bdrv_query_dirty_bitmaps(BlockDriverState *bs)
         info->granularity = bdrv_dirty_bitmap_granularity(bm);
         info->has_name = !!bm->name;
         info->name = g_strdup(bm->name);
-        info->status = bdrv_dirty_bitmap_status(bm);
         info->recording = bdrv_dirty_bitmap_recording(bm);
         info->busy = bdrv_dirty_bitmap_busy(bm);
         info->persistent = bm->persistent;
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index e746a63edf..a8ac104c19 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -162,13 +162,6 @@ Use arguments ``base-node`` and ``top-node`` instead.
 
 Specify the properties for the object as top-level arguments instead.
 
-``query-named-block-nodes`` and ``query-block`` result dirty-bitmaps[i].status (since 4.0)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-The ``status`` field of the ``BlockDirtyInfo`` structure, returned by
-these commands is deprecated. Two new boolean fields, ``recording`` and
-``busy`` effectively replace it.
-
 ``query-block`` result field ``dirty-bitmaps`` (Since 4.2)
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 583f14f02e..725a316a4e 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -122,6 +122,13 @@ Always false.
 
 Removed with no replacement
 
+``query-named-block-nodes`` and ``query-block`` result dirty-bitmaps[i].status (removed in 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+The ``status`` field of the ``BlockDirtyInfo`` structure, returned by
+these commands is deprecated. Two new boolean fields, ``recording`` and
+``busy`` effectively replace it.
+
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
diff --git a/include/block/dirty-bitmap.h b/include/block/dirty-bitmap.h
index 36e8da4fc2..71374fba95 100644
--- a/include/block/dirty-bitmap.h
+++ b/include/block/dirty-bitmap.h
@@ -46,7 +46,6 @@ bool bdrv_dirty_bitmap_enabled(BdrvDirtyBitmap *bitmap);
 bool bdrv_dirty_bitmap_has_successor(BdrvDirtyBitmap *bitmap);
 const char *bdrv_dirty_bitmap_name(const BdrvDirtyBitmap *bitmap);
 int64_t bdrv_dirty_bitmap_size(const BdrvDirtyBitmap *bitmap);
-DirtyBitmapStatus bdrv_dirty_bitmap_status(BdrvDirtyBitmap *bitmap);
 void bdrv_set_dirty_bitmap(BdrvDirtyBitmap *bitmap,
                            int64_t offset, int64_t bytes);
 void bdrv_reset_dirty_bitmap(BdrvDirtyBitmap *bitmap,
diff --git a/qapi/block-core.json b/qapi/block-core.json
index d256b7b776..2a0c345c2c 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -418,43 +418,6 @@
 ##
 { 'enum': 'BlockDeviceIoStatus', 'data': [ 'ok', 'failed', 'nospace' ] }
 
-##
-# @DirtyBitmapStatus:
-#
-# An enumeration of possible states that a dirty bitmap can report to the user.
-#
-# @frozen: The bitmap is currently in-use by some operation and is immutable.
-#          If the bitmap was @active prior to the operation, new writes by the
-#          guest are being recorded in a temporary buffer, and will not be lost.
-#          Generally, bitmaps are cleared on successful use in an operation and
-#          the temporary buffer is committed into the bitmap. On failure, the
-#          temporary buffer is merged back into the bitmap without first
-#          clearing it.
-#          Please refer to the documentation for each bitmap-using operation,
-#          See also @blockdev-backup, @drive-backup.
-#
-# @disabled: The bitmap is not currently recording new writes by the guest.
-#            This is requested explicitly via @block-dirty-bitmap-disable.
-#            It can still be cleared, deleted, or used for backup operations.
-#
-# @active: The bitmap is actively monitoring for new writes, and can be cleared,
-#          deleted, or used for backup operations.
-#
-# @locked: The bitmap is currently in-use by some operation and is immutable.
-#          If the bitmap was @active prior to the operation, it is still
-#          recording new writes. If the bitmap was @disabled, it is not
-#          recording new writes. (Since 2.12)
-#
-# @inconsistent: This is a persistent dirty bitmap that was marked in-use on
-#                disk, and is unusable by QEMU. It can only be deleted.
-#                Please rely on the inconsistent field in @BlockDirtyInfo
-#                instead, as the status field is deprecated. (Since 4.0)
-#
-# Since: 2.4
-##
-{ 'enum': 'DirtyBitmapStatus',
-  'data': ['active', 'disabled', 'frozen', 'locked', 'inconsistent'] }
-
 ##
 # @BlockDirtyInfo:
 #
@@ -466,8 +429,6 @@
 #
 # @granularity: granularity of the dirty bitmap in bytes (since 1.4)
 #
-# @status: current status of the dirty bitmap (since 2.4)
-#
 # @recording: true if the bitmap is recording new writes from the guest.
 #             Replaces `active` and `disabled` statuses. (since 4.0)
 #
@@ -483,17 +444,11 @@
 #                @busy to be false. This bitmap cannot be used. To remove
 #                it, use @block-dirty-bitmap-remove. (Since 4.0)
 #
-# Features:
-# @deprecated: Member @status is deprecated.  Use @recording and
-#              @locked instead.
-#
 # Since: 1.3
 ##
 { 'struct': 'BlockDirtyInfo',
   'data': {'*name': 'str', 'count': 'int', 'granularity': 'uint32',
            'recording': 'bool', 'busy': 'bool',
-           'status': { 'type': 'DirtyBitmapStatus',
-                       'features': [ 'deprecated' ] },
            'persistent': 'bool', '*inconsistent': 'bool' } }
 
 ##
diff --git a/tests/qemu-iotests/124 b/tests/qemu-iotests/124
index 90cdbd8e24..845ab5303c 100755
--- a/tests/qemu-iotests/124
+++ b/tests/qemu-iotests/124
@@ -348,7 +348,6 @@ class TestIncrementalBackup(TestIncrementalBackupBase):
                 'name': 'bitmap0',
                 'count': 458752,
                 'granularity': 65536,
-                'status': 'active',
                 'persistent': False
             }))
 
@@ -705,7 +704,6 @@ class TestIncrementalBackupBlkdebug(TestIncrementalBackupBase):
             drive0['id'], bitmap.name, {
                 'count': 458752,
                 'granularity': 65536,
-                'status': 'active',
                 'busy': False,
                 'recording': True
             }))
@@ -736,7 +734,6 @@ class TestIncrementalBackupBlkdebug(TestIncrementalBackupBase):
             drive0['id'], bitmap.name, {
                 'count': 458752,
                 'granularity': 65536,
-                'status': 'frozen',
                 'busy': True,
                 'recording': True
             }))
@@ -751,7 +748,6 @@ class TestIncrementalBackupBlkdebug(TestIncrementalBackupBase):
             drive0['id'], bitmap.name, {
                 'count': 0,
                 'granularity': 65536,
-                'status': 'active',
                 'busy': False,
                 'recording': True
             }))
diff --git a/tests/qemu-iotests/194.out b/tests/qemu-iotests/194.out
index a51bdb2d4f..4e6df1565a 100644
--- a/tests/qemu-iotests/194.out
+++ b/tests/qemu-iotests/194.out
@@ -24,6 +24,6 @@ Stopping the NBD server on destination...
 Wait for migration completion on target...
 {"data": {"status": "completed"}, "event": "MIGRATION", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}}
 Check bitmaps on source:
-[{"busy": false, "count": 0, "granularity": 65536, "name": "bitmap0", "persistent": false, "recording": true, "status": "active"}]
+[{"busy": false, "count": 0, "granularity": 65536, "name": "bitmap0", "persistent": false, "recording": true}]
 Check bitmaps on target:
-[{"busy": false, "count": 0, "granularity": 65536, "name": "bitmap0", "persistent": false, "recording": true, "status": "active"}]
+[{"busy": false, "count": 0, "granularity": 65536, "name": "bitmap0", "persistent": false, "recording": true}]
diff --git a/tests/qemu-iotests/236.out b/tests/qemu-iotests/236.out
index 815cd053f0..7448ceea02 100644
--- a/tests/qemu-iotests/236.out
+++ b/tests/qemu-iotests/236.out
@@ -27,8 +27,7 @@ write -P0xcd 0x3ff0000 64k
         "granularity": 65536,
         "name": "bitmapB",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -36,8 +35,7 @@ write -P0xcd 0x3ff0000 64k
         "granularity": 65536,
         "name": "bitmapA",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -93,8 +91,7 @@ write -P0xcd 0x3ff0000 64k
         "granularity": 65536,
         "name": "bitmapB",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -102,8 +99,7 @@ write -P0xcd 0x3ff0000 64k
         "granularity": 65536,
         "name": "bitmapA",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -197,8 +193,7 @@ write -P0xea 0x3fe0000 64k
         "granularity": 65536,
         "name": "bitmapC",
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
@@ -206,8 +201,7 @@ write -P0xea 0x3fe0000 64k
         "granularity": 65536,
         "name": "bitmapB",
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
@@ -215,8 +209,7 @@ write -P0xea 0x3fe0000 64k
         "granularity": 65536,
         "name": "bitmapA",
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       }
     ]
   }
@@ -270,8 +263,7 @@ write -P0xea 0x3fe0000 64k
         "granularity": 65536,
         "name": "bitmapC",
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
@@ -279,8 +271,7 @@ write -P0xea 0x3fe0000 64k
         "granularity": 65536,
         "name": "bitmapB",
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
@@ -288,8 +279,7 @@ write -P0xea 0x3fe0000 64k
         "granularity": 65536,
         "name": "bitmapA",
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       }
     ]
   }
@@ -336,8 +326,7 @@ write -P0xea 0x3fe0000 64k
         "granularity": 65536,
         "name": "bitmapD",
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
@@ -345,8 +334,7 @@ write -P0xea 0x3fe0000 64k
         "granularity": 65536,
         "name": "bitmapC",
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
@@ -354,8 +342,7 @@ write -P0xea 0x3fe0000 64k
         "granularity": 65536,
         "name": "bitmapB",
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
@@ -363,8 +350,7 @@ write -P0xea 0x3fe0000 64k
         "granularity": 65536,
         "name": "bitmapA",
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       }
     ]
   }
diff --git a/tests/qemu-iotests/246.out b/tests/qemu-iotests/246.out
index 6671a11fdd..eeb98ab37c 100644
--- a/tests/qemu-iotests/246.out
+++ b/tests/qemu-iotests/246.out
@@ -24,8 +24,7 @@
         "granularity": 65536,
         "name": "Transient",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -33,8 +32,7 @@
         "granularity": 131072,
         "name": "Large",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -42,8 +40,7 @@
         "granularity": 65536,
         "name": "Medium",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -51,8 +48,7 @@
         "granularity": 32768,
         "name": "Small",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -68,8 +64,7 @@
         "granularity": 32768,
         "name": "Small",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -77,8 +72,7 @@
         "granularity": 65536,
         "name": "Medium",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -86,8 +80,7 @@
         "granularity": 131072,
         "name": "Large",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -108,8 +101,7 @@
         "granularity": 65536,
         "name": "Newtwo",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -117,8 +109,7 @@
         "granularity": 65536,
         "name": "New",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -126,8 +117,7 @@
         "granularity": 32768,
         "name": "Small",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -135,8 +125,7 @@
         "granularity": 65536,
         "name": "Medium",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -144,8 +133,7 @@
         "granularity": 131072,
         "name": "Large",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -163,8 +151,7 @@
         "granularity": 65536,
         "name": "New",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -172,8 +159,7 @@
         "granularity": 65536,
         "name": "Newtwo",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -181,8 +167,7 @@
         "granularity": 32768,
         "name": "Small",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -190,8 +175,7 @@
         "granularity": 65536,
         "name": "Medium",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -199,8 +183,7 @@
         "granularity": 131072,
         "name": "Large",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -232,8 +215,7 @@
         "granularity": 65536,
         "name": "NewB",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -241,8 +223,7 @@
         "granularity": 65536,
         "name": "NewC",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -250,8 +231,7 @@
         "granularity": 32768,
         "name": "Small",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -259,8 +239,7 @@
         "granularity": 65536,
         "name": "Medium",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": false,
@@ -268,8 +247,7 @@
         "granularity": 131072,
         "name": "Large",
         "persistent": true,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
diff --git a/tests/qemu-iotests/254.out b/tests/qemu-iotests/254.out
index d185c0532f..fe52da9338 100644
--- a/tests/qemu-iotests/254.out
+++ b/tests/qemu-iotests/254.out
@@ -99,8 +99,7 @@ query-block: device = drive0, node-name = snap, dirty-bitmaps:
     "granularity": 65536,
     "name": "bitmap2",
     "persistent": true,
-    "recording": true,
-    "status": "active"
+    "recording": true
   },
   {
     "busy": false,
@@ -108,8 +107,7 @@ query-block: device = drive0, node-name = snap, dirty-bitmaps:
     "granularity": 65536,
     "name": "bitmap1",
     "persistent": true,
-    "recording": true,
-    "status": "active"
+    "recording": true
   },
   {
     "busy": false,
@@ -117,8 +115,7 @@ query-block: device = drive0, node-name = snap, dirty-bitmaps:
     "granularity": 65536,
     "name": "bitmap0",
     "persistent": false,
-    "recording": true,
-    "status": "active"
+    "recording": true
   }
 ]
 
diff --git a/tests/qemu-iotests/257.out b/tests/qemu-iotests/257.out
index a7ba512f4c..50cbd8e882 100644
--- a/tests/qemu-iotests/257.out
+++ b/tests/qemu-iotests/257.out
@@ -58,8 +58,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -113,16 +112,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -130,8 +127,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -156,8 +152,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -185,8 +180,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -234,8 +228,7 @@ expecting 15 dirty sectors; have 15. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -318,8 +311,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -367,8 +359,7 @@ expecting 6 dirty sectors; have 6. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -396,8 +387,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -445,8 +435,7 @@ expecting 14 dirty sectors; have 14. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -529,8 +518,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -584,16 +572,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -601,8 +587,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -627,8 +612,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -656,8 +640,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -705,8 +688,7 @@ expecting 15 dirty sectors; have 15. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -789,8 +771,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -844,16 +825,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -861,8 +840,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -887,8 +865,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -916,8 +893,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -965,8 +941,7 @@ expecting 15 dirty sectors; have 15. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1049,8 +1024,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1098,8 +1072,7 @@ expecting 6 dirty sectors; have 6. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1127,8 +1100,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1176,8 +1148,7 @@ expecting 14 dirty sectors; have 14. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1260,8 +1231,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1315,16 +1285,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -1332,8 +1300,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -1358,8 +1325,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1387,8 +1353,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1436,8 +1401,7 @@ expecting 12 dirty sectors; have 12. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1520,8 +1484,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1575,16 +1538,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -1592,8 +1553,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -1618,8 +1578,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1647,8 +1606,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1696,8 +1654,7 @@ expecting 12 dirty sectors; have 12. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1780,8 +1737,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1829,8 +1785,7 @@ expecting 6 dirty sectors; have 6. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1858,8 +1813,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1907,8 +1861,7 @@ expecting 13 dirty sectors; have 13. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -1991,8 +1944,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2046,16 +1998,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -2063,8 +2013,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -2089,8 +2038,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2118,8 +2066,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2167,8 +2114,7 @@ expecting 12 dirty sectors; have 12. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2251,8 +2197,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2306,16 +2251,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -2323,8 +2266,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -2349,8 +2291,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2378,8 +2319,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2427,8 +2367,7 @@ expecting 15 dirty sectors; have 15. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2511,8 +2450,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2560,8 +2498,7 @@ expecting 6 dirty sectors; have 6. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2589,8 +2526,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2638,8 +2574,7 @@ expecting 14 dirty sectors; have 14. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2722,8 +2657,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2777,16 +2711,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -2794,8 +2726,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -2820,8 +2751,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2849,8 +2779,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2898,8 +2827,7 @@ expecting 12 dirty sectors; have 12. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -2982,8 +2910,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3037,16 +2964,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -3054,8 +2979,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -3080,8 +3004,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3109,8 +3032,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3158,8 +3080,7 @@ expecting 12 dirty sectors; have 12. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3242,8 +3163,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3291,8 +3211,7 @@ expecting 6 dirty sectors; have 6. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3320,8 +3239,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3369,8 +3287,7 @@ expecting 1014 dirty sectors; have 1014. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3453,8 +3370,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3508,16 +3424,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -3525,8 +3439,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -3551,8 +3464,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3580,8 +3492,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3629,8 +3540,7 @@ expecting 12 dirty sectors; have 12. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3713,8 +3623,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3768,16 +3677,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -3785,8 +3692,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -3811,8 +3717,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3840,8 +3745,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3889,8 +3793,7 @@ expecting 15 dirty sectors; have 15. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -3973,8 +3876,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4022,8 +3924,7 @@ expecting 6 dirty sectors; have 6. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4051,8 +3952,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4100,8 +4000,7 @@ expecting 14 dirty sectors; have 14. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4184,8 +4083,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4239,16 +4137,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -4256,8 +4152,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -4282,8 +4177,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4311,8 +4205,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4360,8 +4253,7 @@ expecting 12 dirty sectors; have 12. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4444,8 +4336,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4499,16 +4390,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -4516,8 +4405,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -4542,8 +4430,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4571,8 +4458,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4620,8 +4506,7 @@ expecting 12 dirty sectors; have 12. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4704,8 +4589,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4753,8 +4637,7 @@ expecting 6 dirty sectors; have 6. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4782,8 +4665,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4831,8 +4713,7 @@ expecting 14 dirty sectors; have 14. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4915,8 +4796,7 @@ write -P0x69 0x3fe0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -4970,16 +4850,14 @@ write -P0x67 0x3fe0000 0x20000
         "count": 0,
         "granularity": 65536,
         "persistent": false,
-        "recording": false,
-        "status": "disabled"
+        "recording": false
       },
       {
         "busy": false,
         "count": 458752,
         "granularity": 65536,
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       },
       {
         "busy": true,
@@ -4987,8 +4865,7 @@ write -P0x67 0x3fe0000 0x20000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "frozen"
+        "recording": true
       }
     ]
   }
@@ -5013,8 +4890,7 @@ expecting 7 dirty sectors; have 7. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -5042,8 +4918,7 @@ write -P0xdd 0x3fc0000 0x10000
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
@@ -5091,8 +4966,7 @@ expecting 12 dirty sectors; have 12. OK!
         "granularity": 65536,
         "name": "bitmap0",
         "persistent": false,
-        "recording": true,
-        "status": "active"
+        "recording": true
       }
     ]
   }
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 13/14] block: remove 'dirty-bitmaps' field from 'BlockInfo' struct
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (11 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 12/14] block: remove dirty bitmaps 'status' field Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-02-25 15:54   ` Vladimir Sementsov-Ogievskiy
  2021-02-24 13:11 ` [PATCH 14/14] block: remove support for using "file" driver with block/char devices Daniel P. Berrangé
                   ` (3 subsequent siblings)
  16 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

The same data is available in the 'BlockDeviceInfo' struct.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 block/qapi.c                     |  5 -----
 docs/system/deprecated.rst       | 13 -------------
 docs/system/removed-features.rst | 13 +++++++++++++
 qapi/block-core.json             | 11 +----------
 tests/qemu-iotests/194           |  4 ++--
 tests/qemu-iotests/236           |  2 +-
 tests/qemu-iotests/246           |  3 ++-
 tests/qemu-iotests/254           |  2 +-
 tests/qemu-iotests/260           |  5 +++--
 9 files changed, 23 insertions(+), 35 deletions(-)

diff --git a/block/qapi.c b/block/qapi.c
index 3acc118c44..943e7b15ad 100644
--- a/block/qapi.c
+++ b/block/qapi.c
@@ -383,11 +383,6 @@ static void bdrv_query_info(BlockBackend *blk, BlockInfo **p_info,
         info->io_status = blk_iostatus(blk);
     }
 
-    if (bs && !QLIST_EMPTY(&bs->dirty_bitmaps)) {
-        info->has_dirty_bitmaps = true;
-        info->dirty_bitmaps = bdrv_query_dirty_bitmaps(bs);
-    }
-
     if (bs && bs->drv) {
         info->has_inserted = true;
         info->inserted = bdrv_block_device_info(blk, bs, false, errp);
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index a8ac104c19..dc76584e02 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -162,19 +162,6 @@ Use arguments ``base-node`` and ``top-node`` instead.
 
 Specify the properties for the object as top-level arguments instead.
 
-``query-block`` result field ``dirty-bitmaps`` (Since 4.2)
-''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-The ``dirty-bitmaps`` field of the ``BlockInfo`` structure, returned by
-the query-block command is itself now deprecated. The ``dirty-bitmaps``
-field of the ``BlockDeviceInfo`` struct should be used instead, which is the
-type of the ``inserted`` field in query-block replies, as well as the
-type of array items in query-named-block-nodes.
-
-Since the ``dirty-bitmaps`` field is optionally present in both the old and
-new locations, clients must use introspection to learn where to anticipate
-the field if/when it does appear in command output.
-
 ``nbd-server-add`` and ``nbd-server-remove`` (since 5.2)
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 725a316a4e..990bf7e015 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -129,6 +129,19 @@ The ``status`` field of the ``BlockDirtyInfo`` structure, returned by
 these commands is deprecated. Two new boolean fields, ``recording`` and
 ``busy`` effectively replace it.
 
+``query-block`` result field ``dirty-bitmaps`` (removed in 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+The ``dirty-bitmaps`` field of the ``BlockInfo`` structure, returned by
+the query-block command is itself now deprecated. The ``dirty-bitmaps``
+field of the ``BlockDeviceInfo`` struct should be used instead, which is the
+type of the ``inserted`` field in query-block replies, as well as the
+type of array items in query-named-block-nodes.
+
+Since the ``dirty-bitmaps`` field is optionally present in both the old and
+new locations, clients must use introspection to learn where to anticipate
+the field if/when it does appear in command output.
+
 Human Monitor Protocol (HMP) commands
 -------------------------------------
 
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 2a0c345c2c..0399449e13 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -539,9 +539,6 @@
 # @tray_open: True if the device's tray is open
 #             (only present if it has a tray)
 #
-# @dirty-bitmaps: dirty bitmaps information (only present if the
-#                 driver has one or more dirty bitmaps) (Since 2.0)
-#
 # @io-status: @BlockDeviceIoStatus. Only present if the device
 #             supports it and the VM is configured to stop on errors
 #             (supported device models: virtio-blk, IDE, SCSI except
@@ -550,18 +547,12 @@
 # @inserted: @BlockDeviceInfo describing the device if media is
 #            present
 #
-# Features:
-# @deprecated: Member @dirty-bitmaps is deprecated.  Use @inserted
-#              member @dirty-bitmaps instead.
-#
 # Since:  0.14
 ##
 { 'struct': 'BlockInfo',
   'data': {'device': 'str', '*qdev': 'str', 'type': 'str', 'removable': 'bool',
            'locked': 'bool', '*inserted': 'BlockDeviceInfo',
-           '*tray_open': 'bool', '*io-status': 'BlockDeviceIoStatus',
-           '*dirty-bitmaps': { 'type': ['BlockDirtyInfo'],
-                               'features': [ 'deprecated' ] } } }
+           '*tray_open': 'bool', '*io-status': 'BlockDeviceIoStatus' } }
 
 ##
 # @BlockMeasureInfo:
diff --git a/tests/qemu-iotests/194 b/tests/qemu-iotests/194
index 3889266afa..e44b8df728 100755
--- a/tests/qemu-iotests/194
+++ b/tests/qemu-iotests/194
@@ -95,7 +95,7 @@ with iotests.FilePath('source.img') as source_img_path, \
     iotests.log(event, filters=[iotests.filter_qmp_event])
 
     iotests.log('Check bitmaps on source:')
-    iotests.log(source_vm.qmp('query-block')['return'][0]['dirty-bitmaps'])
+    iotests.log(source_vm.qmp('query-block')['return'][0]['inserted']['dirty-bitmaps'])
 
     iotests.log('Check bitmaps on target:')
-    iotests.log(dest_vm.qmp('query-block')['return'][0]['dirty-bitmaps'])
+    iotests.log(dest_vm.qmp('query-block')['return'][0]['inserted']['dirty-bitmaps'])
diff --git a/tests/qemu-iotests/236 b/tests/qemu-iotests/236
index f6c44517d6..20419bbb9e 100755
--- a/tests/qemu-iotests/236
+++ b/tests/qemu-iotests/236
@@ -39,7 +39,7 @@ overwrite = [("0xab", "0",         "64k"), # Full overwrite
 
 def query_bitmaps(vm):
     res = vm.qmp("query-block")
-    return { "bitmaps": { device['device']: device.get('dirty-bitmaps', []) for
+    return { "bitmaps": { device['device']: device.get('inserted', {}).get('dirty-bitmaps', []) for
                           device in res['return'] } }
 
 with iotests.FilePath('img') as img_path, \
diff --git a/tests/qemu-iotests/246 b/tests/qemu-iotests/246
index fa3102c546..5932a0e8a9 100755
--- a/tests/qemu-iotests/246
+++ b/tests/qemu-iotests/246
@@ -30,7 +30,8 @@ gran_large = 128 * 1024
 
 def query_bitmaps(vm):
     res = vm.qmp("query-block")
-    return { "bitmaps": { device['device']: device.get('dirty-bitmaps', []) for
+    return { "bitmaps": { device['device']: device.get('inserted', {})
+                          .get('dirty-bitmaps', []) for
                           device in res['return'] } }
 
 with iotests.FilePath('img') as img_path, \
diff --git a/tests/qemu-iotests/254 b/tests/qemu-iotests/254
index 49da948407..108bf5f894 100755
--- a/tests/qemu-iotests/254
+++ b/tests/qemu-iotests/254
@@ -73,7 +73,7 @@ vm.qmp_log('transaction', indent=2, actions=[
 result = vm.qmp('query-block')['return'][0]
 log("query-block: device = {}, node-name = {}, dirty-bitmaps:".format(
     result['device'], result['inserted']['node-name']))
-log(result['dirty-bitmaps'], indent=2)
+log(result['inserted']['dirty-bitmaps'], indent=2)
 log("\nbitmaps in backing image:")
 log(result['inserted']['image']['backing-image']['format-specific'] \
     ['data']['bitmaps'], indent=2)
diff --git a/tests/qemu-iotests/260 b/tests/qemu-iotests/260
index a35cb7b61f..2ec64a9b99 100755
--- a/tests/qemu-iotests/260
+++ b/tests/qemu-iotests/260
@@ -32,8 +32,9 @@ size = 64 * 1024 * 3
 
 def print_bitmap(msg, vm):
     result = vm.qmp('query-block')['return'][0]
-    if 'dirty-bitmaps' in result:
-        bitmap = result['dirty-bitmaps'][0]
+    info = result.get("inserted", {})
+    if 'dirty-bitmaps' in info:
+        bitmap = info['dirty-bitmaps'][0]
         log('{}: name={} dirty-clusters={}'.format(msg, bitmap['name'],
             bitmap['count'] // 64 // 1024))
     else:
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [PATCH 14/14] block: remove support for using "file" driver with block/char devices
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (12 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 13/14] block: remove 'dirty-bitmaps' field from 'BlockInfo' struct Daniel P. Berrangé
@ 2021-02-24 13:11 ` Daniel P. Berrangé
  2021-03-15 11:56   ` Daniel P. Berrangé
  2021-03-15 12:04   ` Eric Blake
  2021-02-24 13:26 ` [PATCH 00/14] deprecations: remove many old deprecations Paolo Bonzini
                   ` (2 subsequent siblings)
  16 siblings, 2 replies; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:11 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

The 'host_device' and 'host_cdrom' drivers must be used instead.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 block/file-posix.c               | 17 ++++++-----------
 docs/system/deprecated.rst       |  7 -------
 docs/system/removed-features.rst |  7 +++++++
 tests/qemu-iotests/226.out       | 10 +++++-----
 4 files changed, 18 insertions(+), 23 deletions(-)

diff --git a/block/file-posix.c b/block/file-posix.c
index 05079b40ca..20e14f8e96 100644
--- a/block/file-posix.c
+++ b/block/file-posix.c
@@ -719,15 +719,9 @@ static int raw_open_common(BlockDriverState *bs, QDict *options,
     }
 
     if (!device) {
-        if (S_ISBLK(st.st_mode)) {
-            warn_report("Opening a block device as a file using the '%s' "
-                        "driver is deprecated", bs->drv->format_name);
-        } else if (S_ISCHR(st.st_mode)) {
-            warn_report("Opening a character device as a file using the '%s' "
-                        "driver is deprecated", bs->drv->format_name);
-        } else if (!S_ISREG(st.st_mode)) {
-            error_setg(errp, "A regular file was expected by the '%s' driver, "
-                       "but something else was given", bs->drv->format_name);
+        if (!S_ISREG(st.st_mode)) {
+            error_setg(errp, "'%s' driver requires '%s' to be a regular file",
+                       bs->drv->format_name, bs->filename);
             ret = -EINVAL;
             goto fail;
         } else {
@@ -736,8 +730,9 @@ static int raw_open_common(BlockDriverState *bs, QDict *options,
         }
     } else {
         if (!(S_ISCHR(st.st_mode) || S_ISBLK(st.st_mode))) {
-            error_setg(errp, "'%s' driver expects either "
-                       "a character or block device", bs->drv->format_name);
+            error_setg(errp, "'%s' driver requires '%s' to be either "
+                       "a character or block device",
+                       bs->drv->format_name, bs->filename);
             ret = -EINVAL;
             goto fail;
         }
diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
index dc76584e02..3a86deb450 100644
--- a/docs/system/deprecated.rst
+++ b/docs/system/deprecated.rst
@@ -21,13 +21,6 @@ deprecated.
 System emulator command line arguments
 --------------------------------------
 
-``-drive file=json:{...{'driver':'file'}}`` (since 3.0)
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''
-
-The 'file' driver for drives is no longer appropriate for character or host
-devices and will only accept regular files (S_IFREG). The correct driver
-for these file types is 'host_cdrom' or 'host_device' as appropriate.
-
 ``QEMU_AUDIO_`` environment variables and ``-audio-help`` (since 4.0)
 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
 
diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
index 990bf7e015..1c9e384cb0 100644
--- a/docs/system/removed-features.rst
+++ b/docs/system/removed-features.rst
@@ -59,6 +59,13 @@ would automatically enable USB support on the machine type.
 When using the new syntax, USB support must be explicitly
 enabled via the ``-machine usb=on`` argument.
 
+``-drive file=json:{...{'driver':'file'}}`` (removed 6.0)
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
+
+The 'file' driver for drives is no longer appropriate for character or host
+devices and will only accept regular files (S_IFREG). The correct driver
+for these file types is 'host_cdrom' or 'host_device' as appropriate.
+
 QEMU Machine Protocol (QMP) commands
 ------------------------------------
 
diff --git a/tests/qemu-iotests/226.out b/tests/qemu-iotests/226.out
index 42be973ff2..55504d29c4 100644
--- a/tests/qemu-iotests/226.out
+++ b/tests/qemu-iotests/226.out
@@ -3,23 +3,23 @@ QA output created by 226
 === Testing with driver:file ===
 
 == Testing RO ==
-qemu-io: can't open: A regular file was expected by the 'file' driver, but something else was given
-qemu-io: warning: Opening a character device as a file using the 'file' driver is deprecated
+qemu-io: can't open: 'file' driver requires 'TEST_DIR/t.IMGFMT' to be a regular file
+qemu-io: can't open: 'file' driver requires '/dev/null' to be a regular file
 == Testing RW ==
 qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory
-qemu-io: warning: Opening a character device as a file using the 'file' driver is deprecated
+qemu-io: can't open: 'file' driver requires '/dev/null' to be a regular file
 
 === Testing with driver:host_device ===
 
 == Testing RO ==
-qemu-io: can't open: 'host_device' driver expects either a character or block device
+qemu-io: can't open: 'host_device' driver requires 'TEST_DIR/t.IMGFMT' to be either a character or block device
 == Testing RW ==
 qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory
 
 === Testing with driver:host_cdrom ===
 
 == Testing RO ==
-qemu-io: can't open: 'host_cdrom' driver expects either a character or block device
+qemu-io: can't open: 'host_cdrom' driver requires 'TEST_DIR/t.IMGFMT' to be either a character or block device
 == Testing RW ==
 qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory
 
-- 
2.29.2



^ permalink raw reply related	[flat|nested] 49+ messages in thread

* Re: [PATCH 08/14] chardev: reject use of 'wait' flag for socket client chardevs
  2021-02-24 13:11 ` [PATCH 08/14] chardev: reject use of 'wait' flag for socket client chardevs Daniel P. Berrangé
@ 2021-02-24 13:17   ` Marc-André Lureau
  0 siblings, 0 replies; 49+ messages in thread
From: Marc-André Lureau @ 2021-02-24 13:17 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

[-- Attachment #1: Type: text/plain, Size: 3095 bytes --]

On Wed, Feb 24, 2021 at 5:15 PM Daniel P. Berrangé <berrange@redhat.com>
wrote:

> This only makes sense conceptually when used with listener chardevs.
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

---
>  chardev/char-socket.c            | 12 ++++--------
>  docs/system/deprecated.rst       |  6 ------
>  docs/system/removed-features.rst |  6 ++++++
>  3 files changed, 10 insertions(+), 14 deletions(-)
>
> diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> index 9061981f6d..b24618b581 100644
> --- a/chardev/char-socket.c
> +++ b/chardev/char-socket.c
> @@ -1336,14 +1336,10 @@ static bool
> qmp_chardev_validate_socket(ChardevSocket *sock,
>              return false;
>          }
>          if (sock->has_wait) {
> -            warn_report("'wait' option is deprecated with "
> -                        "socket in client connect mode");
> -            if (sock->wait) {
> -                error_setg(errp, "%s",
> -                           "'wait' option is incompatible with "
> -                           "socket in client connect mode");
> -                return false;
> -            }
> +            error_setg(errp, "%s",
> +                       "'wait' option is incompatible with "
> +                       "socket in client connect mode");
> +            return false;
>          }
>      }
>
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index 78474f0845..c69887dca8 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -192,12 +192,6 @@ Since the ``dirty-bitmaps`` field is optionally
> present in both the old and
>  new locations, clients must use introspection to learn where to anticipate
>  the field if/when it does appear in command output.
>
> -chardev client socket with ``wait`` option (since 4.0)
> -''''''''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -Character devices creating sockets in client mode should not specify
> -the 'wait' field, which is only applicable to sockets in server mode
> -
>  ``nbd-server-add`` and ``nbd-server-remove`` (since 5.2)
>  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>
> diff --git a/docs/system/removed-features.rst
> b/docs/system/removed-features.rst
> index 7942c2e513..870a222062 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -106,6 +106,12 @@ The ``query-cpus`` command is replaced by the
> ``query-cpus-fast`` command.
>  The ``arch`` output member of the ``query-cpus-fast`` command is
>  replaced by the ``target`` output member.
>
> +chardev client socket with ``wait`` option (removed in 6.0)
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +Character devices creating sockets in client mode should not specify
> +the 'wait' field, which is only applicable to sockets in server mode
> +
>  Human Monitor Protocol (HMP) commands
>  -------------------------------------
>
> --
> 2.29.2
>
>

[-- Attachment #2: Type: text/html, Size: 4784 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 02/14] monitor: raise error when 'pretty' option is used with HMP
  2021-02-24 13:11 ` [PATCH 02/14] monitor: raise error when 'pretty' option is used with HMP Daniel P. Berrangé
@ 2021-02-24 13:20   ` Dr. David Alan Gilbert
  0 siblings, 0 replies; 49+ messages in thread
From: Dr. David Alan Gilbert @ 2021-02-24 13:20 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Greg Kurz, Cleber Rosa, John Snow,
	David Gibson, Kevin Wolf, Vladimir Sementsov-Ogievskiy,
	Max Reitz, qemu-ppc, Paolo Bonzini

* Daniel P. Berrangé (berrange@redhat.com) wrote:
> This is only semantically useful for QMP.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  docs/system/deprecated.rst       | 7 -------
>  docs/system/removed-features.rst | 6 ++++++
>  monitor/monitor.c                | 4 ++--
>  qemu-options.hx                  | 5 +++--
>  4 files changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index 786b997fe7..dfd8a8c497 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -62,13 +62,6 @@ needs two devices (``-device intel-hda -device hda-duplex``) and
>  ``pcspk`` which can be activated using ``-machine
>  pcspk-audiodev=<name>``.
>  
> -``-mon ...,control=readline,pretty=on|off`` (since 4.1)
> -'''''''''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -The ``pretty=on|off`` switch has no effect for HMP monitors, but is
> -silently ignored. Using the switch with HMP monitors will become an
> -error in the future.
> -
>  RISC-V ``-bios`` (since 5.1)
>  ''''''''''''''''''''''''''''
>  
> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
> index 0424b9a89d..3ca13d2844 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -44,6 +44,12 @@ block cache, ``-accel tcg,tb-size=``.
>  The ``acl`` option to the ``-vnc`` argument has been replaced
>  by the ``tls-authz`` and ``sasl-authz`` options.
>  
> +``-mon ...,control=readline,pretty=on|off`` (removed in 6.0)
> +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +The ``pretty=on|off`` switch has no effect for HMP monitors and
> +its use is rejected.
> +
>  QEMU Machine Protocol (QMP) commands
>  ------------------------------------
>  
> diff --git a/monitor/monitor.c b/monitor/monitor.c
> index e94f532cf5..515efb015e 100644
> --- a/monitor/monitor.c
> +++ b/monitor/monitor.c
> @@ -720,8 +720,8 @@ int monitor_init(MonitorOptions *opts, bool allow_hmp, Error **errp)
>              return -1;
>          }
>          if (opts->pretty) {
> -            warn_report("'pretty' is deprecated for HMP monitors, it has no "
> -                        "effect and will be removed in future versions");
> +            error_setg(errp, "'pretty' is not compatible with HMP monitors");
> +            return -1;
>          }
>          monitor_init_hmp(chr, true, &local_err);
>          break;
> diff --git a/qemu-options.hx b/qemu-options.hx
> index 6c34c7050f..a934d5c787 100644
> --- a/qemu-options.hx
> +++ b/qemu-options.hx
> @@ -3702,8 +3702,9 @@ DEF("mon", HAS_ARG, QEMU_OPTION_mon, \
>      "-mon [chardev=]name[,mode=readline|control][,pretty[=on|off]]\n", QEMU_ARCH_ALL)
>  SRST
>  ``-mon [chardev=]name[,mode=readline|control][,pretty[=on|off]]``
> -    Setup monitor on chardev name. ``pretty`` turns on JSON pretty
> -    printing easing human reading and debugging.
> +    Setup monitor on chardev name. ``pretty`` is only valid when
> +    ``mode=control``, turning on JSON pretty printing to ease
> +    human reading and debugging.
>  ERST
>  
>  DEF("debugcon", HAS_ARG, QEMU_OPTION_debugcon, \
> -- 
> 2.29.2
> 
-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 04/14] softmmu: remove '-usbdevice' command line option
  2021-02-24 13:11 ` [PATCH 04/14] softmmu: remove '-usbdevice' command line option Daniel P. Berrangé
@ 2021-02-24 13:25   ` Paolo Bonzini
  2021-02-24 13:44     ` Daniel P. Berrangé
  2021-02-24 13:58   ` Thomas Huth
  1 sibling, 1 reply; 49+ messages in thread
From: Paolo Bonzini @ 2021-02-24 13:25 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc

On 24/02/21 14:11, Daniel P. Berrangé wrote:
> This was replaced by the '-device usb-DEV' option.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

This is probably used in many tutorial as "-usbdevice tablet" (for 
example https://wiki.gentoo.org/wiki/QEMU/Options).

Paolo

> ---
>   docs/system/deprecated.rst       |  9 -------
>   docs/system/removed-features.rst |  9 +++++++
>   softmmu/vl.c                     | 42 --------------------------------
>   3 files changed, 9 insertions(+), 51 deletions(-)
> 
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index 611adf60f7..c577cc97c4 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -21,15 +21,6 @@ deprecated.
>   System emulator command line arguments
>   --------------------------------------
>   
> -``-usbdevice`` (since 2.10.0)
> -'''''''''''''''''''''''''''''
> -
> -The ``-usbdevice DEV`` argument is now a synonym for setting
> -the ``-device usb-DEV`` argument instead. The deprecated syntax
> -would automatically enable USB support on the machine type.
> -If using the new syntax, USB support must be explicitly
> -enabled via the ``-machine usb=on`` argument.
> -
>   ``-drive file=json:{...{'driver':'file'}}`` (since 3.0)
>   '''''''''''''''''''''''''''''''''''''''''''''''''''''''
>   
> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
> index dc63581fe5..74d022babf 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -50,6 +50,15 @@ by the ``tls-authz`` and ``sasl-authz`` options.
>   The ``pretty=on|off`` switch has no effect for HMP monitors and
>   its use is rejected.
>   
> +``-usbdevice`` (removed in 6.0)
> +'''''''''''''''''''''''''''''''
> +
> +The ``-usbdevice DEV`` argument was now a synonym for setting
> +the ``-device usb-DEV`` argument instead. The removed syntax
> +would automatically enable USB support on the machine type.
> +When using the new syntax, USB support must be explicitly
> +enabled via the ``-machine usb=on`` argument.
> +
>   QEMU Machine Protocol (QMP) commands
>   ------------------------------------
>   
> diff --git a/softmmu/vl.c b/softmmu/vl.c
> index b219ce1f35..c31061cc09 100644
> --- a/softmmu/vl.c
> +++ b/softmmu/vl.c
> @@ -743,34 +743,6 @@ static void configure_msg(QemuOpts *opts)
>   }
>   
>   
> -/***********************************************************/
> -/* USB devices */
> -
> -static int usb_device_add(const char *devname)
> -{
> -    USBDevice *dev = NULL;
> -
> -    if (!machine_usb(current_machine)) {
> -        return -1;
> -    }
> -
> -    dev = usbdevice_create(devname);
> -    if (!dev)
> -        return -1;
> -
> -    return 0;
> -}
> -
> -static int usb_parse(const char *cmdline)
> -{
> -    int r;
> -    r = usb_device_add(cmdline);
> -    if (r < 0) {
> -        error_report("could not add USB device '%s'", cmdline);
> -    }
> -    return r;
> -}
> -
>   /***********************************************************/
>   /* machine registration */
>   
> @@ -1267,7 +1239,6 @@ static void monitor_parse(const char *optarg, const char *mode, bool pretty)
>   
>   struct device_config {
>       enum {
> -        DEV_USB,       /* -usbdevice     */
>           DEV_SERIAL,    /* -serial        */
>           DEV_PARALLEL,  /* -parallel      */
>           DEV_DEBUGCON,  /* -debugcon */
> @@ -2484,12 +2455,6 @@ static void qemu_create_cli_devices(void)
>       qemu_opts_foreach(qemu_find_opts("fw_cfg"),
>                         parse_fw_cfg, fw_cfg_find(), &error_fatal);
>   
> -    /* init USB devices */
> -    if (machine_usb(current_machine)) {
> -        if (foreach_device_config(DEV_USB, usb_parse) < 0)
> -            exit(1);
> -    }
> -
>       /* init generic devices */
>       rom_set_order_override(FW_CFG_ORDER_OVERRIDE_DEVICE);
>       qemu_opts_foreach(qemu_find_opts("device"),
> @@ -3182,13 +3147,6 @@ void qemu_init(int argc, char **argv, char **envp)
>                   olist = qemu_find_opts("machine");
>                   qemu_opts_parse_noisily(olist, "usb=on", false);
>                   break;
> -            case QEMU_OPTION_usbdevice:
> -                error_report("'-usbdevice' is deprecated, please use "
> -                             "'-device usb-...' instead");
> -                olist = qemu_find_opts("machine");
> -                qemu_opts_parse_noisily(olist, "usb=on", false);
> -                add_device_config(DEV_USB, optarg);
> -                break;
>               case QEMU_OPTION_device:
>                   if (!qemu_opts_parse_noisily(qemu_find_opts("device"),
>                                                optarg, true)) {
> 



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 00/14] deprecations: remove many old deprecations
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (13 preceding siblings ...)
  2021-02-24 13:11 ` [PATCH 14/14] block: remove support for using "file" driver with block/char devices Daniel P. Berrangé
@ 2021-02-24 13:26 ` Paolo Bonzini
  2021-02-24 14:38 ` Peter Maydell
  2021-02-25 17:32 ` Jim Fehlig
  16 siblings, 0 replies; 49+ messages in thread
From: Paolo Bonzini @ 2021-02-24 13:26 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc

On 24/02/21 14:11, Daniel P. Berrangé wrote:
> The following features have been deprecated for well over the 2
> release cycle we promise
> 
>    ``-usbdevice`` (since 2.10.0)
>    ``-drive file=3Djson:{...{'driver':'file'}}`` (since 3.0)
>    ``-vnc acl`` (since 4.0.0)
>    ``-mon ...,control=3Dreadline,pretty=3Don|off`` (since 4.1)
>    ``migrate_set_downtime`` and ``migrate_set_speed`` (since 2.8.0)
>    ``query-named-block-nodes`` result ``encryption_key_missing`` (since 2.10.0)
>    ``query-block`` result ``inserted.encryption_key_missing`` (since 2.10.0)
>    ``migrate-set-cache-size`` and ``query-migrate-cache-size`` (since 2.11.0)
>    ``query-named-block-nodes`` and ``query-block`` result dirty-bitmaps[i].sta=
> tus (ince 4.0)
>    ``query-cpus`` (since 2.12.0)
>    ``query-cpus-fast`` ``arch`` output member (since 3.0.0)
>    ``query-events`` (since 4.0)
>    chardev client socket with ``wait`` option (since 4.0)
>    ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, ``acl_remove`` (s=
> ince 4.0.0)
>    ``ide-drive`` (since 4.2)
>    ``scsi-disk`` (since 4.2)
> 
> AFAICT, libvirt has ceased to use all of these too.

No objections except possibly for -usbdevice.

Paolo



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 01/14] ui, monitor: remove deprecated VNC ACL option and HMP commands
  2021-02-24 13:11 ` [PATCH 01/14] ui, monitor: remove deprecated VNC ACL option and HMP commands Daniel P. Berrangé
@ 2021-02-24 13:36   ` Thomas Huth
  2021-02-24 13:46     ` Daniel P. Berrangé
  0 siblings, 1 reply; 49+ messages in thread
From: Thomas Huth @ 2021-02-24 13:36 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On 24/02/2021 14.11, Daniel P. Berrangé wrote:
> The VNC ACL concept has been replaced by the pluggable "authz" framework
> which does not use monitor commands.
> 
> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   docs/system/deprecated.rst       |  16 ---
>   docs/system/removed-features.rst |  13 +++
>   hmp-commands.hx                  |  76 -------------
>   monitor/misc.c                   | 187 -------------------------------
>   ui/vnc.c                         |  38 -------
>   5 files changed, 13 insertions(+), 317 deletions(-)

If I run:

  grep -r vnc.*acl *

I also see some lines in tests/check-block-qdict.c ... are they related and 
should be removed, too?

Apart from that, patch looks fine to me:
Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 04/14] softmmu: remove '-usbdevice' command line option
  2021-02-24 13:25   ` Paolo Bonzini
@ 2021-02-24 13:44     ` Daniel P. Berrangé
  0 siblings, 0 replies; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:44 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc

On Wed, Feb 24, 2021 at 02:25:46PM +0100, Paolo Bonzini wrote:
> On 24/02/21 14:11, Daniel P. Berrangé wrote:
> > This was replaced by the '-device usb-DEV' option.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> 
> This is probably used in many tutorial as "-usbdevice tablet" (for example
> https://wiki.gentoo.org/wiki/QEMU/Options).

It has been deprecated, printing a warning message, for almost 4 years
now, and had your ack originally :-)

  commit a358a3af4558a24398a541951cad7a6c458df72b
  Author: Thomas Huth <thuth@redhat.com>
  Date:   Fri May 19 08:35:16 2017 +0200

    usb: Deprecate the legacy -usbdevice option
    
    The '-usbdevice' option is considered as deprecated nowadays and
    we might want to remove these options in a future version of QEMU.
    So mark this options as deprecated in the documenation and print out
    a warning if it is used to tell the user what to use instead.
    While we're at it, improve also some other minor USB-related spots
    in qemu-options.hx that were not up to date anymore.
    
    Signed-off-by: Thomas Huth <thuth@redhat.com>
    Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
    Message-id: 1495175716-12735-1-git-send-email-thuth@redhat.com
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>


There's some tradeoff to be had.  The 3rd party docs will be unlikely
to be updated to the new syntax as long as the old syntax still works.
So we get ourselves into a chicken & egg scenario.

Overall the -usbdevice doesn't add significant syntax sugar benefits
over -device, as compared benefits of other syntax sugar args we
have.

> > ---
> >   docs/system/deprecated.rst       |  9 -------
> >   docs/system/removed-features.rst |  9 +++++++
> >   softmmu/vl.c                     | 42 --------------------------------
> >   3 files changed, 9 insertions(+), 51 deletions(-)

It seems this is incomplete though, I missed qemu-options.hx,
docs/qdev-device-use.txt and hw/usb/bus.c updates to remove
associated cruft.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 01/14] ui, monitor: remove deprecated VNC ACL option and HMP commands
  2021-02-24 13:36   ` Thomas Huth
@ 2021-02-24 13:46     ` Daniel P. Berrangé
  0 siblings, 0 replies; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 13:46 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On Wed, Feb 24, 2021 at 02:36:46PM +0100, Thomas Huth wrote:
> On 24/02/2021 14.11, Daniel P. Berrangé wrote:
> > The VNC ACL concept has been replaced by the pluggable "authz" framework
> > which does not use monitor commands.
> > 
> > Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> >   docs/system/deprecated.rst       |  16 ---
> >   docs/system/removed-features.rst |  13 +++
> >   hmp-commands.hx                  |  76 -------------
> >   monitor/misc.c                   | 187 -------------------------------
> >   ui/vnc.c                         |  38 -------
> >   5 files changed, 13 insertions(+), 317 deletions(-)
> 
> If I run:
> 
>  grep -r vnc.*acl *
> 
> I also see some lines in tests/check-block-qdict.c ... are they related and
> should be removed, too?

Yes & no.  This test is using the vnc ACL syntax as example input for
validating the qdict parsing, but isn't functionally connected to the
actual VNC ACL impl.

> Apart from that, patch looks fine to me:
> Reviewed-by: Thomas Huth <thuth@redhat.com>

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 03/14] monitor: remove 'query-events' QMP command
  2021-02-24 13:11 ` [PATCH 03/14] monitor: remove 'query-events' QMP command Daniel P. Berrangé
@ 2021-02-24 13:47   ` Thomas Huth
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas Huth @ 2021-02-24 13:47 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On 24/02/2021 14.11, Daniel P. Berrangé wrote:
> The code comment suggests removing QAPIEvent_(str|lookup) symbols too,
> however, these are both auto-generated as standard for any enum in
> QAPI. As such it they'll exist whether we use them or not.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   docs/system/deprecated.rst       |  6 -----
>   docs/system/removed-features.rst |  6 +++++
>   monitor/qmp-cmds-control.c       | 24 -----------------
>   qapi/control.json                | 45 --------------------------------
>   4 files changed, 6 insertions(+), 75 deletions(-)

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 04/14] softmmu: remove '-usbdevice' command line option
  2021-02-24 13:11 ` [PATCH 04/14] softmmu: remove '-usbdevice' command line option Daniel P. Berrangé
  2021-02-24 13:25   ` Paolo Bonzini
@ 2021-02-24 13:58   ` Thomas Huth
  2021-02-24 14:10     ` Daniel P. Berrangé
  1 sibling, 1 reply; 49+ messages in thread
From: Thomas Huth @ 2021-02-24 13:58 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel, Samuel Thibault
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On 24/02/2021 14.11, Daniel P. Berrangé wrote:
> This was replaced by the '-device usb-DEV' option.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   docs/system/deprecated.rst       |  9 -------
>   docs/system/removed-features.rst |  9 +++++++
>   softmmu/vl.c                     | 42 --------------------------------
>   3 files changed, 9 insertions(+), 51 deletions(-)

Last time I tried to remove -usbdevice, there was some concerns that 
-usbdevice braille might still be useful for some people, see the thread 
that started here:

  https://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg00651.html

(and Gerd's summary here: 
https://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg01520.html )

So we might need a new "sugared" option like "-braille" instead before we 
can fully remove -usbdevice? ... or we just keep -usbdevice as a bittersweet 
remainder?

  Thomas



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 04/14] softmmu: remove '-usbdevice' command line option
  2021-02-24 13:58   ` Thomas Huth
@ 2021-02-24 14:10     ` Daniel P. Berrangé
  2021-02-25  5:34       ` Thomas Huth
  0 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 14:10 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta, Samuel Thibault,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Marc-André Lureau, Cleber Rosa, John Snow, David Gibson,
	Kevin Wolf, Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc,
	Paolo Bonzini

On Wed, Feb 24, 2021 at 02:58:19PM +0100, Thomas Huth wrote:
> On 24/02/2021 14.11, Daniel P. Berrangé wrote:
> > This was replaced by the '-device usb-DEV' option.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> >   docs/system/deprecated.rst       |  9 -------
> >   docs/system/removed-features.rst |  9 +++++++
> >   softmmu/vl.c                     | 42 --------------------------------
> >   3 files changed, 9 insertions(+), 51 deletions(-)
> 
> Last time I tried to remove -usbdevice, there was some concerns that
> -usbdevice braille might still be useful for some people, see the thread
> that started here:
> 
>  https://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg00651.html
> 
> (and Gerd's summary here:
> https://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg01520.html )

Urgh, so the current deprecation docs are a bit misleading by saying
-usbdevice is directly mapped to -device.

> So we might need a new "sugared" option like "-braille" instead before we
> can fully remove -usbdevice? ... or we just keep -usbdevice as a bittersweet
> remainder?

I'm not going to implement new CLI options, and if that's needed, we
ought to re-start the clock on the deprecation at that point. So this
points towards just removing the deprecation warning that exists
today. Or alternatively drop support for -usbdevice, except for the
braille type.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 09/14] hw/ide: remove 'ide-drive' device
  2021-02-24 13:11 ` [PATCH 09/14] hw/ide: remove 'ide-drive' device Daniel P. Berrangé
@ 2021-02-24 14:19   ` Thomas Huth
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas Huth @ 2021-02-24 14:19 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On 24/02/2021 14.11, Daniel P. Berrangé wrote:
> The 'ide-hd' and 'ide-cd' devices provide suitable alternatives.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   docs/qdev-device-use.txt         |  2 +-
>   docs/system/deprecated.rst       |  6 -----
>   docs/system/removed-features.rst |  9 ++++++++
>   hw/i386/pc.c                     |  1 -
>   hw/ide/qdev.c                    | 38 --------------------------------
>   hw/ppc/mac_newworld.c            | 13 -----------
>   hw/ppc/mac_oldworld.c            | 13 -----------
>   hw/sparc64/sun4u.c               | 14 ------------
>   scripts/device-crash-test        |  1 -
>   softmmu/vl.c                     |  1 -
>   tests/qemu-iotests/051           |  2 --
>   tests/qemu-iotests/051.pc.out    | 10 ---------
>   12 files changed, 10 insertions(+), 100 deletions(-)
> 
> diff --git a/docs/qdev-device-use.txt b/docs/qdev-device-use.txt
> index 245cdf29c7..2408889334 100644
> --- a/docs/qdev-device-use.txt
> +++ b/docs/qdev-device-use.txt
> @@ -388,7 +388,7 @@ type.
>   some DEVNAMEs:
>   
>       default device      suppressing DEVNAMEs
> -    CD-ROM              ide-cd, ide-drive, ide-hd, scsi-cd, scsi-hd
> +    CD-ROM              ide-cd, ide-hd, scsi-cd, scsi-hd
>       floppy              floppy, isa-fdc
>       parallel            isa-parallel
>       serial              isa-serial
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index c69887dca8..f5c82a46dc 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -242,12 +242,6 @@ this CPU is also deprecated.
>   System emulator devices
>   -----------------------
>   
> -``ide-drive`` (since 4.2)
> -'''''''''''''''''''''''''
> -
> -The 'ide-drive' device is deprecated. Users should use 'ide-hd' or
> -'ide-cd' as appropriate to get an IDE hard disk or CD-ROM as needed.
> -
>   ``scsi-disk`` (since 4.2)
>   '''''''''''''''''''''''''
>   
> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
> index 870a222062..8fd3fafb32 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -213,6 +213,15 @@ This machine has been renamed ``fuloong2e``.
>   These machine types were very old and likely could not be used for live
>   migration from old QEMU versions anymore. Use a newer machine type instead.
>   
> +System emulator devices
> +-----------------------
> +
> +``ide-drive`` (removed in 6.0)
> +''''''''''''''''''''''''''''''
> +
> +The 'ide-drive' device has been removed. Users should use 'ide-hd' or
> +'ide-cd' as appropriate to get an IDE hard disk or CD-ROM as needed.
> +
>   Related binaries
>   ----------------
>   
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 8aa85dec54..828122e21e 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -342,7 +342,6 @@ GlobalProperty pc_compat_1_4[] = {
>       { "scsi-disk", "discard_granularity", "0" },
>       { "ide-hd", "discard_granularity", "0" },
>       { "ide-cd", "discard_granularity", "0" },
> -    { "ide-drive", "discard_granularity", "0" },
>       { "virtio-blk-pci", "discard_granularity", "0" },
>       /* DEV_NVECTORS_UNSPECIFIED as a uint32_t string: */
>       { "virtio-serial-pci", "vectors", "0xFFFFFFFF" },
> diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
> index 8cd19fa5e9..e70ebc83a0 100644
> --- a/hw/ide/qdev.c
> +++ b/hw/ide/qdev.c
> @@ -283,20 +283,6 @@ static void ide_cd_realize(IDEDevice *dev, Error **errp)
>       ide_dev_initfn(dev, IDE_CD, errp);
>   }
>   
> -static void ide_drive_realize(IDEDevice *dev, Error **errp)
> -{
> -    DriveInfo *dinfo = NULL;
> -
> -    warn_report("'ide-drive' is deprecated, "
> -                "please use 'ide-hd' or 'ide-cd' instead");
> -
> -    if (dev->conf.blk) {
> -        dinfo = blk_legacy_dinfo(dev->conf.blk);
> -    }
> -
> -    ide_dev_initfn(dev, dinfo && dinfo->media_cd ? IDE_CD : IDE_HD, errp);
> -}

I wonder whether we now could also make the "media" parameter of "-drive" as 
deprecated?

Anyway, for this patch:
Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 10/14] hw/scsi: remove 'scsi-disk' device
  2021-02-24 13:11 ` [PATCH 10/14] hw/scsi: remove 'scsi-disk' device Daniel P. Berrangé
@ 2021-02-24 14:26   ` Thomas Huth
  2021-03-11 10:46     ` Daniel P. Berrangé
  2021-03-15 12:21   ` Thomas Huth
  1 sibling, 1 reply; 49+ messages in thread
From: Thomas Huth @ 2021-02-24 14:26 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On 24/02/2021 14.11, Daniel P. Berrangé wrote:
> The 'scsi-hd' and 'scsi-cd' devices provide suitable alternatives.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   docs/system/deprecated.rst       |  9 -----
>   docs/system/removed-features.rst |  6 ++++
>   hw/i386/pc.c                     |  1 -
>   hw/scsi/scsi-disk.c              | 62 --------------------------------
>   hw/sparc64/sun4u.c               |  1 -
>   scripts/device-crash-test        |  1 -
>   tests/qemu-iotests/051           |  2 --
>   tests/qemu-iotests/051.pc.out    | 10 ------
>   8 files changed, 6 insertions(+), 86 deletions(-)

I see some occurrances of "scsi-disk" in the config files in the 
docs/config/ directory, too ... I guess they should also be removed?

> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
> index d7c27144ba..cda7df36e3 100644
> --- a/hw/sparc64/sun4u.c
> +++ b/hw/sparc64/sun4u.c
> @@ -749,7 +749,6 @@ static char *sun4u_fw_dev_path(FWPathProvider *p, BusState *bus,
>                                  DeviceState *dev)
>   {
>       PCIDevice *pci;
> -    int bus_id;
>   
>       if (!strcmp(object_get_typename(OBJECT(dev)), "pbm-bridge")) {
>           pci = PCI_DEVICE(dev);

This lonely hunk should be squashed into the previous (ide-disk) patch instead.

  Thomas



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 00/14] deprecations: remove many old deprecations
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (14 preceding siblings ...)
  2021-02-24 13:26 ` [PATCH 00/14] deprecations: remove many old deprecations Paolo Bonzini
@ 2021-02-24 14:38 ` Peter Maydell
  2021-02-24 15:02   ` Daniel P. Berrangé
  2021-02-24 15:21   ` Philippe Mathieu-Daudé
  2021-02-25 17:32 ` Jim Fehlig
  16 siblings, 2 replies; 49+ messages in thread
From: Peter Maydell @ 2021-02-24 14:38 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Fam Zheng, Michael S. Tsirkin, Libvirt, Mark Cave-Ayland,
	QEMU Developers, Gerd Hoffmann, Qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Greg Kurz, Dr. David Alan Gilbert,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On Wed, 24 Feb 2021 at 13:21, Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> The following features have been deprecated for well over the 2
> release cycle we promise
>
>   ``-usbdevice`` (since 2.10.0)
>   ``-drive file=3Djson:{...{'driver':'file'}}`` (since 3.0)
>   ``-vnc acl`` (since 4.0.0)
>   ``-mon ...,control=3Dreadline,pretty=3Don|off`` (since 4.1)

Are the literal '=3D' here intended ?


thanks
-- PMM


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 11/14] block: remove 'encryption_key_missing' flag from QAPI
  2021-02-24 13:11 ` [PATCH 11/14] block: remove 'encryption_key_missing' flag from QAPI Daniel P. Berrangé
@ 2021-02-24 15:01   ` Thomas Huth
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas Huth @ 2021-02-24 15:01 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On 24/02/2021 14.11, Daniel P. Berrangé wrote:
> This has been hardcoded to "false" since 2.10.0, since secrets required
> to unlock block devices are now always provided upfront instead of using
> interactive prompts.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   block/qapi.c                     |  1 -
>   docs/system/deprecated.rst       | 10 -------
>   docs/system/removed-features.rst | 10 +++++++
>   qapi/block-core.json             |  8 ------
>   tests/qemu-iotests/184.out       |  6 ++--
>   tests/qemu-iotests/191.out       | 48 +++++++++++---------------------
>   tests/qemu-iotests/273.out       | 15 ++++------
>   7 files changed, 33 insertions(+), 65 deletions(-)
> 
> diff --git a/block/qapi.c b/block/qapi.c
> index 84a0aadc09..3acc118c44 100644
> --- a/block/qapi.c
> +++ b/block/qapi.c
> @@ -62,7 +62,6 @@ BlockDeviceInfo *bdrv_block_device_info(BlockBackend *blk,
>       info->ro                     = bs->read_only;
>       info->drv                    = g_strdup(bs->drv->format_name);
>       info->encrypted              = bs->encrypted;
> -    info->encryption_key_missing = false;
>   
>       info->cache = g_new(BlockdevCacheInfo, 1);
>       *info->cache = (BlockdevCacheInfo) {
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index cb88fea94f..e746a63edf 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -147,16 +147,6 @@ Use argument ``id`` instead.
>   
>   Use argument ``id`` instead.
>   
> -``query-named-block-nodes`` result ``encryption_key_missing`` (since 2.10.0)
> -''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -Always false.
> -
> -``query-block`` result ``inserted.encryption_key_missing`` (since 2.10.0)
> -'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -Always false.
> -
>   ``blockdev-add`` empty string argument ``backing`` (since 2.10.0)
>   '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>   
> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
> index bb6bc8dfc8..583f14f02e 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -112,6 +112,16 @@ chardev client socket with ``wait`` option (removed in 6.0)
>   Character devices creating sockets in client mode should not specify
>   the 'wait' field, which is only applicable to sockets in server mode
>   
> +``query-named-block-nodes`` result ``encryption_key_missing`` (removed in 6.0)
> +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +Always false.

Should that be "Removed with no replacement", too ? (just like the one below)

> +``query-block`` result ``inserted.encryption_key_missing`` (removed in 6.0)
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +Removed with no replacement
> +

Apart from that nit:
Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 00/14] deprecations: remove many old deprecations
  2021-02-24 14:38 ` Peter Maydell
@ 2021-02-24 15:02   ` Daniel P. Berrangé
  2021-02-24 15:21   ` Philippe Mathieu-Daudé
  1 sibling, 0 replies; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-02-24 15:02 UTC (permalink / raw)
  To: Peter Maydell
  Cc: Fam Zheng, Michael S. Tsirkin, Libvirt, Mark Cave-Ayland,
	QEMU Developers, Gerd Hoffmann, Qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Greg Kurz, Dr. David Alan Gilbert,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On Wed, Feb 24, 2021 at 02:38:43PM +0000, Peter Maydell wrote:
> On Wed, 24 Feb 2021 at 13:21, Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > The following features have been deprecated for well over the 2
> > release cycle we promise
> >
> >   ``-usbdevice`` (since 2.10.0)
> >   ``-drive file=3Djson:{...{'driver':'file'}}`` (since 3.0)
> >   ``-vnc acl`` (since 4.0.0)
> >   ``-mon ...,control=3Dreadline,pretty=3Don|off`` (since 4.1)
> 
> Are the literal '=3D' here intended ?

git-publish has done something wierd to the cover letter encoding that
I don't understand.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 00/14] deprecations: remove many old deprecations
  2021-02-24 14:38 ` Peter Maydell
  2021-02-24 15:02   ` Daniel P. Berrangé
@ 2021-02-24 15:21   ` Philippe Mathieu-Daudé
  2021-03-08 16:42     ` Stefan Hajnoczi
  1 sibling, 1 reply; 49+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-02-24 15:21 UTC (permalink / raw)
  To: Peter Maydell, Daniel P. Berrangé, Stefan Hajnoczi
  Cc: Fam Zheng, Michael S. Tsirkin, Libvirt, Mark Cave-Ayland,
	QEMU Developers, Gerd Hoffmann, Qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Artyom Tarasenko, Laurent Vivier,
	Thomas Huth, Eduardo Habkost, Richard Henderson, Greg Kurz,
	Dr. David Alan Gilbert, Cleber Rosa, John Snow, David Gibson,
	Kevin Wolf, Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc,
	Paolo Bonzini

On 2/24/21 3:38 PM, Peter Maydell wrote:
> On Wed, 24 Feb 2021 at 13:21, Daniel P. Berrangé <berrange@redhat.com> wrote:
>>
>> The following features have been deprecated for well over the 2
>> release cycle we promise
>>
>>   ``-usbdevice`` (since 2.10.0)
>>   ``-drive file=3Djson:{...{'driver':'file'}}`` (since 3.0)
>>   ``-vnc acl`` (since 4.0.0)
>>   ``-mon ...,control=3Dreadline,pretty=3Don|off`` (since 4.1)
> 
> Are the literal '=3D' here intended ?

No, this is a git-publish bug:
https://github.com/stefanha/git-publish/issues/88

Apparently the fix is not yet backported to Fedora.



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 04/14] softmmu: remove '-usbdevice' command line option
  2021-02-24 14:10     ` Daniel P. Berrangé
@ 2021-02-25  5:34       ` Thomas Huth
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas Huth @ 2021-02-25  5:34 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta, Samuel Thibault,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Marc-André Lureau, Cleber Rosa, John Snow, David Gibson,
	Kevin Wolf, Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc,
	Paolo Bonzini

On 24/02/2021 15.10, Daniel P. Berrangé wrote:
> On Wed, Feb 24, 2021 at 02:58:19PM +0100, Thomas Huth wrote:
>> On 24/02/2021 14.11, Daniel P. Berrangé wrote:
>>> This was replaced by the '-device usb-DEV' option.
>>>
>>> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
>>> ---
>>>    docs/system/deprecated.rst       |  9 -------
>>>    docs/system/removed-features.rst |  9 +++++++
>>>    softmmu/vl.c                     | 42 --------------------------------
>>>    3 files changed, 9 insertions(+), 51 deletions(-)
>>
>> Last time I tried to remove -usbdevice, there was some concerns that
>> -usbdevice braille might still be useful for some people, see the thread
>> that started here:
>>
>>   https://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg00651.html
>>
>> (and Gerd's summary here:
>> https://lists.nongnu.org/archive/html/qemu-devel/2018-01/msg01520.html )
> 
> Urgh, so the current deprecation docs are a bit misleading by saying
> -usbdevice is directly mapped to -device.
> 
>> So we might need a new "sugared" option like "-braille" instead before we
>> can fully remove -usbdevice? ... or we just keep -usbdevice as a bittersweet
>> remainder?
> 
> I'm not going to implement new CLI options, and if that's needed, we
> ought to re-start the clock on the deprecation at that point. So this
> points towards just removing the deprecation warning that exists
> today. Or alternatively drop support for -usbdevice, except for the
> braille type.

After that discussion in 2018, I've removed all of the "annoying" -usbdevice 
parameters already (see commit 99761176eeaf8525). I then more or less waited 
for someone to step up and implement "-braille", but it never happened and I 
forgot about the removal of the remaining -usbdevice parameters. Thinking 
about this again, replacing "-usbdevice braille" with a "-braille usb" does 
indeed not buy us much, so I think the best is maybe to keep the simple 
devices and braille around, update our documentation and remove the 
deprecation warning instead.

  Thomas



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 06/14] machine: remove 'query-cpus' QMP command
  2021-02-24 13:11 ` [PATCH 06/14] machine: remove 'query-cpus' QMP command Daniel P. Berrangé
@ 2021-02-25 12:32   ` Wainer dos Santos Moschetta
  0 siblings, 0 replies; 49+ messages in thread
From: Wainer dos Santos Moschetta @ 2021-02-25 12:32 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

Hi,

On 2/24/21 10:11 AM, Daniel P. Berrangé wrote:
> The newer 'query-cpus-fast' command avoids side effects on the guest
> execution. Note that some of the field names are different in the
> 'query-cpus-fast' command.
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   docs/system/deprecated.rst                 |   5 -
>   docs/system/removed-features.rst           |   5 +
>   hw/core/machine-hmp-cmds.c                 |   8 +-
>   hw/core/machine-qmp-cmds.c                 |  79 ----------
>   qapi/machine.json                          | 161 +--------------------
>   tests/acceptance/pc_cpu_hotplug_props.py   |   2 +-
>   tests/acceptance/x86_cpu_model_versions.py |   2 +-
>   tests/migration/guestperf/engine.py        |   2 +-
>   tests/qtest/numa-test.c                    |   6 +-
>   tests/qtest/qmp-test.c                     |   6 +-
>   tests/qtest/test-x86-cpuid-compat.c        |   4 +-
>   11 files changed, 22 insertions(+), 258 deletions(-)
>
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index e214f0a9cf..484f017119 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -192,11 +192,6 @@ Since the ``dirty-bitmaps`` field is optionally present in both the old and
>   new locations, clients must use introspection to learn where to anticipate
>   the field if/when it does appear in command output.
>   
> -``query-cpus`` (since 2.12.0)
> -'''''''''''''''''''''''''''''
> -
> -The ``query-cpus`` command is replaced by the ``query-cpus-fast`` command.
> -
>   ``query-cpus-fast`` ``arch`` output member (since 3.0.0)
>   ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>   
> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
> index 2c5513dcc7..ad146daf9b 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -95,6 +95,11 @@ Use ``migrate_set_parameter`` and ``info migrate_parameters`` instead.
>   
>   Use ``migrate_set_parameter`` instead.
>   
> +``query-cpus`` (removed in 6.0)
> +'''''''''''''''''''''''''''''''
> +
> +The ``query-cpus`` command is replaced by the ``query-cpus-fast`` command.
> +
>   Human Monitor Protocol (HMP) commands
>   -------------------------------------
>   
> diff --git a/hw/core/machine-hmp-cmds.c b/hw/core/machine-hmp-cmds.c
> index 6357be9c6b..58248cffa3 100644
> --- a/hw/core/machine-hmp-cmds.c
> +++ b/hw/core/machine-hmp-cmds.c
> @@ -130,7 +130,7 @@ void hmp_info_numa(Monitor *mon, const QDict *qdict)
>   {
>       int i, nb_numa_nodes;
>       NumaNodeMem *node_mem;
> -    CpuInfoList *cpu_list, *cpu;
> +    CpuInfoFastList *cpu_list, *cpu;
>       MachineState *ms = MACHINE(qdev_get_machine());
>   
>       nb_numa_nodes = ms->numa_state ? ms->numa_state->num_nodes : 0;
> @@ -139,7 +139,7 @@ void hmp_info_numa(Monitor *mon, const QDict *qdict)
>           return;
>       }
>   
> -    cpu_list = qmp_query_cpus(&error_abort);
> +    cpu_list = qmp_query_cpus_fast(&error_abort);
>       node_mem = g_new0(NumaNodeMem, nb_numa_nodes);
>   
>       query_numa_node_mem(node_mem, ms);
> @@ -148,7 +148,7 @@ void hmp_info_numa(Monitor *mon, const QDict *qdict)
>           for (cpu = cpu_list; cpu; cpu = cpu->next) {
>               if (cpu->value->has_props && cpu->value->props->has_node_id &&
>                   cpu->value->props->node_id == i) {
> -                monitor_printf(mon, " %" PRIi64, cpu->value->CPU);
> +                monitor_printf(mon, " %" PRIi64, cpu->value->cpu_index);
>               }
>           }
>           monitor_printf(mon, "\n");
> @@ -157,6 +157,6 @@ void hmp_info_numa(Monitor *mon, const QDict *qdict)
>           monitor_printf(mon, "node %d plugged: %" PRId64 " MB\n", i,
>                          node_mem[i].node_plugged_mem >> 20);
>       }
> -    qapi_free_CpuInfoList(cpu_list);
> +    qapi_free_CpuInfoFastList(cpu_list);
>       g_free(node_mem);
>   }
> diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c
> index 44e979e503..af60cd969d 100644
> --- a/hw/core/machine-qmp-cmds.c
> +++ b/hw/core/machine-qmp-cmds.c
> @@ -24,85 +24,6 @@
>   #include "sysemu/runstate.h"
>   #include "sysemu/sysemu.h"
>   
> -CpuInfoList *qmp_query_cpus(Error **errp)
> -{
> -    MachineState *ms = MACHINE(qdev_get_machine());
> -    MachineClass *mc = MACHINE_GET_CLASS(ms);
> -    CpuInfoList *head = NULL, **tail = &head;
> -    CPUState *cpu;
> -
> -    CPU_FOREACH(cpu) {
> -        CpuInfo *value;
> -#if defined(TARGET_I386)
> -        X86CPU *x86_cpu = X86_CPU(cpu);
> -        CPUX86State *env = &x86_cpu->env;
> -#elif defined(TARGET_PPC)
> -        PowerPCCPU *ppc_cpu = POWERPC_CPU(cpu);
> -        CPUPPCState *env = &ppc_cpu->env;
> -#elif defined(TARGET_SPARC)
> -        SPARCCPU *sparc_cpu = SPARC_CPU(cpu);
> -        CPUSPARCState *env = &sparc_cpu->env;
> -#elif defined(TARGET_RISCV)
> -        RISCVCPU *riscv_cpu = RISCV_CPU(cpu);
> -        CPURISCVState *env = &riscv_cpu->env;
> -#elif defined(TARGET_MIPS)
> -        MIPSCPU *mips_cpu = MIPS_CPU(cpu);
> -        CPUMIPSState *env = &mips_cpu->env;
> -#elif defined(TARGET_TRICORE)
> -        TriCoreCPU *tricore_cpu = TRICORE_CPU(cpu);
> -        CPUTriCoreState *env = &tricore_cpu->env;
> -#elif defined(TARGET_S390X)
> -        S390CPU *s390_cpu = S390_CPU(cpu);
> -        CPUS390XState *env = &s390_cpu->env;
> -#endif
> -
> -        cpu_synchronize_state(cpu);
> -
> -        value = g_malloc0(sizeof(*value));
> -        value->CPU = cpu->cpu_index;
> -        value->current = (cpu == first_cpu);
> -        value->halted = cpu->halted;
> -        value->qom_path = object_get_canonical_path(OBJECT(cpu));
> -        value->thread_id = cpu->thread_id;
> -#if defined(TARGET_I386)
> -        value->arch = CPU_INFO_ARCH_X86;
> -        value->u.x86.pc = env->eip + env->segs[R_CS].base;
> -#elif defined(TARGET_PPC)
> -        value->arch = CPU_INFO_ARCH_PPC;
> -        value->u.ppc.nip = env->nip;
> -#elif defined(TARGET_SPARC)
> -        value->arch = CPU_INFO_ARCH_SPARC;
> -        value->u.q_sparc.pc = env->pc;
> -        value->u.q_sparc.npc = env->npc;
> -#elif defined(TARGET_MIPS)
> -        value->arch = CPU_INFO_ARCH_MIPS;
> -        value->u.q_mips.PC = env->active_tc.PC;
> -#elif defined(TARGET_TRICORE)
> -        value->arch = CPU_INFO_ARCH_TRICORE;
> -        value->u.tricore.PC = env->PC;
> -#elif defined(TARGET_S390X)
> -        value->arch = CPU_INFO_ARCH_S390;
> -        value->u.s390.cpu_state = env->cpu_state;
> -#elif defined(TARGET_RISCV)
> -        value->arch = CPU_INFO_ARCH_RISCV;
> -        value->u.riscv.pc = env->pc;
> -#else
> -        value->arch = CPU_INFO_ARCH_OTHER;
> -#endif
> -        value->has_props = !!mc->cpu_index_to_instance_props;
> -        if (value->has_props) {
> -            CpuInstanceProperties *props;
> -            props = g_malloc0(sizeof(*props));
> -            *props = mc->cpu_index_to_instance_props(ms, cpu->cpu_index);
> -            value->props = props;
> -        }
> -
> -        QAPI_LIST_APPEND(tail, value);
> -    }
> -
> -    return head;
> -}
> -
>   static CpuInfoArch sysemu_target_to_cpuinfo_arch(SysEmuTarget target)
>   {
>       /*
> diff --git a/qapi/machine.json b/qapi/machine.json
> index 330189efe3..9811927504 100644
> --- a/qapi/machine.json
> +++ b/qapi/machine.json
> @@ -38,7 +38,7 @@
>   # @CpuInfoArch:
>   #
>   # An enumeration of cpu types that enable additional information during
> -# @query-cpus and @query-cpus-fast.
> +# @query-cpus-fast.
>   #
>   # @s390: since 2.12
>   #
> @@ -49,114 +49,6 @@
>   { 'enum': 'CpuInfoArch',
>     'data': ['x86', 'sparc', 'ppc', 'mips', 'tricore', 's390', 'riscv', 'other' ] }
>   
> -##
> -# @CpuInfo:
> -#
> -# Information about a virtual CPU
> -#
> -# @CPU: the index of the virtual CPU
> -#
> -# @current: this only exists for backwards compatibility and should be ignored
> -#
> -# @halted: true if the virtual CPU is in the halt state.  Halt usually refers
> -#          to a processor specific low power mode.
> -#
> -# @qom_path: path to the CPU object in the QOM tree (since 2.4)
> -#
> -# @thread_id: ID of the underlying host thread
> -#
> -# @props: properties describing to which node/socket/core/thread
> -#         virtual CPU belongs to, provided if supported by board (since 2.10)
> -#
> -# @arch: architecture of the cpu, which determines which additional fields
> -#        will be listed (since 2.6)
> -#
> -# Since: 0.14
> -#
> -# Notes: @halted is a transient state that changes frequently.  By the time the
> -#        data is sent to the client, the guest may no longer be halted.
> -##
> -{ 'union': 'CpuInfo',
> -  'base': {'CPU': 'int', 'current': 'bool', 'halted': 'bool',
> -           'qom_path': 'str', 'thread_id': 'int',
> -           '*props': 'CpuInstanceProperties', 'arch': 'CpuInfoArch' },
> -  'discriminator': 'arch',
> -  'data': { 'x86': 'CpuInfoX86',
> -            'sparc': 'CpuInfoSPARC',
> -            'ppc': 'CpuInfoPPC',
> -            'mips': 'CpuInfoMIPS',
> -            'tricore': 'CpuInfoTricore',
> -            's390': 'CpuInfoS390',
> -            'riscv': 'CpuInfoRISCV' } }
> -
> -##
> -# @CpuInfoX86:
> -#
> -# Additional information about a virtual i386 or x86_64 CPU
> -#
> -# @pc: the 64-bit instruction pointer
> -#
> -# Since: 2.6
> -##
> -{ 'struct': 'CpuInfoX86', 'data': { 'pc': 'int' } }
> -
> -##
> -# @CpuInfoSPARC:
> -#
> -# Additional information about a virtual SPARC CPU
> -#
> -# @pc: the PC component of the instruction pointer
> -#
> -# @npc: the NPC component of the instruction pointer
> -#
> -# Since: 2.6
> -##
> -{ 'struct': 'CpuInfoSPARC', 'data': { 'pc': 'int', 'npc': 'int' } }
> -
> -##
> -# @CpuInfoPPC:
> -#
> -# Additional information about a virtual PPC CPU
> -#
> -# @nip: the instruction pointer
> -#
> -# Since: 2.6
> -##
> -{ 'struct': 'CpuInfoPPC', 'data': { 'nip': 'int' } }
> -
> -##
> -# @CpuInfoMIPS:
> -#
> -# Additional information about a virtual MIPS CPU
> -#
> -# @PC: the instruction pointer
> -#
> -# Since: 2.6
> -##
> -{ 'struct': 'CpuInfoMIPS', 'data': { 'PC': 'int' } }
> -
> -##
> -# @CpuInfoTricore:
> -#
> -# Additional information about a virtual Tricore CPU
> -#
> -# @PC: the instruction pointer
> -#
> -# Since: 2.6
> -##
> -{ 'struct': 'CpuInfoTricore', 'data': { 'PC': 'int' } }
> -
> -##
> -# @CpuInfoRISCV:
> -#
> -# Additional information about a virtual RISCV CPU
> -#
> -# @pc: the instruction pointer
> -#
> -# Since 2.12
> -##
> -{ 'struct': 'CpuInfoRISCV', 'data': { 'pc': 'int' } }
> -
>   ##
>   # @CpuS390State:
>   #
> @@ -180,53 +72,6 @@
>   ##
>   { 'struct': 'CpuInfoS390', 'data': { 'cpu-state': 'CpuS390State' } }
>   
> -##
> -# @query-cpus:
> -#
> -# Returns a list of information about each virtual CPU.
> -#
> -# This command causes vCPU threads to exit to userspace, which causes
> -# a small interruption to guest CPU execution. This will have a negative
> -# impact on realtime guests and other latency sensitive guest workloads.
> -#
> -# Features:
> -# @deprecated: This command is deprecated, because it interferes with
> -#              the guest.  Use 'query-cpus-fast' instead to avoid the vCPU
> -#              interruption.
> -#
> -# Returns: a list of @CpuInfo for each virtual CPU
> -#
> -# Since: 0.14
> -#
> -# Example:
> -#
> -# -> { "execute": "query-cpus" }
> -# <- { "return": [
> -#          {
> -#             "CPU":0,
> -#             "current":true,
> -#             "halted":false,
> -#             "qom_path":"/machine/unattached/device[0]",
> -#             "arch":"x86",
> -#             "pc":3227107138,
> -#             "thread_id":3134
> -#          },
> -#          {
> -#             "CPU":1,
> -#             "current":false,
> -#             "halted":true,
> -#             "qom_path":"/machine/unattached/device[2]",
> -#             "arch":"x86",
> -#             "pc":7108165,
> -#             "thread_id":3135
> -#          }
> -#       ]
> -#    }
> -#
> -##
> -{ 'command': 'query-cpus', 'returns': ['CpuInfo'],
> -  'features': [ 'deprecated' ] }
> -
>   ##
>   # @CpuInfoFast:
>   #
> @@ -266,9 +111,7 @@
>   ##
>   # @query-cpus-fast:
>   #
> -# Returns information about all virtual CPUs. This command does not
> -# incur a performance penalty and should be used in production
> -# instead of query-cpus.
> +# Returns information about all virtual CPUs.
>   #
>   # Returns: list of @CpuInfoFast
>   #
> diff --git a/tests/acceptance/pc_cpu_hotplug_props.py b/tests/acceptance/pc_cpu_hotplug_props.py
> index e49bf33fc5..f48f68fc6b 100644
> --- a/tests/acceptance/pc_cpu_hotplug_props.py
> +++ b/tests/acceptance/pc_cpu_hotplug_props.py
> @@ -32,4 +32,4 @@ def test_no_die_id(self):
>           self.vm.add_args('-cpu', 'qemu64')
>           self.vm.add_args('-device', 'qemu64-x86_64-cpu,socket-id=1,core-id=0,thread-id=0')
>           self.vm.launch()
> -        self.assertEquals(len(self.vm.command('query-cpus')), 2)
> +        self.assertEquals(len(self.vm.command('query-cpus-fast')), 2)
> diff --git a/tests/acceptance/x86_cpu_model_versions.py b/tests/acceptance/x86_cpu_model_versions.py
> index 2b7461bb41..77ed8597a4 100644
> --- a/tests/acceptance/x86_cpu_model_versions.py
> +++ b/tests/acceptance/x86_cpu_model_versions.py
> @@ -246,7 +246,7 @@ class CascadelakeArchCapabilities(avocado_qemu.Test):
>       :avocado: tags=arch:x86_64
>       """
>       def get_cpu_prop(self, prop):
> -        cpu_path = self.vm.command('query-cpus')[0].get('qom_path')
> +        cpu_path = self.vm.command('query-cpus-fast')[0].get('qom-path')
>           return self.vm.command('qom-get', path=cpu_path, property=prop)


The changes for the two functional tests look good to me. Also I ran 
them locally and passed. So:

Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>

Tested-by: Wainer dos Santos Moschetta <wainersm@redhat.com>

- Wainer

>   
>       def test_4_1(self):
> diff --git a/tests/migration/guestperf/engine.py b/tests/migration/guestperf/engine.py
> index 5161e4ff81..5c965140f8 100644
> --- a/tests/migration/guestperf/engine.py
> +++ b/tests/migration/guestperf/engine.py
> @@ -110,7 +110,7 @@ def _migrate(self, hardware, scenario, src, dst, connect_uri):
>           src_vcpu_time = []
>           src_pid = src.get_pid()
>   
> -        vcpus = src.command("query-cpus")
> +        vcpus = src.command("query-cpus-fast")
>           src_threads = []
>           for vcpu in vcpus:
>               src_threads.append(vcpu["thread_id"])
> diff --git a/tests/qtest/numa-test.c b/tests/qtest/numa-test.c
> index b25ebf97d8..dc0ec571ca 100644
> --- a/tests/qtest/numa-test.c
> +++ b/tests/qtest/numa-test.c
> @@ -72,7 +72,7 @@ static void test_mon_partial(const void *data)
>   
>   static QList *get_cpus(QTestState *qts, QDict **resp)
>   {
> -    *resp = qtest_qmp(qts, "{ 'execute': 'query-cpus' }");
> +    *resp = qtest_qmp(qts, "{ 'execute': 'query-cpus-fast' }");
>       g_assert(*resp);
>       g_assert(qdict_haskey(*resp, "return"));
>       return qdict_get_qlist(*resp, "return");
> @@ -97,10 +97,10 @@ static void test_query_cpus(const void *data)
>           int64_t cpu_idx, node;
>   
>           cpu = qobject_to(QDict, e);
> -        g_assert(qdict_haskey(cpu, "CPU"));
> +        g_assert(qdict_haskey(cpu, "cpu-index"));
>           g_assert(qdict_haskey(cpu, "props"));
>   
> -        cpu_idx = qdict_get_int(cpu, "CPU");
> +        cpu_idx = qdict_get_int(cpu, "cpu-index");
>           props = qdict_get_qdict(cpu, "props");
>           g_assert(qdict_haskey(props, "node-id"));
>           node = qdict_get_int(props, "node-id");
> diff --git a/tests/qtest/qmp-test.c b/tests/qtest/qmp-test.c
> index 11614bf63f..cd27fae3de 100644
> --- a/tests/qtest/qmp-test.c
> +++ b/tests/qtest/qmp-test.c
> @@ -252,7 +252,7 @@ static void test_qmp_oob(void)
>        * Try any command that does not support OOB but with OOB flag. We
>        * should get failure.
>        */
> -    resp = qtest_qmp(qts, "{ 'exec-oob': 'query-cpus' }");
> +    resp = qtest_qmp(qts, "{ 'exec-oob': 'query-cpus-fast' }");
>       g_assert(qdict_haskey(resp, "error"));
>       qobject_unref(resp);
>   
> @@ -289,7 +289,7 @@ static void test_qmp_preconfig(void)
>       g_assert(!qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'query-commands' }")));
>   
>       /* forbidden commands, expected error */
> -    g_assert(qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'query-cpus' }")));
> +    g_assert(qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'query-cpus-fast' }")));
>   
>       /* check that query-status returns preconfig state */
>       rsp = qtest_qmp(qs, "{ 'execute': 'query-status' }");
> @@ -313,7 +313,7 @@ static void test_qmp_preconfig(void)
>       g_assert(qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'x-exit-preconfig' }")));
>   
>       /* enabled commands, no error expected  */
> -    g_assert(!qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'query-cpus' }")));
> +    g_assert(!qmp_rsp_is_err(qtest_qmp(qs, "{ 'execute': 'query-cpus-fast' }")));
>   
>       qtest_quit(qs);
>   }
> diff --git a/tests/qtest/test-x86-cpuid-compat.c b/tests/qtest/test-x86-cpuid-compat.c
> index 7ca1883a29..2ac169faf0 100644
> --- a/tests/qtest/test-x86-cpuid-compat.c
> +++ b/tests/qtest/test-x86-cpuid-compat.c
> @@ -13,12 +13,12 @@ static char *get_cpu0_qom_path(void)
>       QDict *cpu0;
>       char *path;
>   
> -    resp = qmp("{'execute': 'query-cpus', 'arguments': {}}");
> +    resp = qmp("{'execute': 'query-cpus-fast', 'arguments': {}}");
>       g_assert(qdict_haskey(resp, "return"));
>       ret = qdict_get_qlist(resp, "return");
>   
>       cpu0 = qobject_to(QDict, qlist_peek(ret));
> -    path = g_strdup(qdict_get_str(cpu0, "qom_path"));
> +    path = g_strdup(qdict_get_str(cpu0, "qom-path"));
>       qobject_unref(resp);
>       return path;
>   }



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 12/14] block: remove dirty bitmaps 'status' field
  2021-02-24 13:11 ` [PATCH 12/14] block: remove dirty bitmaps 'status' field Daniel P. Berrangé
@ 2021-02-25 15:48   ` Vladimir Sementsov-Ogievskiy
  0 siblings, 0 replies; 49+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2021-02-25 15:48 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Laurent Vivier, Marcel Apfelbaum, Cleber Rosa,
	Dr. David Alan Gilbert, Fam Zheng, Markus Armbruster,
	Michael S. Tsirkin, Juan Quintela, Artyom Tarasenko, libvir-list,
	Mark Cave-Ayland, Philippe Mathieu-Daudé,
	Kevin Wolf, Paolo Bonzini, John Snow, Eduardo Habkost,
	qemu-block, David Gibson, Eric Blake, Greg Kurz,
	Marc-André Lureau, Gerd Hoffmann, Thomas Huth,
	Richard Henderson, Wainer dos Santos Moschetta, qemu-ppc,
	Max Reitz

24.02.2021 16:11, Daniel P. Berrangé wrote:
> The same information is available via the 'recording' and 'busy' fields.
> 
> Signed-off-by: Daniel P. Berrangé<berrange@redhat.com>

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

-- 
Best regards,
Vladimir


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 13/14] block: remove 'dirty-bitmaps' field from 'BlockInfo' struct
  2021-02-24 13:11 ` [PATCH 13/14] block: remove 'dirty-bitmaps' field from 'BlockInfo' struct Daniel P. Berrangé
@ 2021-02-25 15:54   ` Vladimir Sementsov-Ogievskiy
  0 siblings, 0 replies; 49+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2021-02-25 15:54 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Laurent Vivier, Marcel Apfelbaum, Cleber Rosa,
	Dr. David Alan Gilbert, Fam Zheng, Markus Armbruster,
	Michael S. Tsirkin, Juan Quintela, Artyom Tarasenko, libvir-list,
	Mark Cave-Ayland, Philippe Mathieu-Daudé,
	Kevin Wolf, Paolo Bonzini, John Snow, Eduardo Habkost,
	qemu-block, David Gibson, Eric Blake, Greg Kurz,
	Marc-André Lureau, Gerd Hoffmann, Thomas Huth,
	Richard Henderson, Wainer dos Santos Moschetta, qemu-ppc,
	Max Reitz

24.02.2021 16:11, Daniel P. Berrangé wrote:
> The same data is available in the 'BlockDeviceInfo' struct.
> 
> Signed-off-by: Daniel P. Berrangé<berrange@redhat.com>

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

-- 
Best regards,
Vladimir


^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 00/14] deprecations: remove many old deprecations
  2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
                   ` (15 preceding siblings ...)
  2021-02-24 14:38 ` Peter Maydell
@ 2021-02-25 17:32 ` Jim Fehlig
  2021-03-01 11:15     ` Kevin Wolf
  16 siblings, 1 reply; 49+ messages in thread
From: Jim Fehlig @ 2021-02-25 17:32 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela,
	Wainer dos Santos Moschetta, Marcel Apfelbaum,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini,
	xen-devel

Adding xen-devel and Ian to cc.

On 2/24/21 6:11 AM, Daniel P. Berrangé wrote:
> The following features have been deprecated for well over the 2
> release cycle we promise

This reminded me of a bug report we received late last year when updating to 
5.2.0. 'virsh setvcpus' suddenly stopped working for Xen HVM guests. Turns out 
libxl uses cpu-add under the covers.

> 
>    ``-usbdevice`` (since 2.10.0)
>    ``-drive file=3Djson:{...{'driver':'file'}}`` (since 3.0)
>    ``-vnc acl`` (since 4.0.0)
>    ``-mon ...,control=3Dreadline,pretty=3Don|off`` (since 4.1)
>    ``migrate_set_downtime`` and ``migrate_set_speed`` (since 2.8.0)
>    ``query-named-block-nodes`` result ``encryption_key_missing`` (since 2.10.0)
>    ``query-block`` result ``inserted.encryption_key_missing`` (since 2.10.0)
>    ``migrate-set-cache-size`` and ``query-migrate-cache-size`` (since 2.11.0)
>    ``query-named-block-nodes`` and ``query-block`` result dirty-bitmaps[i].sta=
> tus (ince 4.0)
>    ``query-cpus`` (since 2.12.0)
>    ``query-cpus-fast`` ``arch`` output member (since 3.0.0)
>    ``query-events`` (since 4.0)
>    chardev client socket with ``wait`` option (since 4.0)
>    ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, ``acl_remove`` (s=
> ince 4.0.0)
>    ``ide-drive`` (since 4.2)
>    ``scsi-disk`` (since 4.2)
> 
> AFAICT, libvirt has ceased to use all of these too.

A quick grep of the libxl code shows it uses -usbdevice, query-cpus, and scsi-disk.

> There are many more similarly old deprecations not (yet) tackled.

The Xen tools maintainers will need to be more vigilant of the deprecations. I 
don't follow Xen development close enough to know if this topic has already been 
discussed.

Regards,
Jim



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 00/14] deprecations: remove many old deprecations
  2021-02-25 17:32 ` Jim Fehlig
@ 2021-03-01 11:15     ` Kevin Wolf
  0 siblings, 0 replies; 49+ messages in thread
From: Kevin Wolf @ 2021-03-01 11:15 UTC (permalink / raw)
  To: Jim Fehlig
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, xen-devel, qemu-block, Juan Quintela,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson,
	Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

Am 25.02.2021 um 18:32 hat Jim Fehlig geschrieben:
> Adding xen-devel and Ian to cc.
> 
> On 2/24/21 6:11 AM, Daniel P. Berrangé wrote:
> > The following features have been deprecated for well over the 2
> > release cycle we promise
> 
> This reminded me of a bug report we received late last year when updating to
> 5.2.0. 'virsh setvcpus' suddenly stopped working for Xen HVM guests. Turns
> out libxl uses cpu-add under the covers.
> 
> > 
> >    ``-usbdevice`` (since 2.10.0)
> >    ``-drive file=3Djson:{...{'driver':'file'}}`` (since 3.0)
> >    ``-vnc acl`` (since 4.0.0)
> >    ``-mon ...,control=3Dreadline,pretty=3Don|off`` (since 4.1)
> >    ``migrate_set_downtime`` and ``migrate_set_speed`` (since 2.8.0)
> >    ``query-named-block-nodes`` result ``encryption_key_missing`` (since 2.10.0)
> >    ``query-block`` result ``inserted.encryption_key_missing`` (since 2.10.0)
> >    ``migrate-set-cache-size`` and ``query-migrate-cache-size`` (since 2.11.0)
> >    ``query-named-block-nodes`` and ``query-block`` result dirty-bitmaps[i].sta=
> > tus (ince 4.0)
> >    ``query-cpus`` (since 2.12.0)
> >    ``query-cpus-fast`` ``arch`` output member (since 3.0.0)
> >    ``query-events`` (since 4.0)
> >    chardev client socket with ``wait`` option (since 4.0)
> >    ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, ``acl_remove`` (s=
> > ince 4.0.0)
> >    ``ide-drive`` (since 4.2)
> >    ``scsi-disk`` (since 4.2)
> > 
> > AFAICT, libvirt has ceased to use all of these too.
> 
> A quick grep of the libxl code shows it uses -usbdevice, query-cpus, and scsi-disk.
> 
> > There are many more similarly old deprecations not (yet) tackled.
> 
> The Xen tools maintainers will need to be more vigilant of the deprecations.
> I don't follow Xen development close enough to know if this topic has
> already been discussed.

MAINTAINERS has a section for "Incompatible changes" that covers
docs/system/deprecated.rst. Maybe if the Xen maintainers are interested
in that, we could add another list or individual people there so they
would see patches that deprecate something?

But either way, it would probably be useful to check the full
deprecation list rather than just what we're going to remove right now.

Kevin



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 00/14] deprecations: remove many old deprecations
@ 2021-03-01 11:15     ` Kevin Wolf
  0 siblings, 0 replies; 49+ messages in thread
From: Kevin Wolf @ 2021-03-01 11:15 UTC (permalink / raw)
  To: Jim Fehlig
  Cc: Daniel P. Berrangé,
	qemu-devel, Fam Zheng, Michael S. Tsirkin, libvir-list,
	Mark Cave-Ayland, Gerd Hoffmann, qemu-block, Juan Quintela,
	Wainer dos Santos Moschetta, Marcel Apfelbaum,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini,
	xen-devel

Am 25.02.2021 um 18:32 hat Jim Fehlig geschrieben:
> Adding xen-devel and Ian to cc.
> 
> On 2/24/21 6:11 AM, Daniel P. Berrangé wrote:
> > The following features have been deprecated for well over the 2
> > release cycle we promise
> 
> This reminded me of a bug report we received late last year when updating to
> 5.2.0. 'virsh setvcpus' suddenly stopped working for Xen HVM guests. Turns
> out libxl uses cpu-add under the covers.
> 
> > 
> >    ``-usbdevice`` (since 2.10.0)
> >    ``-drive file=3Djson:{...{'driver':'file'}}`` (since 3.0)
> >    ``-vnc acl`` (since 4.0.0)
> >    ``-mon ...,control=3Dreadline,pretty=3Don|off`` (since 4.1)
> >    ``migrate_set_downtime`` and ``migrate_set_speed`` (since 2.8.0)
> >    ``query-named-block-nodes`` result ``encryption_key_missing`` (since 2.10.0)
> >    ``query-block`` result ``inserted.encryption_key_missing`` (since 2.10.0)
> >    ``migrate-set-cache-size`` and ``query-migrate-cache-size`` (since 2.11.0)
> >    ``query-named-block-nodes`` and ``query-block`` result dirty-bitmaps[i].sta=
> > tus (ince 4.0)
> >    ``query-cpus`` (since 2.12.0)
> >    ``query-cpus-fast`` ``arch`` output member (since 3.0.0)
> >    ``query-events`` (since 4.0)
> >    chardev client socket with ``wait`` option (since 4.0)
> >    ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, ``acl_remove`` (s=
> > ince 4.0.0)
> >    ``ide-drive`` (since 4.2)
> >    ``scsi-disk`` (since 4.2)
> > 
> > AFAICT, libvirt has ceased to use all of these too.
> 
> A quick grep of the libxl code shows it uses -usbdevice, query-cpus, and scsi-disk.
> 
> > There are many more similarly old deprecations not (yet) tackled.
> 
> The Xen tools maintainers will need to be more vigilant of the deprecations.
> I don't follow Xen development close enough to know if this topic has
> already been discussed.

MAINTAINERS has a section for "Incompatible changes" that covers
docs/system/deprecated.rst. Maybe if the Xen maintainers are interested
in that, we could add another list or individual people there so they
would see patches that deprecate something?

But either way, it would probably be useful to check the full
deprecation list rather than just what we're going to remove right now.

Kevin



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 00/14] deprecations: remove many old deprecations
  2021-02-24 15:21   ` Philippe Mathieu-Daudé
@ 2021-03-08 16:42     ` Stefan Hajnoczi
  0 siblings, 0 replies; 49+ messages in thread
From: Stefan Hajnoczi @ 2021-03-08 16:42 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Fam Zheng, Peter Maydell, Michael S. Tsirkin, Libvirt,
	Mark Cave-Ayland, QEMU Developers, Gerd Hoffmann, Qemu-block,
	Juan Quintela, Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Artyom Tarasenko, Laurent Vivier,
	Thomas Huth, Eduardo Habkost, Richard Henderson, Greg Kurz,
	Dr. David Alan Gilbert, Cleber Rosa, John Snow, David Gibson,
	Kevin Wolf, Vladimir Sementsov-Ogievskiy, Daniel P. Berrangé,
	Max Reitz, qemu-ppc, Paolo Bonzini

[-- Attachment #1: Type: text/plain, Size: 820 bytes --]

On Wed, Feb 24, 2021 at 04:21:13PM +0100, Philippe Mathieu-Daudé wrote:
> On 2/24/21 3:38 PM, Peter Maydell wrote:
> > On Wed, 24 Feb 2021 at 13:21, Daniel P. Berrangé <berrange@redhat.com> wrote:
> >>
> >> The following features have been deprecated for well over the 2
> >> release cycle we promise
> >>
> >>   ``-usbdevice`` (since 2.10.0)
> >>   ``-drive file=3Djson:{...{'driver':'file'}}`` (since 3.0)
> >>   ``-vnc acl`` (since 4.0.0)
> >>   ``-mon ...,control=3Dreadline,pretty=3Don|off`` (since 4.1)
> > 
> > Are the literal '=3D' here intended ?
> 
> No, this is a git-publish bug:
> https://github.com/stefanha/git-publish/issues/88
> 
> Apparently the fix is not yet backported to Fedora.

Thanks for reminding me. I'll roll a new git-publish release and package
it in Fedora.

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 10/14] hw/scsi: remove 'scsi-disk' device
  2021-02-24 14:26   ` Thomas Huth
@ 2021-03-11 10:46     ` Daniel P. Berrangé
  0 siblings, 0 replies; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-03-11 10:46 UTC (permalink / raw)
  To: Thomas Huth
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On Wed, Feb 24, 2021 at 03:26:59PM +0100, Thomas Huth wrote:
> On 24/02/2021 14.11, Daniel P. Berrangé wrote:
> > The 'scsi-hd' and 'scsi-cd' devices provide suitable alternatives.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> >   docs/system/deprecated.rst       |  9 -----
> >   docs/system/removed-features.rst |  6 ++++
> >   hw/i386/pc.c                     |  1 -
> >   hw/scsi/scsi-disk.c              | 62 --------------------------------
> >   hw/sparc64/sun4u.c               |  1 -
> >   scripts/device-crash-test        |  1 -
> >   tests/qemu-iotests/051           |  2 --
> >   tests/qemu-iotests/051.pc.out    | 10 ------
> >   8 files changed, 6 insertions(+), 86 deletions(-)
> 
> I see some occurrances of "scsi-disk" in the config files in the
> docs/config/ directory, too ... I guess they should also be removed?

Those aren't referring to the "scsi-disk" device type, they are qdev
IDs, and do indeed already use "scsi-hd" as the  device type.

> 
> > diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
> > index d7c27144ba..cda7df36e3 100644
> > --- a/hw/sparc64/sun4u.c
> > +++ b/hw/sparc64/sun4u.c
> > @@ -749,7 +749,6 @@ static char *sun4u_fw_dev_path(FWPathProvider *p, BusState *bus,
> >                                  DeviceState *dev)
> >   {
> >       PCIDevice *pci;
> > -    int bus_id;
> >       if (!strcmp(object_get_typename(OBJECT(dev)), "pbm-bridge")) {
> >           pci = PCI_DEVICE(dev);
> 
> This lonely hunk should be squashed into the previous (ide-disk) patch instead.
> 
>  Thomas

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 05/14] migrate: remove QMP/HMP commands for speed, downtime and cache size
  2021-02-24 13:11 ` [PATCH 05/14] migrate: remove QMP/HMP commands for speed, downtime and cache size Daniel P. Berrangé
@ 2021-03-11 11:54   ` Dr. David Alan Gilbert
  2021-03-11 18:18     ` Paolo Bonzini
  0 siblings, 1 reply; 49+ messages in thread
From: Dr. David Alan Gilbert @ 2021-03-11 11:54 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Greg Kurz, Cleber Rosa, John Snow,
	David Gibson, Kevin Wolf, Vladimir Sementsov-Ogievskiy,
	Max Reitz, qemu-ppc, Paolo Bonzini

* Daniel P. Berrangé (berrange@redhat.com) wrote:
> The generic 'migrate_set_parameters' command handle all types of param.
> 
> Only the QMP commands were documented in the deprecations page, but the
> rationale for deprecating applies equally to HMP, and the replacements
> exist. Furthermore the HMP commands are just shims to the QMP commands,
> so removing the latter breaks the former unless they get re-implemented.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

Yes OK; ouch that's going to break my 7 years of instinctive
'migrate_set_speed 10G' typing, but it's probably the right thing to do.


Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> ---
>  docs/devel/migration.rst            |  2 +-
>  docs/rdma.txt                       |  2 +-
>  docs/system/deprecated.rst          | 10 ---
>  docs/system/removed-features.rst    | 20 ++++++
>  docs/xbzrle.txt                     |  5 --
>  hmp-commands-info.hx                | 13 ----
>  hmp-commands.hx                     | 45 -------------
>  include/monitor/hmp.h               |  4 --
>  migration/migration.c               | 45 -------------
>  migration/ram.c                     |  2 +-
>  monitor/hmp-cmds.c                  | 34 ----------
>  qapi/migration.json                 | 98 -----------------------------
>  tests/migration/guestperf/engine.py | 16 ++---
>  tests/qemu-iotests/181              |  2 +-
>  tests/qtest/migration-test.c        | 48 --------------
>  tests/qtest/test-hmp.c              |  6 +-
>  tests/qtest/vhost-user-test.c       |  8 +--
>  17 files changed, 40 insertions(+), 320 deletions(-)
> 
> diff --git a/docs/devel/migration.rst b/docs/devel/migration.rst
> index ad381b89b2..19c3d4f3ea 100644
> --- a/docs/devel/migration.rst
> +++ b/docs/devel/migration.rst
> @@ -641,7 +641,7 @@ time per vCPU.
>  
>  .. note::
>    During the postcopy phase, the bandwidth limits set using
> -  ``migrate_set_speed`` is ignored (to avoid delaying requested pages that
> +  ``migrate_set_parameter`` is ignored (to avoid delaying requested pages that
>    the destination is waiting for).
>  
>  Postcopy device transfer
> diff --git a/docs/rdma.txt b/docs/rdma.txt
> index 49dc9f8bca..2b4cdea1d8 100644
> --- a/docs/rdma.txt
> +++ b/docs/rdma.txt
> @@ -89,7 +89,7 @@ RUNNING:
>  First, set the migration speed to match your hardware's capabilities:
>  
>  QEMU Monitor Command:
> -$ migrate_set_speed 40g # or whatever is the MAX of your RDMA device
> +$ migrate_set_parameter max_bandwidth 40g # or whatever is the MAX of your RDMA device
>  
>  Next, on the destination machine, add the following to the QEMU command line:
>  
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index c577cc97c4..e214f0a9cf 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -147,11 +147,6 @@ Use argument ``id`` instead.
>  
>  Use argument ``id`` instead.
>  
> -``migrate_set_downtime`` and ``migrate_set_speed`` (since 2.8.0)
> -''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -Use ``migrate-set-parameters`` instead.
> -
>  ``query-named-block-nodes`` result ``encryption_key_missing`` (since 2.10.0)
>  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>  
> @@ -167,11 +162,6 @@ Always false.
>  
>  Use argument value ``null`` instead.
>  
> -``migrate-set-cache-size`` and ``query-migrate-cache-size`` (since 2.11.0)
> -''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -Use ``migrate-set-parameters`` and ``query-migrate-parameters`` instead.
> -
>  ``block-commit`` arguments ``base`` and ``top`` (since 3.1.0)
>  '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>  
> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
> index 74d022babf..2c5513dcc7 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -85,6 +85,16 @@ Use ``blockdev-change-medium`` or ``change-vnc-password`` instead.
>  The ``query-events`` command has been superseded by the more powerful
>  and accurate ``query-qmp-schema`` command.
>  
> +``migrate_set_cache_size`` and ``query-migrate-cache-size`` (removed in 6.0)
> +''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +Use ``migrate_set_parameter`` and ``info migrate_parameters`` instead.
> +
> +``migrate_set_downtime`` and ``migrate_set_speed`` (removed in 6.0)
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +Use ``migrate_set_parameter`` instead.
> +
>  Human Monitor Protocol (HMP) commands
>  -------------------------------------
>  
> @@ -113,6 +123,16 @@ The ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, and
>  ``acl_remove`` commands were removed with no replacement. Authorization
>  for VNC should be performed using the pluggable QAuthZ objects.
>  
> +``migrate-set-cache-size`` and ``info migrate-cache-size`` (removed in 6.0)
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +Use ``migrate-set-parameters`` and ``info migrate-parameters`` instead.
> +
> +``migrate_set_downtime`` and ``migrate_set_speed`` (removed in 6.0)
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +Use ``migrate-set-parameters`` instead.
> +
>  Guest Emulator ISAs
>  -------------------
>  
> diff --git a/docs/xbzrle.txt b/docs/xbzrle.txt
> index 6bd1828f34..bcb3f0c901 100644
> --- a/docs/xbzrle.txt
> +++ b/docs/xbzrle.txt
> @@ -90,11 +90,6 @@ Usage
>  
>  3. Set the XBZRLE cache size - the cache size is in MBytes and should be a
>  power of 2. The cache default value is 64MBytes. (on source only)
> -    {qemu} migrate_set_cache_size 256m
> -
> -Commit 73af8dd8d7 "migration: Make xbzrle_cache_size a migration parameter"
> -(v2.11.0) deprecated migrate-set-cache-size, therefore, the new parameter
> -is recommended.
>      {qemu} migrate_set_parameter xbzrle-cache-size 256m
>  
>  4. Start outgoing migration
> diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx
> index 117ba25f91..ab0c7aa5ee 100644
> --- a/hmp-commands-info.hx
> +++ b/hmp-commands-info.hx
> @@ -567,19 +567,6 @@ SRST
>      Show current migration parameters.
>  ERST
>  
> -    {
> -        .name       = "migrate_cache_size",
> -        .args_type  = "",
> -        .params     = "",
> -        .help       = "show current migration xbzrle cache size",
> -        .cmd        = hmp_info_migrate_cache_size,
> -    },
> -
> -SRST
> -  ``info migrate_cache_size``
> -    Show current migration xbzrle cache size.
> -ERST
> -
>      {
>          .name       = "balloon",
>          .args_type  = "",
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index b500b8526d..2bbe133bb6 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -979,51 +979,6 @@ SRST
>    Pause an ongoing migration.  Currently it only supports postcopy.
>  ERST
>  
> -    {
> -        .name       = "migrate_set_cache_size",
> -        .args_type  = "value:o",
> -        .params     = "value",
> -        .help       = "set cache size (in bytes) for XBZRLE migrations,"
> -                      "the cache size will be rounded down to the nearest "
> -                      "power of 2.\n"
> -                      "The cache size affects the number of cache misses."
> -                      "In case of a high cache miss ratio you need to increase"
> -                      " the cache size",
> -        .cmd        = hmp_migrate_set_cache_size,
> -    },
> -
> -SRST
> -``migrate_set_cache_size`` *value*
> -  Set cache size to *value* (in bytes) for xbzrle migrations.
> -ERST
> -
> -    {
> -        .name       = "migrate_set_speed",
> -        .args_type  = "value:o",
> -        .params     = "value",
> -        .help       = "set maximum speed (in bytes) for migrations. "
> -	"Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
> -        .cmd        = hmp_migrate_set_speed,
> -    },
> -
> -SRST
> -``migrate_set_speed`` *value*
> -  Set maximum speed to *value* (in bytes) for migrations.
> -ERST
> -
> -    {
> -        .name       = "migrate_set_downtime",
> -        .args_type  = "value:T",
> -        .params     = "value",
> -        .help       = "set maximum tolerated downtime (in seconds) for migrations",
> -        .cmd        = hmp_migrate_set_downtime,
> -    },
> -
> -SRST
> -``migrate_set_downtime`` *second*
> -  Set maximum tolerated downtime (in seconds) for migration.
> -ERST
> -
>      {
>          .name       = "migrate_set_capability",
>          .args_type  = "capability:s,state:b",
> diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h
> index ed2913fd18..605d57287a 100644
> --- a/include/monitor/hmp.h
> +++ b/include/monitor/hmp.h
> @@ -28,7 +28,6 @@ void hmp_info_mice(Monitor *mon, const QDict *qdict);
>  void hmp_info_migrate(Monitor *mon, const QDict *qdict);
>  void hmp_info_migrate_capabilities(Monitor *mon, const QDict *qdict);
>  void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict);
> -void hmp_info_migrate_cache_size(Monitor *mon, const QDict *qdict);
>  void hmp_info_cpus(Monitor *mon, const QDict *qdict);
>  void hmp_info_vnc(Monitor *mon, const QDict *qdict);
>  void hmp_info_spice(Monitor *mon, const QDict *qdict);
> @@ -64,11 +63,8 @@ void hmp_migrate_continue(Monitor *mon, const QDict *qdict);
>  void hmp_migrate_incoming(Monitor *mon, const QDict *qdict);
>  void hmp_migrate_recover(Monitor *mon, const QDict *qdict);
>  void hmp_migrate_pause(Monitor *mon, const QDict *qdict);
> -void hmp_migrate_set_downtime(Monitor *mon, const QDict *qdict);
> -void hmp_migrate_set_speed(Monitor *mon, const QDict *qdict);
>  void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict);
>  void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict);
> -void hmp_migrate_set_cache_size(Monitor *mon, const QDict *qdict);
>  void hmp_client_migrate_info(Monitor *mon, const QDict *qdict);
>  void hmp_migrate_start_postcopy(Monitor *mon, const QDict *qdict);
>  void hmp_x_colo_lost_heartbeat(Monitor *mon, const QDict *qdict);
> diff --git a/migration/migration.c b/migration/migration.c
> index a5ddf43559..5408367eda 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -2318,51 +2318,6 @@ void qmp_migrate_continue(MigrationStatus state, Error **errp)
>      qemu_sem_post(&s->pause_sem);
>  }
>  
> -void qmp_migrate_set_cache_size(int64_t value, Error **errp)
> -{
> -    MigrateSetParameters p = {
> -        .has_xbzrle_cache_size = true,
> -        .xbzrle_cache_size = value,
> -    };
> -
> -    qmp_migrate_set_parameters(&p, errp);
> -}
> -
> -uint64_t qmp_query_migrate_cache_size(Error **errp)
> -{
> -    return migrate_xbzrle_cache_size();
> -}
> -
> -void qmp_migrate_set_speed(int64_t value, Error **errp)
> -{
> -    MigrateSetParameters p = {
> -        .has_max_bandwidth = true,
> -        .max_bandwidth = value,
> -    };
> -
> -    qmp_migrate_set_parameters(&p, errp);
> -}
> -
> -void qmp_migrate_set_downtime(double value, Error **errp)
> -{
> -    if (value < 0 || value > MAX_MIGRATE_DOWNTIME_SECONDS) {
> -        error_setg(errp, QERR_INVALID_PARAMETER_VALUE,
> -                   "downtime_limit",
> -                   "an integer in the range of 0 to "
> -                    stringify(MAX_MIGRATE_DOWNTIME_SECONDS)" seconds");
> -        return;
> -    }
> -
> -    value *= 1000; /* Convert to milliseconds */
> -
> -    MigrateSetParameters p = {
> -        .has_downtime_limit = true,
> -        .downtime_limit = (int64_t)value,
> -    };
> -
> -    qmp_migrate_set_parameters(&p, errp);
> -}
> -
>  bool migrate_release_ram(void)
>  {
>      MigrationState *s;
> diff --git a/migration/ram.c b/migration/ram.c
> index 72143da0ac..a569b87875 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -121,7 +121,7 @@ static void XBZRLE_cache_unlock(void)
>  /**
>   * xbzrle_cache_resize: resize the xbzrle cache
>   *
> - * This function is called from qmp_migrate_set_cache_size in main
> + * This function is called from migrate_params_apply in main
>   * thread, possibly while a migration is in progress.  A running
>   * migration may be using the cache and might finish during this call,
>   * hence changes to the cache are protected by XBZRLE.lock().
> diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
> index 3c88a4faef..8a47ba8fbb 100644
> --- a/monitor/hmp-cmds.c
> +++ b/monitor/hmp-cmds.c
> @@ -518,12 +518,6 @@ void hmp_info_migrate_parameters(Monitor *mon, const QDict *qdict)
>      qapi_free_MigrationParameters(params);
>  }
>  
> -void hmp_info_migrate_cache_size(Monitor *mon, const QDict *qdict)
> -{
> -    monitor_printf(mon, "xbzrel cache size: %" PRId64 " kbytes\n",
> -                   qmp_query_migrate_cache_size(NULL) >> 10);
> -}
> -
>  
>  #ifdef CONFIG_VNC
>  /* Helper for hmp_info_vnc_clients, _servers */
> @@ -1226,34 +1220,6 @@ void hmp_migrate_pause(Monitor *mon, const QDict *qdict)
>      hmp_handle_error(mon, err);
>  }
>  
> -/* Kept for backwards compatibility */
> -void hmp_migrate_set_downtime(Monitor *mon, const QDict *qdict)
> -{
> -    Error *err = NULL;
> -
> -    double value = qdict_get_double(qdict, "value");
> -    qmp_migrate_set_downtime(value, &err);
> -    hmp_handle_error(mon, err);
> -}
> -
> -void hmp_migrate_set_cache_size(Monitor *mon, const QDict *qdict)
> -{
> -    int64_t value = qdict_get_int(qdict, "value");
> -    Error *err = NULL;
> -
> -    qmp_migrate_set_cache_size(value, &err);
> -    hmp_handle_error(mon, err);
> -}
> -
> -/* Kept for backwards compatibility */
> -void hmp_migrate_set_speed(Monitor *mon, const QDict *qdict)
> -{
> -    Error *err = NULL;
> -
> -    int64_t value = qdict_get_int(qdict, "value");
> -    qmp_migrate_set_speed(value, &err);
> -    hmp_handle_error(mon, err);
> -}
>  
>  void hmp_migrate_set_capability(Monitor *mon, const QDict *qdict)
>  {
> diff --git a/qapi/migration.json b/qapi/migration.json
> index 6e5943fbb4..9bf0bc4d25 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -1398,104 +1398,6 @@
>  ##
>  { 'command': 'migrate-continue', 'data': {'state': 'MigrationStatus'} }
>  
> -##
> -# @migrate_set_downtime:
> -#
> -# Set maximum tolerated downtime for migration.
> -#
> -# @value: maximum downtime in seconds
> -#
> -# Features:
> -# @deprecated: This command is deprecated.  Use
> -#              'migrate-set-parameters' instead.
> -#
> -# Returns: nothing on success
> -#
> -# Since: 0.14
> -#
> -# Example:
> -#
> -# -> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
> -# <- { "return": {} }
> -#
> -##
> -{ 'command': 'migrate_set_downtime', 'data': {'value': 'number'},
> -  'features': [ 'deprecated' ] }
> -
> -##
> -# @migrate_set_speed:
> -#
> -# Set maximum speed for migration.
> -#
> -# @value: maximum speed in bytes per second.
> -#
> -# Features:
> -# @deprecated: This command is deprecated.  Use
> -#              'migrate-set-parameters' instead.
> -#
> -# Returns: nothing on success
> -#
> -# Since: 0.14
> -#
> -# Example:
> -#
> -# -> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
> -# <- { "return": {} }
> -#
> -##
> -{ 'command': 'migrate_set_speed', 'data': {'value': 'int'},
> -  'features': [ 'deprecated' ] }
> -
> -##
> -# @migrate-set-cache-size:
> -#
> -# Set cache size to be used by XBZRLE migration
> -#
> -# @value: cache size in bytes
> -#
> -# Features:
> -# @deprecated: This command is deprecated.  Use
> -#              'migrate-set-parameters' instead.
> -#
> -# The size will be rounded down to the nearest power of 2.
> -# The cache size can be modified before and during ongoing migration
> -#
> -# Returns: nothing on success
> -#
> -# Since: 1.2
> -#
> -# Example:
> -#
> -# -> { "execute": "migrate-set-cache-size",
> -#      "arguments": { "value": 536870912 } }
> -# <- { "return": {} }
> -#
> -##
> -{ 'command': 'migrate-set-cache-size', 'data': {'value': 'int'},
> -  'features': [ 'deprecated' ] }
> -
> -##
> -# @query-migrate-cache-size:
> -#
> -# Query migration XBZRLE cache size
> -#
> -# Features:
> -# @deprecated: This command is deprecated.  Use
> -#              'query-migrate-parameters' instead.
> -#
> -# Returns: XBZRLE cache size in bytes
> -#
> -# Since: 1.2
> -#
> -# Example:
> -#
> -# -> { "execute": "query-migrate-cache-size" }
> -# <- { "return": 67108864 }
> -#
> -##
> -{ 'command': 'query-migrate-cache-size', 'returns': 'size',
> -  'features': [ 'deprecated' ] }
> -
>  ##
>  # @migrate:
>  #
> diff --git a/tests/migration/guestperf/engine.py b/tests/migration/guestperf/engine.py
> index 83bfc3b6bb..5161e4ff81 100644
> --- a/tests/migration/guestperf/engine.py
> +++ b/tests/migration/guestperf/engine.py
> @@ -149,11 +149,11 @@ def _migrate(self, hardware, scenario, src, dst, connect_uri):
>                                       "state": True }
>                                 ])
>  
> -        resp = src.command("migrate_set_speed",
> -                           value=scenario._bandwidth * 1024 * 1024)
> +        resp = src.command("migrate-set-parameters",
> +                           max_bandwidth=scenario._bandwidth * 1024 * 1024)
>  
> -        resp = src.command("migrate_set_downtime",
> -                           value=scenario._downtime / 1024.0)
> +        resp = src.command("migrate-set-parameters",
> +                           downtime_limit=scenario._downtime / 1024.0)
>  
>          if scenario._compression_mt:
>              resp = src.command("migrate-set-capabilities",
> @@ -182,9 +182,11 @@ def _migrate(self, hardware, scenario, src, dst, connect_uri):
>                                     { "capability": "xbzrle",
>                                       "state": True }
>                                 ])
> -            resp = src.command("migrate-set-cache-size",
> -                               value=(hardware._mem * 1024 * 1024 * 1024 / 100 *
> -                                      scenario._compression_xbzrle_cache))
> +            resp = src.command("migrate-set-parameters",
> +                               xbzrle_cache_size=(
> +                                   hardware._mem *
> +                                   1024 * 1024 * 1024 / 100 *
> +                                   scenario._compression_xbzrle_cache))
>  
>          resp = src.command("migrate", uri=connect_uri)
>  
> diff --git a/tests/qemu-iotests/181 b/tests/qemu-iotests/181
> index 820c53ef35..cb96d09ae5 100755
> --- a/tests/qemu-iotests/181
> +++ b/tests/qemu-iotests/181
> @@ -109,7 +109,7 @@ if [ ${QEMU_STATUS[$dest]} -lt 0 ]; then
>      _notrun 'Postcopy is not supported'
>  fi
>  
> -_send_qemu_cmd $src 'migrate_set_speed 4k' "(qemu)"
> +_send_qemu_cmd $src 'migrate_set_parameter max_bandwidth 4k' "(qemu)"
>  _send_qemu_cmd $src 'migrate_set_capability postcopy-ram on' "(qemu)"
>  _send_qemu_cmd $src "migrate -d unix:${MIG_SOCKET}" "(qemu)"
>  _send_qemu_cmd $src 'migrate_start_postcopy' "(qemu)"
> diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c
> index f2142fbd3c..3a711bb492 100644
> --- a/tests/qtest/migration-test.c
> +++ b/tests/qtest/migration-test.c
> @@ -658,53 +658,6 @@ static void test_migrate_end(QTestState *from, QTestState *to, bool test_dest)
>      cleanup("dest_serial");
>  }
>  
> -static void deprecated_set_downtime(QTestState *who, const double value)
> -{
> -    QDict *rsp;
> -
> -    rsp = qtest_qmp(who,
> -                    "{ 'execute': 'migrate_set_downtime',"
> -                    " 'arguments': { 'value': %f } }", value);
> -    g_assert(qdict_haskey(rsp, "return"));
> -    qobject_unref(rsp);
> -    migrate_check_parameter_int(who, "downtime-limit", value * 1000);
> -}
> -
> -static void deprecated_set_speed(QTestState *who, long long value)
> -{
> -    QDict *rsp;
> -
> -    rsp = qtest_qmp(who, "{ 'execute': 'migrate_set_speed',"
> -                          "'arguments': { 'value': %lld } }", value);
> -    g_assert(qdict_haskey(rsp, "return"));
> -    qobject_unref(rsp);
> -    migrate_check_parameter_int(who, "max-bandwidth", value);
> -}
> -
> -static void deprecated_set_cache_size(QTestState *who, long long value)
> -{
> -    QDict *rsp;
> -
> -    rsp = qtest_qmp(who, "{ 'execute': 'migrate-set-cache-size',"
> -                         "'arguments': { 'value': %lld } }", value);
> -    g_assert(qdict_haskey(rsp, "return"));
> -    qobject_unref(rsp);
> -    migrate_check_parameter_int(who, "xbzrle-cache-size", value);
> -}
> -
> -static void test_deprecated(void)
> -{
> -    QTestState *from;
> -
> -    from = qtest_init("-machine none");
> -
> -    deprecated_set_downtime(from, 0.12345);
> -    deprecated_set_speed(from, 12345);
> -    deprecated_set_cache_size(from, 4096);
> -
> -    qtest_quit(from);
> -}
> -
>  static int migrate_postcopy_prepare(QTestState **from_ptr,
>                                      QTestState **to_ptr,
>                                      MigrateStart *args)
> @@ -1486,7 +1439,6 @@ int main(int argc, char **argv)
>  
>      qtest_add_func("/migration/postcopy/unix", test_postcopy);
>      qtest_add_func("/migration/postcopy/recovery", test_postcopy_recovery);
> -    qtest_add_func("/migration/deprecated", test_deprecated);
>      qtest_add_func("/migration/bad_dest", test_baddest);
>      qtest_add_func("/migration/precopy/unix", test_precopy_unix);
>      qtest_add_func("/migration/precopy/tcp", test_precopy_tcp);
> diff --git a/tests/qtest/test-hmp.c b/tests/qtest/test-hmp.c
> index 94a8023173..413eb95d2a 100644
> --- a/tests/qtest/test-hmp.c
> +++ b/tests/qtest/test-hmp.c
> @@ -45,9 +45,9 @@ static const char *hmp_cmds[] = {
>      "log all",
>      "log none",
>      "memsave 0 4096 \"/dev/null\"",
> -    "migrate_set_cache_size 1",
> -    "migrate_set_downtime 1",
> -    "migrate_set_speed 1",
> +    "migrate_set_parameter xbzrle_cache_size 1",
> +    "migrate_set_parameter downtime_limit 1",
> +    "migrate_set_parameter max_bandwidth 1",
>      "netdev_add user,id=net1",
>      "set_link net1 off",
>      "set_link net1 on",
> diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c
> index 1a5f5313ff..3d6337fb5c 100644
> --- a/tests/qtest/vhost-user-test.c
> +++ b/tests/qtest/vhost-user-test.c
> @@ -756,8 +756,8 @@ static void test_migrate(void *obj, void *arg, QGuestAllocator *alloc)
>  
>      /* slow down migration to have time to fiddle with log */
>      /* TODO: qtest could learn to break on some places */
> -    rsp = qmp("{ 'execute': 'migrate_set_speed',"
> -              "'arguments': { 'value': 10 } }");
> +    rsp = qmp("{ 'execute': 'migrate-set-parameters',"
> +              "'arguments': { 'max-bandwidth': 10 } }");
>      g_assert(qdict_haskey(rsp, "return"));
>      qobject_unref(rsp);
>  
> @@ -776,8 +776,8 @@ static void test_migrate(void *obj, void *arg, QGuestAllocator *alloc)
>      munmap(log, size);
>  
>      /* speed things up */
> -    rsp = qmp("{ 'execute': 'migrate_set_speed',"
> -              "'arguments': { 'value': 0 } }");
> +    rsp = qmp("{ 'execute': 'migrate-set-parameters',"
> +              "'arguments': { 'max-bandwidth': 0 } }");
>      g_assert(qdict_haskey(rsp, "return"));
>      qobject_unref(rsp);
>  
> -- 
> 2.29.2
> 
-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 05/14] migrate: remove QMP/HMP commands for speed, downtime and cache size
  2021-03-11 11:54   ` Dr. David Alan Gilbert
@ 2021-03-11 18:18     ` Paolo Bonzini
  2021-03-11 18:33       ` Daniel P. Berrangé
  0 siblings, 1 reply; 49+ messages in thread
From: Paolo Bonzini @ 2021-03-11 18:18 UTC (permalink / raw)
  To: Dr. David Alan Gilbert, Daniel P. Berrangé
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Greg Kurz, Cleber Rosa, John Snow,
	David Gibson, Kevin Wolf, Vladimir Sementsov-Ogievskiy,
	Max Reitz, qemu-ppc

On 11/03/21 12:54, Dr. David Alan Gilbert wrote:
> * Daniel P. Berrangé (berrange@redhat.com) wrote:
>> The generic 'migrate_set_parameters' command handle all types of param.
>>
>> Only the QMP commands were documented in the deprecations page, but the
>> rationale for deprecating applies equally to HMP, and the replacements
>> exist. Furthermore the HMP commands are just shims to the QMP commands,
>> so removing the latter breaks the former unless they get re-implemented.
>>
>> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> 
> Yes OK; ouch that's going to break my 7 years of instinctive
> 'migrate_set_speed 10G' typing, but it's probably the right thing to do.

migrate_set_speed should remain if it is not changed to have a sane default.

Paolo



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 05/14] migrate: remove QMP/HMP commands for speed, downtime and cache size
  2021-03-11 18:18     ` Paolo Bonzini
@ 2021-03-11 18:33       ` Daniel P. Berrangé
  2021-03-11 22:04         ` Paolo Bonzini
  0 siblings, 1 reply; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-03-11 18:33 UTC (permalink / raw)
  To: Paolo Bonzini
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc

On Thu, Mar 11, 2021 at 07:18:54PM +0100, Paolo Bonzini wrote:
> On 11/03/21 12:54, Dr. David Alan Gilbert wrote:
> > * Daniel P. Berrangé (berrange@redhat.com) wrote:
> > > The generic 'migrate_set_parameters' command handle all types of param.
> > > 
> > > Only the QMP commands were documented in the deprecations page, but the
> > > rationale for deprecating applies equally to HMP, and the replacements
> > > exist. Furthermore the HMP commands are just shims to the QMP commands,
> > > so removing the latter breaks the former unless they get re-implemented.
> > > 
> > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > 
> > Yes OK; ouch that's going to break my 7 years of instinctive
> > 'migrate_set_speed 10G' typing, but it's probably the right thing to do.
> 
> migrate_set_speed should remain if it is not changed to have a sane default.

Define sane ?   The default is 1 Gib/s since:

  commit 7590a2ae091fde8bb72d5df93977ab9707e23242
  Author: Laurent Vivier <lvivier@redhat.com>
  Date:   Mon Sep 21 16:49:57 2020 +0200

    migration: increase max-bandwidth to 128 MiB/s (1 Gib/s)

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 05/14] migrate: remove QMP/HMP commands for speed, downtime and cache size
  2021-03-11 18:33       ` Daniel P. Berrangé
@ 2021-03-11 22:04         ` Paolo Bonzini
  0 siblings, 0 replies; 49+ messages in thread
From: Paolo Bonzini @ 2021-03-11 22:04 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	qemu-devel, Gerd Hoffmann, qemu-block, Juan Quintela,
	Markus Armbruster, Wainer dos Santos Moschetta,
	Marc-André Lureau, Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc

On 11/03/21 19:33, Daniel P. Berrangé wrote:
> On Thu, Mar 11, 2021 at 07:18:54PM +0100, Paolo Bonzini wrote:
>> On 11/03/21 12:54, Dr. David Alan Gilbert wrote:
>>> * Daniel P. Berrangé (berrange@redhat.com) wrote:
>>>> The generic 'migrate_set_parameters' command handle all types of param.
>>>>
>>>> Only the QMP commands were documented in the deprecations page, but the
>>>> rationale for deprecating applies equally to HMP, and the replacements
>>>> exist. Furthermore the HMP commands are just shims to the QMP commands,
>>>> so removing the latter breaks the former unless they get re-implemented.
>>>>
>>>> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
>>>
>>> Yes OK; ouch that's going to break my 7 years of instinctive
>>> 'migrate_set_speed 10G' typing, but it's probably the right thing to do.
>>
>> migrate_set_speed should remain if it is not changed to have a sane default.
> 
> Define sane ?   The default is 1 Gib/s since:
> 
>    commit 7590a2ae091fde8bb72d5df93977ab9707e23242
>    Author: Laurent Vivier <lvivier@redhat.com>
>    Date:   Mon Sep 21 16:49:57 2020 +0200
> 
>      migration: increase max-bandwidth to 128 MiB/s (1 Gib/s)

Oh, I missed that!  I was still thinking of the old 32 MiB/s value.

Paolo



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 07/14] machine: remove 'arch' field from 'query-cpus-fast' QMP command
  2021-02-24 13:11 ` [PATCH 07/14] machine: remove 'arch' field from 'query-cpus-fast' " Daniel P. Berrangé
@ 2021-03-15 11:51   ` Daniel P. Berrangé
  2021-03-15 11:54   ` Thomas Huth
  1 sibling, 0 replies; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-03-15 11:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

Ping for anyone willing to review this so I can get this in before freeze.

On Wed, Feb 24, 2021 at 01:11:35PM +0000, Daniel P. Berrangé wrote:
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  docs/system/deprecated.rst       |  6 -----
>  docs/system/removed-features.rst |  6 +++++
>  hw/core/machine-qmp-cmds.c       | 41 --------------------------------
>  qapi/machine.json                | 22 -----------------
>  4 files changed, 6 insertions(+), 69 deletions(-)
> 
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index 484f017119..78474f0845 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -192,12 +192,6 @@ Since the ``dirty-bitmaps`` field is optionally present in both the old and
>  new locations, clients must use introspection to learn where to anticipate
>  the field if/when it does appear in command output.
>  
> -``query-cpus-fast`` ``arch`` output member (since 3.0.0)
> -''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -The ``arch`` output member of the ``query-cpus-fast`` command is
> -replaced by the ``target`` output member.
> -
>  chardev client socket with ``wait`` option (since 4.0)
>  ''''''''''''''''''''''''''''''''''''''''''''''''''''''
>  
> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
> index ad146daf9b..7942c2e513 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -100,6 +100,12 @@ Use ``migrate_set_parameter`` instead.
>  
>  The ``query-cpus`` command is replaced by the ``query-cpus-fast`` command.
>  
> +``query-cpus-fast`` ``arch`` output member (removed in 6.0)
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +The ``arch`` output member of the ``query-cpus-fast`` command is
> +replaced by the ``target`` output member.
> +
>  Human Monitor Protocol (HMP) commands
>  -------------------------------------
>  
> diff --git a/hw/core/machine-qmp-cmds.c b/hw/core/machine-qmp-cmds.c
> index af60cd969d..68a942595a 100644
> --- a/hw/core/machine-qmp-cmds.c
> +++ b/hw/core/machine-qmp-cmds.c
> @@ -24,46 +24,6 @@
>  #include "sysemu/runstate.h"
>  #include "sysemu/sysemu.h"
>  
> -static CpuInfoArch sysemu_target_to_cpuinfo_arch(SysEmuTarget target)
> -{
> -    /*
> -     * The @SysEmuTarget -> @CpuInfoArch mapping below is based on the
> -     * TARGET_ARCH -> TARGET_BASE_ARCH mapping in the "configure" script.
> -     */
> -    switch (target) {
> -    case SYS_EMU_TARGET_I386:
> -    case SYS_EMU_TARGET_X86_64:
> -        return CPU_INFO_ARCH_X86;
> -
> -    case SYS_EMU_TARGET_PPC:
> -    case SYS_EMU_TARGET_PPC64:
> -        return CPU_INFO_ARCH_PPC;
> -
> -    case SYS_EMU_TARGET_SPARC:
> -    case SYS_EMU_TARGET_SPARC64:
> -        return CPU_INFO_ARCH_SPARC;
> -
> -    case SYS_EMU_TARGET_MIPS:
> -    case SYS_EMU_TARGET_MIPSEL:
> -    case SYS_EMU_TARGET_MIPS64:
> -    case SYS_EMU_TARGET_MIPS64EL:
> -        return CPU_INFO_ARCH_MIPS;
> -
> -    case SYS_EMU_TARGET_TRICORE:
> -        return CPU_INFO_ARCH_TRICORE;
> -
> -    case SYS_EMU_TARGET_S390X:
> -        return CPU_INFO_ARCH_S390;
> -
> -    case SYS_EMU_TARGET_RISCV32:
> -    case SYS_EMU_TARGET_RISCV64:
> -        return CPU_INFO_ARCH_RISCV;
> -
> -    default:
> -        return CPU_INFO_ARCH_OTHER;
> -    }
> -}
> -
>  static void cpustate_to_cpuinfo_s390(CpuInfoS390 *info, const CPUState *cpu)
>  {
>  #ifdef TARGET_S390X
> @@ -104,7 +64,6 @@ CpuInfoFastList *qmp_query_cpus_fast(Error **errp)
>              value->props = props;
>          }
>  
> -        value->arch = sysemu_target_to_cpuinfo_arch(target);
>          value->target = target;
>          if (target == SYS_EMU_TARGET_S390X) {
>              cpustate_to_cpuinfo_s390(&value->u.s390x, cpu);
> diff --git a/qapi/machine.json b/qapi/machine.json
> index 9811927504..c0c52aef10 100644
> --- a/qapi/machine.json
> +++ b/qapi/machine.json
> @@ -34,21 +34,6 @@
>               'sh4eb', 'sparc', 'sparc64', 'tricore', 'unicore32',
>               'x86_64', 'xtensa', 'xtensaeb' ] }
>  
> -##
> -# @CpuInfoArch:
> -#
> -# An enumeration of cpu types that enable additional information during
> -# @query-cpus-fast.
> -#
> -# @s390: since 2.12
> -#
> -# @riscv: since 2.12
> -#
> -# Since: 2.6
> -##
> -{ 'enum': 'CpuInfoArch',
> -  'data': ['x86', 'sparc', 'ppc', 'mips', 'tricore', 's390', 'riscv', 'other' ] }
> -
>  ##
>  # @CpuS390State:
>  #
> @@ -86,14 +71,9 @@
>  # @props: properties describing to which node/socket/core/thread
>  #         virtual CPU belongs to, provided if supported by board
>  #
> -# @arch: base architecture of the cpu
> -#
>  # @target: the QEMU system emulation target, which determines which
>  #          additional fields will be listed (since 3.0)
>  #
> -# Features:
> -# @deprecated: Member @arch is deprecated.  Use @target instead.
> -#
>  # Since: 2.12
>  #
>  ##
> @@ -102,8 +82,6 @@
>                        'qom-path'     : 'str',
>                        'thread-id'    : 'int',
>                        '*props'       : 'CpuInstanceProperties',
> -                      'arch'         : { 'type': 'CpuInfoArch',
> -                                         'features': [ 'deprecated' ] },
>                        'target'       : 'SysEmuTarget' },
>    'discriminator' : 'target',
>    'data'          : { 's390x'        : 'CpuInfoS390' } }
> -- 
> 2.29.2
> 

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 07/14] machine: remove 'arch' field from 'query-cpus-fast' QMP command
  2021-02-24 13:11 ` [PATCH 07/14] machine: remove 'arch' field from 'query-cpus-fast' " Daniel P. Berrangé
  2021-03-15 11:51   ` Daniel P. Berrangé
@ 2021-03-15 11:54   ` Thomas Huth
  1 sibling, 0 replies; 49+ messages in thread
From: Thomas Huth @ 2021-03-15 11:54 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On 24/02/2021 14.11, Daniel P. Berrangé wrote:
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   docs/system/deprecated.rst       |  6 -----
>   docs/system/removed-features.rst |  6 +++++
>   hw/core/machine-qmp-cmds.c       | 41 --------------------------------
>   qapi/machine.json                | 22 -----------------
>   4 files changed, 6 insertions(+), 69 deletions(-)

Patch looks reasonable to me.

Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 14/14] block: remove support for using "file" driver with block/char devices
  2021-02-24 13:11 ` [PATCH 14/14] block: remove support for using "file" driver with block/char devices Daniel P. Berrangé
@ 2021-03-15 11:56   ` Daniel P. Berrangé
  2021-03-15 12:04   ` Eric Blake
  1 sibling, 0 replies; 49+ messages in thread
From: Daniel P. Berrangé @ 2021-03-15 11:56 UTC (permalink / raw)
  To: qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

Ping for anyone, especially block maintainers, willing to review this
before soft freeze.

On Wed, Feb 24, 2021 at 01:11:42PM +0000, Daniel P. Berrangé wrote:
> The 'host_device' and 'host_cdrom' drivers must be used instead.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  block/file-posix.c               | 17 ++++++-----------
>  docs/system/deprecated.rst       |  7 -------
>  docs/system/removed-features.rst |  7 +++++++
>  tests/qemu-iotests/226.out       | 10 +++++-----
>  4 files changed, 18 insertions(+), 23 deletions(-)
> 
> diff --git a/block/file-posix.c b/block/file-posix.c
> index 05079b40ca..20e14f8e96 100644
> --- a/block/file-posix.c
> +++ b/block/file-posix.c
> @@ -719,15 +719,9 @@ static int raw_open_common(BlockDriverState *bs, QDict *options,
>      }
>  
>      if (!device) {
> -        if (S_ISBLK(st.st_mode)) {
> -            warn_report("Opening a block device as a file using the '%s' "
> -                        "driver is deprecated", bs->drv->format_name);
> -        } else if (S_ISCHR(st.st_mode)) {
> -            warn_report("Opening a character device as a file using the '%s' "
> -                        "driver is deprecated", bs->drv->format_name);
> -        } else if (!S_ISREG(st.st_mode)) {
> -            error_setg(errp, "A regular file was expected by the '%s' driver, "
> -                       "but something else was given", bs->drv->format_name);
> +        if (!S_ISREG(st.st_mode)) {
> +            error_setg(errp, "'%s' driver requires '%s' to be a regular file",
> +                       bs->drv->format_name, bs->filename);
>              ret = -EINVAL;
>              goto fail;
>          } else {
> @@ -736,8 +730,9 @@ static int raw_open_common(BlockDriverState *bs, QDict *options,
>          }
>      } else {
>          if (!(S_ISCHR(st.st_mode) || S_ISBLK(st.st_mode))) {
> -            error_setg(errp, "'%s' driver expects either "
> -                       "a character or block device", bs->drv->format_name);
> +            error_setg(errp, "'%s' driver requires '%s' to be either "
> +                       "a character or block device",
> +                       bs->drv->format_name, bs->filename);
>              ret = -EINVAL;
>              goto fail;
>          }
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index dc76584e02..3a86deb450 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -21,13 +21,6 @@ deprecated.
>  System emulator command line arguments
>  --------------------------------------
>  
> -``-drive file=json:{...{'driver':'file'}}`` (since 3.0)
> -'''''''''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -The 'file' driver for drives is no longer appropriate for character or host
> -devices and will only accept regular files (S_IFREG). The correct driver
> -for these file types is 'host_cdrom' or 'host_device' as appropriate.
> -
>  ``QEMU_AUDIO_`` environment variables and ``-audio-help`` (since 4.0)
>  '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
>  
> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
> index 990bf7e015..1c9e384cb0 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -59,6 +59,13 @@ would automatically enable USB support on the machine type.
>  When using the new syntax, USB support must be explicitly
>  enabled via the ``-machine usb=on`` argument.
>  
> +``-drive file=json:{...{'driver':'file'}}`` (removed 6.0)
> +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
> +
> +The 'file' driver for drives is no longer appropriate for character or host
> +devices and will only accept regular files (S_IFREG). The correct driver
> +for these file types is 'host_cdrom' or 'host_device' as appropriate.
> +
>  QEMU Machine Protocol (QMP) commands
>  ------------------------------------
>  
> diff --git a/tests/qemu-iotests/226.out b/tests/qemu-iotests/226.out
> index 42be973ff2..55504d29c4 100644
> --- a/tests/qemu-iotests/226.out
> +++ b/tests/qemu-iotests/226.out
> @@ -3,23 +3,23 @@ QA output created by 226
>  === Testing with driver:file ===
>  
>  == Testing RO ==
> -qemu-io: can't open: A regular file was expected by the 'file' driver, but something else was given
> -qemu-io: warning: Opening a character device as a file using the 'file' driver is deprecated
> +qemu-io: can't open: 'file' driver requires 'TEST_DIR/t.IMGFMT' to be a regular file
> +qemu-io: can't open: 'file' driver requires '/dev/null' to be a regular file
>  == Testing RW ==
>  qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory
> -qemu-io: warning: Opening a character device as a file using the 'file' driver is deprecated
> +qemu-io: can't open: 'file' driver requires '/dev/null' to be a regular file
>  
>  === Testing with driver:host_device ===
>  
>  == Testing RO ==
> -qemu-io: can't open: 'host_device' driver expects either a character or block device
> +qemu-io: can't open: 'host_device' driver requires 'TEST_DIR/t.IMGFMT' to be either a character or block device
>  == Testing RW ==
>  qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory
>  
>  === Testing with driver:host_cdrom ===
>  
>  == Testing RO ==
> -qemu-io: can't open: 'host_cdrom' driver expects either a character or block device
> +qemu-io: can't open: 'host_cdrom' driver requires 'TEST_DIR/t.IMGFMT' to be either a character or block device
>  == Testing RW ==
>  qemu-io: can't open: Could not open 'TEST_DIR/t.IMGFMT': Is a directory
>  
> -- 
> 2.29.2
> 

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 14/14] block: remove support for using "file" driver with block/char devices
  2021-02-24 13:11 ` [PATCH 14/14] block: remove support for using "file" driver with block/char devices Daniel P. Berrangé
  2021-03-15 11:56   ` Daniel P. Berrangé
@ 2021-03-15 12:04   ` Eric Blake
  1 sibling, 0 replies; 49+ messages in thread
From: Eric Blake @ 2021-03-15 12:04 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Thomas Huth, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On 2/24/21 7:11 AM, Daniel P. Berrangé wrote:
> The 'host_device' and 'host_cdrom' drivers must be used instead.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  block/file-posix.c               | 17 ++++++-----------
>  docs/system/deprecated.rst       |  7 -------
>  docs/system/removed-features.rst |  7 +++++++
>  tests/qemu-iotests/226.out       | 10 +++++-----
>  4 files changed, 18 insertions(+), 23 deletions(-)
> 

>      if (!device) {
> -        if (S_ISBLK(st.st_mode)) {
> -            warn_report("Opening a block device as a file using the '%s' "
> -                        "driver is deprecated", bs->drv->format_name);
> -        } else if (S_ISCHR(st.st_mode)) {
> -            warn_report("Opening a character device as a file using the '%s' "
> -                        "driver is deprecated", bs->drv->format_name);
> -        } else if (!S_ISREG(st.st_mode)) {
> -            error_setg(errp, "A regular file was expected by the '%s' driver, "
> -                       "but something else was given", bs->drv->format_name);
> +        if (!S_ISREG(st.st_mode)) {

We're testing with S_ISREG()...


> +++ b/docs/system/deprecated.rst
> @@ -21,13 +21,6 @@ deprecated.
>  System emulator command line arguments
>  --------------------------------------
>  
> -``-drive file=json:{...{'driver':'file'}}`` (since 3.0)
> -'''''''''''''''''''''''''''''''''''''''''''''''''''''''
> -
> -The 'file' driver for drives is no longer appropriate for character or host
> -devices and will only accept regular files (S_IFREG). The correct driver

but documented with S_IFREG().  Thankfully, the two have semantically
equivalent purposes, so the difference doesn't invalidate the docs.

Reviewed-by: Eric Blake <eblake@redhat.com>

but I wouldn't mind if at least one other block maintainer chimes in.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org



^ permalink raw reply	[flat|nested] 49+ messages in thread

* Re: [PATCH 10/14] hw/scsi: remove 'scsi-disk' device
  2021-02-24 13:11 ` [PATCH 10/14] hw/scsi: remove 'scsi-disk' device Daniel P. Berrangé
  2021-02-24 14:26   ` Thomas Huth
@ 2021-03-15 12:21   ` Thomas Huth
  1 sibling, 0 replies; 49+ messages in thread
From: Thomas Huth @ 2021-03-15 12:21 UTC (permalink / raw)
  To: Daniel P. Berrangé, qemu-devel
  Cc: Fam Zheng, Michael S. Tsirkin, libvir-list, Mark Cave-Ayland,
	Gerd Hoffmann, qemu-block, Juan Quintela, Markus Armbruster,
	Wainer dos Santos Moschetta, Marc-André Lureau,
	Philippe Mathieu-Daudé,
	Artyom Tarasenko, Laurent Vivier, Eduardo Habkost,
	Richard Henderson, Dr. David Alan Gilbert, Greg Kurz,
	Cleber Rosa, John Snow, David Gibson, Kevin Wolf,
	Vladimir Sementsov-Ogievskiy, Max Reitz, qemu-ppc, Paolo Bonzini

On 24/02/2021 14.11, Daniel P. Berrangé wrote:
> The 'scsi-hd' and 'scsi-cd' devices provide suitable alternatives.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>   docs/system/deprecated.rst       |  9 -----
>   docs/system/removed-features.rst |  6 ++++
>   hw/i386/pc.c                     |  1 -
>   hw/scsi/scsi-disk.c              | 62 --------------------------------
>   hw/sparc64/sun4u.c               |  1 -
>   scripts/device-crash-test        |  1 -
>   tests/qemu-iotests/051           |  2 --
>   tests/qemu-iotests/051.pc.out    | 10 ------
>   8 files changed, 6 insertions(+), 86 deletions(-)
> 
> diff --git a/docs/system/deprecated.rst b/docs/system/deprecated.rst
> index f5c82a46dc..cb88fea94f 100644
> --- a/docs/system/deprecated.rst
> +++ b/docs/system/deprecated.rst
> @@ -239,15 +239,6 @@ The ``I7200`` guest CPU relies on the nanoMIPS ISA, which is deprecated
>   (the ISA has never been upstreamed to a compiler toolchain). Therefore
>   this CPU is also deprecated.
>   
> -System emulator devices
> ------------------------
> -
> -``scsi-disk`` (since 4.2)
> -'''''''''''''''''''''''''
> -
> -The 'scsi-disk' device is deprecated. Users should use 'scsi-hd' or
> -'scsi-cd' as appropriate to get a SCSI hard disk or CD-ROM as needed.
> -
>   System emulator machines
>   ------------------------
>   
> diff --git a/docs/system/removed-features.rst b/docs/system/removed-features.rst
> index 8fd3fafb32..bb6bc8dfc8 100644
> --- a/docs/system/removed-features.rst
> +++ b/docs/system/removed-features.rst
> @@ -222,6 +222,12 @@ System emulator devices
>   The 'ide-drive' device has been removed. Users should use 'ide-hd' or
>   'ide-cd' as appropriate to get an IDE hard disk or CD-ROM as needed.
>   
> +``scsi-disk`` (removed in 6.0)
> +''''''''''''''''''''''''''''''
> +
> +The 'scsi-disk' device is deprecated. Users should use 'scsi-hd' or
> +'scsi-cd' as appropriate to get a SCSI hard disk or CD-ROM as needed.

s/is deprecated/has been removed/

> diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c
> index d7c27144ba..cda7df36e3 100644
> --- a/hw/sparc64/sun4u.c
> +++ b/hw/sparc64/sun4u.c
> @@ -749,7 +749,6 @@ static char *sun4u_fw_dev_path(FWPathProvider *p, BusState *bus,
>                                  DeviceState *dev)
>   {
>       PCIDevice *pci;
> -    int bus_id;
>   
>       if (!strcmp(object_get_typename(OBJECT(dev)), "pbm-bridge")) {
>           pci = PCI_DEVICE(dev);

Please squash this hunk into the 'ide-drive' patch instead.

With the two nits fixed:
Reviewed-by: Thomas Huth <thuth@redhat.com>



^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2021-03-15 12:25 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-24 13:11 [PATCH 00/14] deprecations: remove many old deprecations Daniel P. Berrangé
2021-02-24 13:11 ` [PATCH 01/14] ui, monitor: remove deprecated VNC ACL option and HMP commands Daniel P. Berrangé
2021-02-24 13:36   ` Thomas Huth
2021-02-24 13:46     ` Daniel P. Berrangé
2021-02-24 13:11 ` [PATCH 02/14] monitor: raise error when 'pretty' option is used with HMP Daniel P. Berrangé
2021-02-24 13:20   ` Dr. David Alan Gilbert
2021-02-24 13:11 ` [PATCH 03/14] monitor: remove 'query-events' QMP command Daniel P. Berrangé
2021-02-24 13:47   ` Thomas Huth
2021-02-24 13:11 ` [PATCH 04/14] softmmu: remove '-usbdevice' command line option Daniel P. Berrangé
2021-02-24 13:25   ` Paolo Bonzini
2021-02-24 13:44     ` Daniel P. Berrangé
2021-02-24 13:58   ` Thomas Huth
2021-02-24 14:10     ` Daniel P. Berrangé
2021-02-25  5:34       ` Thomas Huth
2021-02-24 13:11 ` [PATCH 05/14] migrate: remove QMP/HMP commands for speed, downtime and cache size Daniel P. Berrangé
2021-03-11 11:54   ` Dr. David Alan Gilbert
2021-03-11 18:18     ` Paolo Bonzini
2021-03-11 18:33       ` Daniel P. Berrangé
2021-03-11 22:04         ` Paolo Bonzini
2021-02-24 13:11 ` [PATCH 06/14] machine: remove 'query-cpus' QMP command Daniel P. Berrangé
2021-02-25 12:32   ` Wainer dos Santos Moschetta
2021-02-24 13:11 ` [PATCH 07/14] machine: remove 'arch' field from 'query-cpus-fast' " Daniel P. Berrangé
2021-03-15 11:51   ` Daniel P. Berrangé
2021-03-15 11:54   ` Thomas Huth
2021-02-24 13:11 ` [PATCH 08/14] chardev: reject use of 'wait' flag for socket client chardevs Daniel P. Berrangé
2021-02-24 13:17   ` Marc-André Lureau
2021-02-24 13:11 ` [PATCH 09/14] hw/ide: remove 'ide-drive' device Daniel P. Berrangé
2021-02-24 14:19   ` Thomas Huth
2021-02-24 13:11 ` [PATCH 10/14] hw/scsi: remove 'scsi-disk' device Daniel P. Berrangé
2021-02-24 14:26   ` Thomas Huth
2021-03-11 10:46     ` Daniel P. Berrangé
2021-03-15 12:21   ` Thomas Huth
2021-02-24 13:11 ` [PATCH 11/14] block: remove 'encryption_key_missing' flag from QAPI Daniel P. Berrangé
2021-02-24 15:01   ` Thomas Huth
2021-02-24 13:11 ` [PATCH 12/14] block: remove dirty bitmaps 'status' field Daniel P. Berrangé
2021-02-25 15:48   ` Vladimir Sementsov-Ogievskiy
2021-02-24 13:11 ` [PATCH 13/14] block: remove 'dirty-bitmaps' field from 'BlockInfo' struct Daniel P. Berrangé
2021-02-25 15:54   ` Vladimir Sementsov-Ogievskiy
2021-02-24 13:11 ` [PATCH 14/14] block: remove support for using "file" driver with block/char devices Daniel P. Berrangé
2021-03-15 11:56   ` Daniel P. Berrangé
2021-03-15 12:04   ` Eric Blake
2021-02-24 13:26 ` [PATCH 00/14] deprecations: remove many old deprecations Paolo Bonzini
2021-02-24 14:38 ` Peter Maydell
2021-02-24 15:02   ` Daniel P. Berrangé
2021-02-24 15:21   ` Philippe Mathieu-Daudé
2021-03-08 16:42     ` Stefan Hajnoczi
2021-02-25 17:32 ` Jim Fehlig
2021-03-01 11:15   ` Kevin Wolf
2021-03-01 11:15     ` Kevin Wolf

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.