xref: /qemu/docs/about/removed-features.rst (revision 2c5060cd32bf8ec120de7579b39d14d773e5b4ea)
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
232c5060cdSThomas Huth``-tb-size`` option (removed in 6.0)
242c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''
252c5060cdSThomas Huth
262c5060cdSThomas HuthQEMU 5.0 introduced an alternative syntax to specify the size of the translation
272c5060cdSThomas Huthblock cache, ``-accel tcg,tb-size=``.
282c5060cdSThomas Huth
292c5060cdSThomas HuthQEMU Machine Protocol (QMP) commands
302c5060cdSThomas Huth------------------------------------
312c5060cdSThomas Huth
322c5060cdSThomas Huth``block-dirty-bitmap-add`` "autoload" parameter (removed in 4.2.0)
332c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
342c5060cdSThomas Huth
352c5060cdSThomas HuthThe "autoload" parameter has been ignored since 2.12.0. All bitmaps
362c5060cdSThomas Huthare automatically loaded from qcow2 images.
372c5060cdSThomas Huth
382c5060cdSThomas Huth``cpu-add`` (removed in 5.2)
392c5060cdSThomas Huth''''''''''''''''''''''''''''
402c5060cdSThomas Huth
412c5060cdSThomas HuthUse ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
422c5060cdSThomas Huthdocumentation of ``query-hotpluggable-cpus`` for additional details.
432c5060cdSThomas Huth
442c5060cdSThomas HuthHuman Monitor Protocol (HMP) commands
452c5060cdSThomas Huth-------------------------------------
462c5060cdSThomas Huth
472c5060cdSThomas HuthThe ``hub_id`` parameter of ``hostfwd_add`` / ``hostfwd_remove`` (removed in 5.0)
482c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
492c5060cdSThomas Huth
502c5060cdSThomas HuthThe ``[hub_id name]`` parameter tuple of the 'hostfwd_add' and
512c5060cdSThomas Huth'hostfwd_remove' HMP commands has been replaced by ``netdev_id``.
522c5060cdSThomas Huth
532c5060cdSThomas Huth``cpu-add`` (removed in 5.2)
542c5060cdSThomas Huth''''''''''''''''''''''''''''
552c5060cdSThomas Huth
562c5060cdSThomas HuthUse ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
572c5060cdSThomas Huthdocumentation of ``query-hotpluggable-cpus`` for additional details.
582c5060cdSThomas Huth
592c5060cdSThomas HuthGuest Emulator ISAs
602c5060cdSThomas Huth-------------------
612c5060cdSThomas Huth
622c5060cdSThomas HuthRISC-V ISA privilege specification version 1.09.1 (removed in 5.1)
632c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
642c5060cdSThomas Huth
652c5060cdSThomas HuthThe RISC-V ISA privilege specification version 1.09.1 has been removed.
662c5060cdSThomas HuthQEMU supports both the newer version 1.10.0 and the ratified version 1.11.0, these
672c5060cdSThomas Huthshould be used instead of the 1.09.1 version.
682c5060cdSThomas Huth
692c5060cdSThomas HuthSystem emulator CPUS
702c5060cdSThomas Huth--------------------
712c5060cdSThomas Huth
722c5060cdSThomas HuthKVM guest support on 32-bit Arm hosts (removed in 5.2)
732c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''''''''''
742c5060cdSThomas Huth
752c5060cdSThomas HuthThe Linux kernel has dropped support for allowing 32-bit Arm systems
762c5060cdSThomas Huthto host KVM guests as of the 5.7 kernel. Accordingly, QEMU is deprecating
772c5060cdSThomas Huthits support for this configuration and will remove it in a future version.
782c5060cdSThomas HuthRunning 32-bit guests on a 64-bit Arm host remains supported.
792c5060cdSThomas Huth
802c5060cdSThomas HuthRISC-V ISA Specific CPUs (removed in 5.1)
812c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''
822c5060cdSThomas Huth
832c5060cdSThomas HuthThe RISC-V cpus with the ISA version in the CPU name have been removed. The
842c5060cdSThomas Huthfour CPUs are: ``rv32gcsu-v1.9.1``, ``rv32gcsu-v1.10.0``, ``rv64gcsu-v1.9.1`` and
852c5060cdSThomas Huth``rv64gcsu-v1.10.0``. Instead the version can be specified via the CPU ``priv_spec``
862c5060cdSThomas Huthoption when using the ``rv32`` or ``rv64`` CPUs.
872c5060cdSThomas Huth
882c5060cdSThomas HuthRISC-V no MMU CPUs (removed in 5.1)
892c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''
902c5060cdSThomas Huth
912c5060cdSThomas HuthThe RISC-V no MMU cpus have been removed. The two CPUs: ``rv32imacu-nommu`` and
922c5060cdSThomas Huth``rv64imacu-nommu`` can no longer be used. Instead the MMU status can be specified
932c5060cdSThomas Huthvia the CPU ``mmu`` option when using the ``rv32`` or ``rv64`` CPUs.
942c5060cdSThomas Huth
952c5060cdSThomas HuthSystem emulator machines
962c5060cdSThomas Huth------------------------
972c5060cdSThomas Huth
982c5060cdSThomas Huth``spike_v1.9.1`` and ``spike_v1.10`` (removed in 5.1)
992c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''''''''''''
1002c5060cdSThomas Huth
1012c5060cdSThomas HuthThe version specific Spike machines have been removed in favour of the
1022c5060cdSThomas Huthgeneric ``spike`` machine. If you need to specify an older version of the RISC-V
1032c5060cdSThomas Huthspec you can use the ``-cpu rv64gcsu,priv_spec=v1.10.0`` command line argument.
1042c5060cdSThomas Huth
1052c5060cdSThomas Huthmips ``r4k`` platform (removed in 5.2)
1062c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''
1072c5060cdSThomas Huth
1082c5060cdSThomas HuthThis machine type was very old and unmaintained. Users should use the ``malta``
1092c5060cdSThomas Huthmachine type instead.
1102c5060cdSThomas Huth
1112c5060cdSThomas HuthRelated binaries
1122c5060cdSThomas Huth----------------
1132c5060cdSThomas Huth
1142c5060cdSThomas Huth``qemu-nbd --partition`` (removed in 5.0)
1152c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''
1162c5060cdSThomas Huth
1172c5060cdSThomas HuthThe ``qemu-nbd --partition $digit`` code (also spelled ``-P``)
1182c5060cdSThomas Huthcould only handle MBR partitions, and never correctly handled logical
1192c5060cdSThomas Huthpartitions beyond partition 5.  Exporting a partition can still be
1202c5060cdSThomas Huthdone by utilizing the ``--image-opts`` option with a raw blockdev
1212c5060cdSThomas Huthusing the ``offset`` and ``size`` parameters layered on top of
1222c5060cdSThomas Huthany other existing blockdev. For example, if partition 1 is 100MiB
1232c5060cdSThomas Huthlong starting at 1MiB, the old command::
1242c5060cdSThomas Huth
1252c5060cdSThomas Huth  qemu-nbd -t -P 1 -f qcow2 file.qcow2
1262c5060cdSThomas Huth
1272c5060cdSThomas Huthcan be rewritten as::
1282c5060cdSThomas Huth
1292c5060cdSThomas Huth  qemu-nbd -t --image-opts driver=raw,offset=1M,size=100M,file.driver=qcow2,file.file.driver=file,file.file.filename=file.qcow2
1302c5060cdSThomas Huth
1312c5060cdSThomas Huth``qemu-img convert -n -o`` (removed in 5.1)
1322c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''
1332c5060cdSThomas Huth
1342c5060cdSThomas HuthAll options specified in ``-o`` are image creation options, so
1352c5060cdSThomas Huththey are now rejected when used with ``-n`` to skip image creation.
1362c5060cdSThomas Huth
1372c5060cdSThomas Huth
1382c5060cdSThomas Huth``qemu-img create -b bad file $size`` (removed in 5.1)
1392c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''''''''''
1402c5060cdSThomas Huth
1412c5060cdSThomas HuthWhen creating an image with a backing file that could not be opened,
1422c5060cdSThomas Huth``qemu-img create`` used to issue a warning about the failure but
1432c5060cdSThomas Huthproceed with the image creation if an explicit size was provided.
1442c5060cdSThomas HuthHowever, as the ``-u`` option exists for this purpose, it is safer to
1452c5060cdSThomas Huthenforce that any failure to open the backing image (including if the
1462c5060cdSThomas Huthbacking file is missing or an incorrect format was specified) is an
1472c5060cdSThomas Hutherror when ``-u`` is not used.
1482c5060cdSThomas Huth
1492c5060cdSThomas HuthCommand line options
1502c5060cdSThomas Huth--------------------
1512c5060cdSThomas Huth
1522c5060cdSThomas Huth``-smp`` (invalid topologies) (removed 5.2)
1532c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''
1542c5060cdSThomas Huth
1552c5060cdSThomas HuthCPU topology properties should describe whole machine topology including
1562c5060cdSThomas Huthpossible CPUs.
1572c5060cdSThomas Huth
1582c5060cdSThomas HuthHowever, historically it was possible to start QEMU with an incorrect topology
1592c5060cdSThomas Huthwhere *n* <= *sockets* * *cores* * *threads* < *maxcpus*,
1602c5060cdSThomas Huthwhich could lead to an incorrect topology enumeration by the guest.
1612c5060cdSThomas HuthSupport for invalid topologies is removed, the user must ensure
1622c5060cdSThomas Huthtopologies described with -smp include all possible cpus, i.e.
1632c5060cdSThomas Huth*sockets* * *cores* * *threads* = *maxcpus*.
1642c5060cdSThomas Huth
1652c5060cdSThomas Huth``-numa`` node (without memory specified) (removed 5.2)
1662c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''''''''''''''
1672c5060cdSThomas Huth
1682c5060cdSThomas HuthSplitting RAM by default between NUMA nodes had the same issues as ``mem``
1692c5060cdSThomas Huthparameter with the difference that the role of the user plays QEMU using
1702c5060cdSThomas Huthimplicit generic or board specific splitting rule.
1712c5060cdSThomas HuthUse ``memdev`` with *memory-backend-ram* backend or ``mem`` (if
1722c5060cdSThomas Huthit's supported by used machine type) to define mapping explicitly instead.
1732c5060cdSThomas HuthUsers of existing VMs, wishing to preserve the same RAM distribution, should
1742c5060cdSThomas Huthconfigure it explicitly using ``-numa node,memdev`` options. Current RAM
1752c5060cdSThomas Huthdistribution can be retrieved using HMP command ``info numa`` and if separate
1762c5060cdSThomas Huthmemory devices (pc|nv-dimm) are present use ``info memory-device`` and subtract
1772c5060cdSThomas Huthdevice memory from output of ``info numa``.
1782c5060cdSThomas Huth
1792c5060cdSThomas Huth``-numa node,mem=``\ *size* (removed in 5.1)
1802c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''
1812c5060cdSThomas Huth
1822c5060cdSThomas HuthThe parameter ``mem`` of ``-numa node`` was used to assign a part of
1832c5060cdSThomas Huthguest RAM to a NUMA node. But when using it, it's impossible to manage a specified
1842c5060cdSThomas HuthRAM chunk on the host side (like bind it to a host node, setting bind policy, ...),
1852c5060cdSThomas Huthso the guest ends up with the fake NUMA configuration with suboptiomal performance.
1862c5060cdSThomas HuthHowever since 2014 there is an alternative way to assign RAM to a NUMA node
1872c5060cdSThomas Huthusing parameter ``memdev``, which does the same as ``mem`` and adds
1882c5060cdSThomas Huthmeans to actually manage node RAM on the host side. Use parameter ``memdev``
1892c5060cdSThomas Huthwith *memory-backend-ram* backend as replacement for parameter ``mem``
1902c5060cdSThomas Huthto achieve the same fake NUMA effect or a properly configured
1912c5060cdSThomas Huth*memory-backend-file* backend to actually benefit from NUMA configuration.
1922c5060cdSThomas HuthNew machine versions (since 5.1) will not accept the option but it will still
1932c5060cdSThomas Huthwork with old machine types. User can check the QAPI schema to see if the legacy
1942c5060cdSThomas Huthoption is supported by looking at MachineInfo::numa-mem-supported property.
1952c5060cdSThomas Huth
1962c5060cdSThomas Huth``-mem-path`` fallback to RAM (removed in 5.0)
1972c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''
1982c5060cdSThomas Huth
1992c5060cdSThomas HuthIf guest RAM allocation from file pointed by ``mem-path`` failed,
2002c5060cdSThomas HuthQEMU was falling back to allocating from RAM, which might have resulted
2012c5060cdSThomas Huthin unpredictable behavior since the backing file specified by the user
2022c5060cdSThomas Huthas ignored. Currently, users are responsible for making sure the backing storage
2032c5060cdSThomas Huthspecified with ``-mem-path`` can actually provide the guest RAM configured with
2042c5060cdSThomas Huth``-m`` and QEMU fails to start up if RAM allocation is unsuccessful.
2052c5060cdSThomas Huth
2062c5060cdSThomas Huth``-smp`` (invalid topologies) (removed 5.2)
2072c5060cdSThomas Huth'''''''''''''''''''''''''''''''''''''''''''
2082c5060cdSThomas Huth
2092c5060cdSThomas HuthCPU topology properties should describe whole machine topology including
2102c5060cdSThomas Huthpossible CPUs.
2112c5060cdSThomas Huth
2122c5060cdSThomas HuthHowever, historically it was possible to start QEMU with an incorrect topology
2132c5060cdSThomas Huthwhere *n* <= *sockets* * *cores* * *threads* < *maxcpus*,
2142c5060cdSThomas Huthwhich could lead to an incorrect topology enumeration by the guest.
2152c5060cdSThomas HuthSupport for invalid topologies is removed, the user must ensure
2162c5060cdSThomas Huthtopologies described with -smp include all possible cpus, i.e.
2172c5060cdSThomas Huth*sockets* * *cores* * *threads* = *maxcpus*.
2182c5060cdSThomas Huth
2192c5060cdSThomas Huth``-machine enforce-config-section=on|off`` (removed 5.2)
2202c5060cdSThomas Huth''''''''''''''''''''''''''''''''''''''''''''''''''''''''
2212c5060cdSThomas Huth
2222c5060cdSThomas HuthThe ``enforce-config-section`` property was replaced by the
2232c5060cdSThomas Huth``-global migration.send-configuration={on|off}`` option.
2242c5060cdSThomas Huth
2252c5060cdSThomas HuthBlock devices
2262c5060cdSThomas Huth-------------
2272c5060cdSThomas Huth
2282c5060cdSThomas HuthVXHS backend (removed in 5.1)
2292c5060cdSThomas Huth'''''''''''''''''''''''''''''
2302c5060cdSThomas Huth
2312c5060cdSThomas HuthThe VXHS code did not compile since v2.12.0. It was removed in 5.1.
232