xref: /qemu/docs/about/removed-features.rst (revision 8becb36063fb14df1e3ae4916215667e2cb65fa2)
12c5060cdSThomas Huth
22c5060cdSThomas HuthRemoved features
32c5060cdSThomas Huth================
42c5060cdSThomas Huth
52c5060cdSThomas HuthWhat follows is a record of recently removed, formerly deprecated
62c5060cdSThomas Huthfeatures that serves as a record for users who have encountered
72c5060cdSThomas Huthtrouble after a recent upgrade.
82c5060cdSThomas Huth
92c5060cdSThomas HuthSystem emulator command line arguments
102c5060cdSThomas Huth--------------------------------------
112c5060cdSThomas Huth
122c5060cdSThomas Huth``-net ...,name=``\ *name* (removed in 5.1)
132c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''
142c5060cdSThomas Huth
152c5060cdSThomas HuthThe ``name`` parameter of the ``-net`` option was a synonym
162c5060cdSThomas Huthfor the ``id`` parameter, which should now be used instead.
172c5060cdSThomas Huth
182c5060cdSThomas Huth``-no-kvm`` (removed in 5.2)
192c5060cdSThomas Huth''''''''''''''''''''''''''''
202c5060cdSThomas Huth
212c5060cdSThomas HuthThe ``-no-kvm`` argument was a synonym for setting ``-machine accel=tcg``.
222c5060cdSThomas Huth
23c8c9dc42SThomas Huth``-realtime`` (removed in 6.0)
24c8c9dc42SThomas Huth''''''''''''''''''''''''''''''
25c8c9dc42SThomas Huth
26c8c9dc42SThomas HuthThe ``-realtime mlock=on|off`` argument has been replaced by the
27c8c9dc42SThomas Huth``-overcommit mem-lock=on|off`` argument.
28c8c9dc42SThomas Huth
29e2680403SThomas Huth``-show-cursor`` option (removed in 6.0)
30e2680403SThomas Huth''''''''''''''''''''''''''''''''''''''''
3190d6a086SThomas Huth
3290d6a086SThomas HuthUse ``-display sdl,show-cursor=on``, ``-display gtk,show-cursor=on``
3390d6a086SThomas Huthor ``-display default,show-cursor=on`` instead.
3490d6a086SThomas Huth
352c5060cdSThomas Huth``-tb-size`` option (removed in 6.0)
362c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''
372c5060cdSThomas Huth
382c5060cdSThomas HuthQEMU 5.0 introduced an alternative syntax to specify the size of the translation
392c5060cdSThomas Huthblock cache, ``-accel tcg,tb-size=``.
402c5060cdSThomas Huth
416db34277SThomas Huth``-usbdevice audio`` (removed in 6.0)
426db34277SThomas Huth'''''''''''''''''''''''''''''''''''''
436db34277SThomas Huth
446db34277SThomas HuthThis option lacked the possibility to specify an audio backend device.
456db34277SThomas HuthUse ``-device usb-audio`` now instead (and specify a corresponding USB
466db34277SThomas Huthhost controller or ``-usb`` if necessary).
476db34277SThomas Huth
485994dcb8SDaniel P. Berrangé``-vnc acl`` (removed in 6.0)
495994dcb8SDaniel P. Berrangé'''''''''''''''''''''''''''''
505994dcb8SDaniel P. Berrangé
515994dcb8SDaniel P. BerrangéThe ``acl`` option to the ``-vnc`` argument has been replaced
525994dcb8SDaniel P. Berrangéby the ``tls-authz`` and ``sasl-authz`` options.
536db34277SThomas Huth
54283d845cSDaniel P. Berrangé``-mon ...,control=readline,pretty=on|off`` (removed in 6.0)
55283d845cSDaniel P. Berrangé''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
56283d845cSDaniel P. Berrangé
57283d845cSDaniel P. BerrangéThe ``pretty=on|off`` switch has no effect for HMP monitors and
58283d845cSDaniel P. Berrangéits use is rejected.
59283d845cSDaniel P. Berrangé
602c5060cdSThomas HuthQEMU Machine Protocol (QMP) commands
612c5060cdSThomas Huth------------------------------------
622c5060cdSThomas Huth
632c5060cdSThomas Huth``block-dirty-bitmap-add`` "autoload" parameter (removed in 4.2.0)
642c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
652c5060cdSThomas Huth
662c5060cdSThomas HuthThe "autoload" parameter has been ignored since 2.12.0. All bitmaps
672c5060cdSThomas Huthare automatically loaded from qcow2 images.
682c5060cdSThomas Huth
692c5060cdSThomas Huth``cpu-add`` (removed in 5.2)
702c5060cdSThomas Huth''''''''''''''''''''''''''''
712c5060cdSThomas Huth
722c5060cdSThomas HuthUse ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
732c5060cdSThomas Huthdocumentation of ``query-hotpluggable-cpus`` for additional details.
742c5060cdSThomas Huth
750afec757SPaolo Bonzini``change`` (removed in 6.0)
760afec757SPaolo Bonzini'''''''''''''''''''''''''''
770afec757SPaolo Bonzini
780afec757SPaolo BonziniUse ``blockdev-change-medium`` or ``change-vnc-password`` instead.
790afec757SPaolo Bonzini
808becb360SDaniel P. Berrangé``query-events`` (removed in 6.0)
818becb360SDaniel P. Berrangé'''''''''''''''''''''''''''''''''
828becb360SDaniel P. Berrangé
838becb360SDaniel P. BerrangéThe ``query-events`` command has been superseded by the more powerful
848becb360SDaniel P. Berrangéand accurate ``query-qmp-schema`` command.
858becb360SDaniel P. Berrangé
862c5060cdSThomas HuthHuman Monitor Protocol (HMP) commands
872c5060cdSThomas Huth-------------------------------------
882c5060cdSThomas Huth
892c5060cdSThomas HuthThe ``hub_id`` parameter of ``hostfwd_add`` / ``hostfwd_remove`` (removed in 5.0)
902c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
912c5060cdSThomas Huth
922c5060cdSThomas HuthThe ``[hub_id name]`` parameter tuple of the 'hostfwd_add' and
932c5060cdSThomas Huth'hostfwd_remove' HMP commands has been replaced by ``netdev_id``.
942c5060cdSThomas Huth
952c5060cdSThomas Huth``cpu-add`` (removed in 5.2)
962c5060cdSThomas Huth''''''''''''''''''''''''''''
972c5060cdSThomas Huth
982c5060cdSThomas HuthUse ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
992c5060cdSThomas Huthdocumentation of ``query-hotpluggable-cpus`` for additional details.
1002c5060cdSThomas Huth
101cfb5387aSPaolo Bonzini``change vnc TARGET`` (removed in 6.0)
102cfb5387aSPaolo Bonzini''''''''''''''''''''''''''''''''''''''
103cfb5387aSPaolo Bonzini
104cfb5387aSPaolo BonziniNo replacement.  The ``change vnc password`` and ``change DEVICE MEDIUM``
105cfb5387aSPaolo Bonzinicommands are not affected.
106cfb5387aSPaolo Bonzini
1075994dcb8SDaniel P. Berrangé``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, ``acl_remove`` (removed in 6.0)
1085994dcb8SDaniel P. Berrangé'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
1095994dcb8SDaniel P. Berrangé
1105994dcb8SDaniel P. BerrangéThe ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, and
1115994dcb8SDaniel P. Berrangé``acl_remove`` commands were removed with no replacement. Authorization
1125994dcb8SDaniel P. Berrangéfor VNC should be performed using the pluggable QAuthZ objects.
1135994dcb8SDaniel P. Berrangé
1142c5060cdSThomas HuthGuest Emulator ISAs
1152c5060cdSThomas Huth-------------------
1162c5060cdSThomas Huth
1172c5060cdSThomas HuthRISC-V ISA privilege specification version 1.09.1 (removed in 5.1)
1182c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
1192c5060cdSThomas Huth
1202c5060cdSThomas HuthThe RISC-V ISA privilege specification version 1.09.1 has been removed.
1212c5060cdSThomas HuthQEMU supports both the newer version 1.10.0 and the ratified version 1.11.0, these
1222c5060cdSThomas Huthshould be used instead of the 1.09.1 version.
1232c5060cdSThomas Huth
1242c5060cdSThomas HuthSystem emulator CPUS
1252c5060cdSThomas Huth--------------------
1262c5060cdSThomas Huth
1272c5060cdSThomas HuthKVM guest support on 32-bit Arm hosts (removed in 5.2)
1282c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''''''''''
1292c5060cdSThomas Huth
1302c5060cdSThomas HuthThe Linux kernel has dropped support for allowing 32-bit Arm systems
1312c5060cdSThomas Huthto host KVM guests as of the 5.7 kernel. Accordingly, QEMU is deprecating
1322c5060cdSThomas Huthits support for this configuration and will remove it in a future version.
1332c5060cdSThomas HuthRunning 32-bit guests on a 64-bit Arm host remains supported.
1342c5060cdSThomas Huth
1352c5060cdSThomas HuthRISC-V ISA Specific CPUs (removed in 5.1)
1362c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''
1372c5060cdSThomas Huth
1382c5060cdSThomas HuthThe RISC-V cpus with the ISA version in the CPU name have been removed. The
1392c5060cdSThomas Huthfour CPUs are: ``rv32gcsu-v1.9.1``, ``rv32gcsu-v1.10.0``, ``rv64gcsu-v1.9.1`` and
1402c5060cdSThomas Huth``rv64gcsu-v1.10.0``. Instead the version can be specified via the CPU ``priv_spec``
1412c5060cdSThomas Huthoption when using the ``rv32`` or ``rv64`` CPUs.
1422c5060cdSThomas Huth
1432c5060cdSThomas HuthRISC-V no MMU CPUs (removed in 5.1)
1442c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''
1452c5060cdSThomas Huth
1462c5060cdSThomas HuthThe RISC-V no MMU cpus have been removed. The two CPUs: ``rv32imacu-nommu`` and
1472c5060cdSThomas Huth``rv64imacu-nommu`` can no longer be used. Instead the MMU status can be specified
1482c5060cdSThomas Huthvia the CPU ``mmu`` option when using the ``rv32`` or ``rv64`` CPUs.
1492c5060cdSThomas Huth
1502c5060cdSThomas HuthSystem emulator machines
1512c5060cdSThomas Huth------------------------
1522c5060cdSThomas Huth
1532c5060cdSThomas Huth``spike_v1.9.1`` and ``spike_v1.10`` (removed in 5.1)
1542c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''''''''''''
1552c5060cdSThomas Huth
1562c5060cdSThomas HuthThe version specific Spike machines have been removed in favour of the
1572c5060cdSThomas Huthgeneric ``spike`` machine. If you need to specify an older version of the RISC-V
1582c5060cdSThomas Huthspec you can use the ``-cpu rv64gcsu,priv_spec=v1.10.0`` command line argument.
1592c5060cdSThomas Huth
1602c5060cdSThomas Huthmips ``r4k`` platform (removed in 5.2)
1612c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''
1622c5060cdSThomas Huth
1632c5060cdSThomas HuthThis machine type was very old and unmaintained. Users should use the ``malta``
1642c5060cdSThomas Huthmachine type instead.
1652c5060cdSThomas Huth
166cd669e20SPhilippe Mathieu-Daudémips ``fulong2e`` machine alias (removed in 6.0)
167cd669e20SPhilippe Mathieu-Daudé''''''''''''''''''''''''''''''''''''''''''''''''
168cd669e20SPhilippe Mathieu-Daudé
169cd669e20SPhilippe Mathieu-DaudéThis machine has been renamed ``fuloong2e``.
170cd669e20SPhilippe Mathieu-Daudé
171f862ddbbSThomas Huth``pc-1.0``, ``pc-1.1``, ``pc-1.2`` and ``pc-1.3`` (removed in 6.0)
172f862ddbbSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
173f862ddbbSThomas Huth
174f862ddbbSThomas HuthThese machine types were very old and likely could not be used for live
175f862ddbbSThomas Huthmigration from old QEMU versions anymore. Use a newer machine type instead.
176f862ddbbSThomas Huth
1772cc1a901SThomas Huth
1782cc1a901SThomas Huthlinux-user mode CPUs
1792cc1a901SThomas Huth--------------------
1802cc1a901SThomas Huth
1812cc1a901SThomas Huth``tilegx`` CPUs (removed in 6.0)
1822cc1a901SThomas Huth''''''''''''''''''''''''''''''''
1832cc1a901SThomas Huth
1842cc1a901SThomas HuthThe ``tilegx`` guest CPU support has been removed without replacement. It was
1852cc1a901SThomas Huthonly implemented in linux-user mode, but support for this CPU was removed from
1862cc1a901SThomas Huththe upstream Linux kernel in 2018, and it has also been dropped from glibc, so
1872cc1a901SThomas Huththere is no new Linux development taking place with this architecture. For
1882cc1a901SThomas Huthrunning the old binaries, you can use older versions of QEMU.
1892cc1a901SThomas Huth
1902cc1a901SThomas Huth
1912c5060cdSThomas HuthRelated binaries
1922c5060cdSThomas Huth----------------
1932c5060cdSThomas Huth
1942c5060cdSThomas Huth``qemu-nbd --partition`` (removed in 5.0)
1952c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''
1962c5060cdSThomas Huth
1972c5060cdSThomas HuthThe ``qemu-nbd --partition $digit`` code (also spelled ``-P``)
1982c5060cdSThomas Huthcould only handle MBR partitions, and never correctly handled logical
1992c5060cdSThomas Huthpartitions beyond partition 5.  Exporting a partition can still be
2002c5060cdSThomas Huthdone by utilizing the ``--image-opts`` option with a raw blockdev
2012c5060cdSThomas Huthusing the ``offset`` and ``size`` parameters layered on top of
2022c5060cdSThomas Huthany other existing blockdev. For example, if partition 1 is 100MiB
2032c5060cdSThomas Huthlong starting at 1MiB, the old command::
2042c5060cdSThomas Huth
2052c5060cdSThomas Huth  qemu-nbd -t -P 1 -f qcow2 file.qcow2
2062c5060cdSThomas Huth
2072c5060cdSThomas Huthcan be rewritten as::
2082c5060cdSThomas Huth
2092c5060cdSThomas Huth  qemu-nbd -t --image-opts driver=raw,offset=1M,size=100M,file.driver=qcow2,file.file.driver=file,file.file.filename=file.qcow2
2102c5060cdSThomas Huth
2112c5060cdSThomas Huth``qemu-img convert -n -o`` (removed in 5.1)
2122c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''
2132c5060cdSThomas Huth
2142c5060cdSThomas HuthAll options specified in ``-o`` are image creation options, so
2152c5060cdSThomas Huththey are now rejected when used with ``-n`` to skip image creation.
2162c5060cdSThomas Huth
2172c5060cdSThomas Huth
2182c5060cdSThomas Huth``qemu-img create -b bad file $size`` (removed in 5.1)
2192c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''''''''''
2202c5060cdSThomas Huth
2212c5060cdSThomas HuthWhen creating an image with a backing file that could not be opened,
2222c5060cdSThomas Huth``qemu-img create`` used to issue a warning about the failure but
2232c5060cdSThomas Huthproceed with the image creation if an explicit size was provided.
2242c5060cdSThomas HuthHowever, as the ``-u`` option exists for this purpose, it is safer to
2252c5060cdSThomas Huthenforce that any failure to open the backing image (including if the
2262c5060cdSThomas Huthbacking file is missing or an incorrect format was specified) is an
2272c5060cdSThomas Hutherror when ``-u`` is not used.
2282c5060cdSThomas Huth
2292c5060cdSThomas HuthCommand line options
2302c5060cdSThomas Huth--------------------
2312c5060cdSThomas Huth
2322c5060cdSThomas Huth``-smp`` (invalid topologies) (removed 5.2)
2332c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''
2342c5060cdSThomas Huth
2352c5060cdSThomas HuthCPU topology properties should describe whole machine topology including
2362c5060cdSThomas Huthpossible CPUs.
2372c5060cdSThomas Huth
2382c5060cdSThomas HuthHowever, historically it was possible to start QEMU with an incorrect topology
2392c5060cdSThomas Huthwhere *n* <= *sockets* * *cores* * *threads* < *maxcpus*,
2402c5060cdSThomas Huthwhich could lead to an incorrect topology enumeration by the guest.
2412c5060cdSThomas HuthSupport for invalid topologies is removed, the user must ensure
2422c5060cdSThomas Huthtopologies described with -smp include all possible cpus, i.e.
2432c5060cdSThomas Huth*sockets* * *cores* * *threads* = *maxcpus*.
2442c5060cdSThomas Huth
2452c5060cdSThomas Huth``-numa`` node (without memory specified) (removed 5.2)
2462c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''''''''''''''
2472c5060cdSThomas Huth
2482c5060cdSThomas HuthSplitting RAM by default between NUMA nodes had the same issues as ``mem``
2492c5060cdSThomas Huthparameter with the difference that the role of the user plays QEMU using
2502c5060cdSThomas Huthimplicit generic or board specific splitting rule.
2512c5060cdSThomas HuthUse ``memdev`` with *memory-backend-ram* backend or ``mem`` (if
2522c5060cdSThomas Huthit's supported by used machine type) to define mapping explicitly instead.
2532c5060cdSThomas HuthUsers of existing VMs, wishing to preserve the same RAM distribution, should
2542c5060cdSThomas Huthconfigure it explicitly using ``-numa node,memdev`` options. Current RAM
2552c5060cdSThomas Huthdistribution can be retrieved using HMP command ``info numa`` and if separate
2562c5060cdSThomas Huthmemory devices (pc|nv-dimm) are present use ``info memory-device`` and subtract
2572c5060cdSThomas Huthdevice memory from output of ``info numa``.
2582c5060cdSThomas Huth
2592c5060cdSThomas Huth``-numa node,mem=``\ *size* (removed in 5.1)
2602c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''
2612c5060cdSThomas Huth
2622c5060cdSThomas HuthThe parameter ``mem`` of ``-numa node`` was used to assign a part of
2632c5060cdSThomas Huthguest RAM to a NUMA node. But when using it, it's impossible to manage a specified
2642c5060cdSThomas HuthRAM chunk on the host side (like bind it to a host node, setting bind policy, ...),
2652c5060cdSThomas Huthso the guest ends up with the fake NUMA configuration with suboptiomal performance.
2662c5060cdSThomas HuthHowever since 2014 there is an alternative way to assign RAM to a NUMA node
2672c5060cdSThomas Huthusing parameter ``memdev``, which does the same as ``mem`` and adds
2682c5060cdSThomas Huthmeans to actually manage node RAM on the host side. Use parameter ``memdev``
2692c5060cdSThomas Huthwith *memory-backend-ram* backend as replacement for parameter ``mem``
2702c5060cdSThomas Huthto achieve the same fake NUMA effect or a properly configured
2712c5060cdSThomas Huth*memory-backend-file* backend to actually benefit from NUMA configuration.
2722c5060cdSThomas HuthNew machine versions (since 5.1) will not accept the option but it will still
2732c5060cdSThomas Huthwork with old machine types. User can check the QAPI schema to see if the legacy
2742c5060cdSThomas Huthoption is supported by looking at MachineInfo::numa-mem-supported property.
2752c5060cdSThomas Huth
2762c5060cdSThomas Huth``-mem-path`` fallback to RAM (removed in 5.0)
2772c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''
2782c5060cdSThomas Huth
2792c5060cdSThomas HuthIf guest RAM allocation from file pointed by ``mem-path`` failed,
2802c5060cdSThomas HuthQEMU was falling back to allocating from RAM, which might have resulted
2812c5060cdSThomas Huthin unpredictable behavior since the backing file specified by the user
2822c5060cdSThomas Huthas ignored. Currently, users are responsible for making sure the backing storage
2832c5060cdSThomas Huthspecified with ``-mem-path`` can actually provide the guest RAM configured with
2842c5060cdSThomas Huth``-m`` and QEMU fails to start up if RAM allocation is unsuccessful.
2852c5060cdSThomas Huth
2862c5060cdSThomas Huth``-smp`` (invalid topologies) (removed 5.2)
2872c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''
2882c5060cdSThomas Huth
2892c5060cdSThomas HuthCPU topology properties should describe whole machine topology including
2902c5060cdSThomas Huthpossible CPUs.
2912c5060cdSThomas Huth
2922c5060cdSThomas HuthHowever, historically it was possible to start QEMU with an incorrect topology
2932c5060cdSThomas Huthwhere *n* <= *sockets* * *cores* * *threads* < *maxcpus*,
2942c5060cdSThomas Huthwhich could lead to an incorrect topology enumeration by the guest.
2952c5060cdSThomas HuthSupport for invalid topologies is removed, the user must ensure
2962c5060cdSThomas Huthtopologies described with -smp include all possible cpus, i.e.
2972c5060cdSThomas Huth*sockets* * *cores* * *threads* = *maxcpus*.
2982c5060cdSThomas Huth
2992c5060cdSThomas Huth``-machine enforce-config-section=on|off`` (removed 5.2)
3002c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''''''''''''
3012c5060cdSThomas Huth
3022c5060cdSThomas HuthThe ``enforce-config-section`` property was replaced by the
3032c5060cdSThomas Huth``-global migration.send-configuration={on|off}`` option.
3042c5060cdSThomas Huth
3052c5060cdSThomas HuthBlock devices
3062c5060cdSThomas Huth-------------
3072c5060cdSThomas Huth
3082c5060cdSThomas HuthVXHS backend (removed in 5.1)
3092c5060cdSThomas Huth'''''''''''''''''''''''''''''
3102c5060cdSThomas Huth
3112c5060cdSThomas HuthThe VXHS code did not compile since v2.12.0. It was removed in 5.1.
312