os: deprecate the -enable-fips option and QEMU's FIPS enforcement
[qemu/ar7.git] / docs / system / removed-features.rst
blob88b81a6156a2a4df9084e43594d46adce360f87e
2 Removed features
3 ================
5 What follows is a record of recently removed, formerly deprecated
6 features that serves as a record for users who have encountered
7 trouble after a recent upgrade.
9 System emulator command line arguments
10 --------------------------------------
12 ``-net ...,name=``\ *name* (removed in 5.1)
13 '''''''''''''''''''''''''''''''''''''''''''
15 The ``name`` parameter of the ``-net`` option was a synonym
16 for the ``id`` parameter, which should now be used instead.
18 ``-no-kvm`` (removed in 5.2)
19 ''''''''''''''''''''''''''''
21 The ``-no-kvm`` argument was a synonym for setting ``-machine accel=tcg``.
23 ``-realtime`` (removed in 6.0)
24 ''''''''''''''''''''''''''''''
26 The ``-realtime mlock=on|off`` argument has been replaced by the
27 ``-overcommit mem-lock=on|off`` argument.
29 ``-show-cursor`` option (since 5.0)
30 '''''''''''''''''''''''''''''''''''
32 Use ``-display sdl,show-cursor=on``, ``-display gtk,show-cursor=on``
33 or ``-display default,show-cursor=on`` instead.
35 ``-tb-size`` option (removed in 6.0)
36 ''''''''''''''''''''''''''''''''''''
38 QEMU 5.0 introduced an alternative syntax to specify the size of the translation
39 block cache, ``-accel tcg,tb-size=``.
41 QEMU Machine Protocol (QMP) commands
42 ------------------------------------
44 ``block-dirty-bitmap-add`` "autoload" parameter (removed in 4.2.0)
45 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
47 The "autoload" parameter has been ignored since 2.12.0. All bitmaps
48 are automatically loaded from qcow2 images.
50 ``cpu-add`` (removed in 5.2)
51 ''''''''''''''''''''''''''''
53 Use ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
54 documentation of ``query-hotpluggable-cpus`` for additional details.
56 ``change`` (removed in 6.0)
57 '''''''''''''''''''''''''''
59 Use ``blockdev-change-medium`` or ``change-vnc-password`` instead.
61 Human Monitor Protocol (HMP) commands
62 -------------------------------------
64 The ``hub_id`` parameter of ``hostfwd_add`` / ``hostfwd_remove`` (removed in 5.0)
65 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
67 The ``[hub_id name]`` parameter tuple of the 'hostfwd_add' and
68 'hostfwd_remove' HMP commands has been replaced by ``netdev_id``.
70 ``cpu-add`` (removed in 5.2)
71 ''''''''''''''''''''''''''''
73 Use ``device_add`` for hotplugging vCPUs instead of ``cpu-add``.  See
74 documentation of ``query-hotpluggable-cpus`` for additional details.
76 ``change vnc TARGET`` (removed in 6.0)
77 ''''''''''''''''''''''''''''''''''''''
79 No replacement.  The ``change vnc password`` and ``change DEVICE MEDIUM``
80 commands are not affected.
82 Guest Emulator ISAs
83 -------------------
85 RISC-V ISA privilege specification version 1.09.1 (removed in 5.1)
86 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
88 The RISC-V ISA privilege specification version 1.09.1 has been removed.
89 QEMU supports both the newer version 1.10.0 and the ratified version 1.11.0, these
90 should be used instead of the 1.09.1 version.
92 System emulator CPUS
93 --------------------
95 KVM guest support on 32-bit Arm hosts (removed in 5.2)
96 ''''''''''''''''''''''''''''''''''''''''''''''''''''''
98 The Linux kernel has dropped support for allowing 32-bit Arm systems
99 to host KVM guests as of the 5.7 kernel. Accordingly, QEMU is deprecating
100 its support for this configuration and will remove it in a future version.
101 Running 32-bit guests on a 64-bit Arm host remains supported.
103 RISC-V ISA Specific CPUs (removed in 5.1)
104 '''''''''''''''''''''''''''''''''''''''''
106 The RISC-V cpus with the ISA version in the CPU name have been removed. The
107 four CPUs are: ``rv32gcsu-v1.9.1``, ``rv32gcsu-v1.10.0``, ``rv64gcsu-v1.9.1`` and
108 ``rv64gcsu-v1.10.0``. Instead the version can be specified via the CPU ``priv_spec``
109 option when using the ``rv32`` or ``rv64`` CPUs.
111 RISC-V no MMU CPUs (removed in 5.1)
112 '''''''''''''''''''''''''''''''''''
114 The RISC-V no MMU cpus have been removed. The two CPUs: ``rv32imacu-nommu`` and
115 ``rv64imacu-nommu`` can no longer be used. Instead the MMU status can be specified
116 via the CPU ``mmu`` option when using the ``rv32`` or ``rv64`` CPUs.
118 System emulator machines
119 ------------------------
121 ``spike_v1.9.1`` and ``spike_v1.10`` (removed in 5.1)
122 '''''''''''''''''''''''''''''''''''''''''''''''''''''
124 The version specific Spike machines have been removed in favour of the
125 generic ``spike`` machine. If you need to specify an older version of the RISC-V
126 spec you can use the ``-cpu rv64gcsu,priv_spec=v1.10.0`` command line argument.
128 mips ``r4k`` platform (removed in 5.2)
129 ''''''''''''''''''''''''''''''''''''''
131 This machine type was very old and unmaintained. Users should use the ``malta``
132 machine type instead.
134 mips ``fulong2e`` machine alias (removed in 6.0)
135 ''''''''''''''''''''''''''''''''''''''''''''''''
137 This machine has been renamed ``fuloong2e``.
139 Related binaries
140 ----------------
142 ``qemu-nbd --partition`` (removed in 5.0)
143 '''''''''''''''''''''''''''''''''''''''''
145 The ``qemu-nbd --partition $digit`` code (also spelled ``-P``)
146 could only handle MBR partitions, and never correctly handled logical
147 partitions beyond partition 5.  Exporting a partition can still be
148 done by utilizing the ``--image-opts`` option with a raw blockdev
149 using the ``offset`` and ``size`` parameters layered on top of
150 any other existing blockdev. For example, if partition 1 is 100MiB
151 long starting at 1MiB, the old command::
153   qemu-nbd -t -P 1 -f qcow2 file.qcow2
155 can be rewritten as::
157   qemu-nbd -t --image-opts driver=raw,offset=1M,size=100M,file.driver=qcow2,file.file.driver=file,file.file.filename=file.qcow2
159 ``qemu-img convert -n -o`` (removed in 5.1)
160 '''''''''''''''''''''''''''''''''''''''''''
162 All options specified in ``-o`` are image creation options, so
163 they are now rejected when used with ``-n`` to skip image creation.
166 ``qemu-img create -b bad file $size`` (removed in 5.1)
167 ''''''''''''''''''''''''''''''''''''''''''''''''''''''
169 When creating an image with a backing file that could not be opened,
170 ``qemu-img create`` used to issue a warning about the failure but
171 proceed with the image creation if an explicit size was provided.
172 However, as the ``-u`` option exists for this purpose, it is safer to
173 enforce that any failure to open the backing image (including if the
174 backing file is missing or an incorrect format was specified) is an
175 error when ``-u`` is not used.
177 Command line options
178 --------------------
180 ``-smp`` (invalid topologies) (removed 5.2)
181 '''''''''''''''''''''''''''''''''''''''''''
183 CPU topology properties should describe whole machine topology including
184 possible CPUs.
186 However, historically it was possible to start QEMU with an incorrect topology
187 where *n* <= *sockets* * *cores* * *threads* < *maxcpus*,
188 which could lead to an incorrect topology enumeration by the guest.
189 Support for invalid topologies is removed, the user must ensure
190 topologies described with -smp include all possible cpus, i.e.
191 *sockets* * *cores* * *threads* = *maxcpus*.
193 ``-numa`` node (without memory specified) (removed 5.2)
194 '''''''''''''''''''''''''''''''''''''''''''''''''''''''
196 Splitting RAM by default between NUMA nodes had the same issues as ``mem``
197 parameter with the difference that the role of the user plays QEMU using
198 implicit generic or board specific splitting rule.
199 Use ``memdev`` with *memory-backend-ram* backend or ``mem`` (if
200 it's supported by used machine type) to define mapping explicitly instead.
201 Users of existing VMs, wishing to preserve the same RAM distribution, should
202 configure it explicitly using ``-numa node,memdev`` options. Current RAM
203 distribution can be retrieved using HMP command ``info numa`` and if separate
204 memory devices (pc|nv-dimm) are present use ``info memory-device`` and subtract
205 device memory from output of ``info numa``.
207 ``-numa node,mem=``\ *size* (removed in 5.1)
208 ''''''''''''''''''''''''''''''''''''''''''''
210 The parameter ``mem`` of ``-numa node`` was used to assign a part of
211 guest RAM to a NUMA node. But when using it, it's impossible to manage a specified
212 RAM chunk on the host side (like bind it to a host node, setting bind policy, ...),
213 so the guest ends up with the fake NUMA configuration with suboptiomal performance.
214 However since 2014 there is an alternative way to assign RAM to a NUMA node
215 using parameter ``memdev``, which does the same as ``mem`` and adds
216 means to actually manage node RAM on the host side. Use parameter ``memdev``
217 with *memory-backend-ram* backend as replacement for parameter ``mem``
218 to achieve the same fake NUMA effect or a properly configured
219 *memory-backend-file* backend to actually benefit from NUMA configuration.
220 New machine versions (since 5.1) will not accept the option but it will still
221 work with old machine types. User can check the QAPI schema to see if the legacy
222 option is supported by looking at MachineInfo::numa-mem-supported property.
224 ``-mem-path`` fallback to RAM (removed in 5.0)
225 ''''''''''''''''''''''''''''''''''''''''''''''
227 If guest RAM allocation from file pointed by ``mem-path`` failed,
228 QEMU was falling back to allocating from RAM, which might have resulted
229 in unpredictable behavior since the backing file specified by the user
230 as ignored. Currently, users are responsible for making sure the backing storage
231 specified with ``-mem-path`` can actually provide the guest RAM configured with
232 ``-m`` and QEMU fails to start up if RAM allocation is unsuccessful.
234 ``-smp`` (invalid topologies) (removed 5.2)
235 '''''''''''''''''''''''''''''''''''''''''''
237 CPU topology properties should describe whole machine topology including
238 possible CPUs.
240 However, historically it was possible to start QEMU with an incorrect topology
241 where *n* <= *sockets* * *cores* * *threads* < *maxcpus*,
242 which could lead to an incorrect topology enumeration by the guest.
243 Support for invalid topologies is removed, the user must ensure
244 topologies described with -smp include all possible cpus, i.e.
245 *sockets* * *cores* * *threads* = *maxcpus*.
247 ``-machine enforce-config-section=on|off`` (removed 5.2)
248 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''
250 The ``enforce-config-section`` property was replaced by the
251 ``-global migration.send-configuration={on|off}`` option.
253 Block devices
254 -------------
256 VXHS backend (removed in 5.1)
257 '''''''''''''''''''''''''''''
259 The VXHS code did not compile since v2.12.0. It was removed in 5.1.