1 2Removed features 3================ 4 5What follows is a record of recently removed, formerly deprecated 6features that serves as a record for users who have encountered 7trouble after a recent upgrade. 8 9System emulator command line arguments 10-------------------------------------- 11 12``-hdachs`` (removed in 2.12) 13''''''''''''''''''''''''''''' 14 15The geometry defined by ``-hdachs c,h,s,t`` should now be specified via 16``-device ide-hd,drive=dr,cyls=c,heads=h,secs=s,bios-chs-trans=t`` 17(together with ``-drive if=none,id=dr,...``). 18 19``-net channel`` (removed in 2.12) 20'''''''''''''''''''''''''''''''''' 21 22This option has been replaced by ``-net user,guestfwd=...``. 23 24``-net dump`` (removed in 2.12) 25''''''''''''''''''''''''''''''' 26 27``-net dump[,vlan=n][,file=filename][,len=maxlen]`` has been replaced by 28``-object filter-dump,id=id,netdev=dev[,file=filename][,maxlen=maxlen]``. 29Note that the new syntax works with netdev IDs instead of the old "vlan" hubs. 30 31``-no-kvm-pit`` (removed in 2.12) 32''''''''''''''''''''''''''''''''' 33 34This was just a dummy option that has been ignored, since the in-kernel PIT 35cannot be disabled separately from the irqchip anymore. A similar effect 36(which also disables the KVM IOAPIC) can be obtained with 37``-M kernel_irqchip=split``. 38 39``-tdf`` (removed in 2.12) 40'''''''''''''''''''''''''' 41 42There is no replacement, the ``-tdf`` option has just been ignored since the 43behaviour that could be changed by this option in qemu-kvm is now the default 44when using the KVM PIT. It still can be requested explicitly using 45``-global kvm-pit.lost_tick_policy=delay``. 46 47``-drive secs=s``, ``-drive heads=h`` & ``-drive cyls=c`` (removed in 3.0) 48'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 49 50The drive geometry should now be specified via 51``-device ...,drive=dr,cyls=c,heads=h,secs=s`` (together with 52``-drive if=none,id=dr,...``). 53 54``-drive serial=``, ``-drive trans=`` & ``-drive addr=`` (removed in 3.0) 55''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 56 57Use ``-device ...,drive=dr,serial=r,bios-chs-trans=t,addr=a`` instead 58(together with ``-drive if=none,id=dr,...``). 59 60``-net ...,vlan=x`` (removed in 3.0) 61'''''''''''''''''''''''''''''''''''' 62 63The term "vlan" was very confusing for most users in this context (it's about 64specifying a hub ID, not about IEEE 802.1Q or something similar), so this 65has been removed. To connect one NIC frontend with a network backend, either 66use ``-nic ...`` (e.g. for on-board NICs) or use ``-netdev ...,id=n`` together 67with ``-device ...,netdev=n`` (for full control over pluggable NICs). To 68connect multiple NICs or network backends via a hub device (which is what 69vlan did), use ``-nic hubport,hubid=x,...`` or 70``-netdev hubport,id=n,hubid=x,...`` (with ``-device ...,netdev=n``) instead. 71 72``-no-kvm-irqchip`` (removed in 3.0) 73'''''''''''''''''''''''''''''''''''' 74 75Use ``-machine kernel_irqchip=off`` instead. 76 77``-no-kvm-pit-reinjection`` (removed in 3.0) 78'''''''''''''''''''''''''''''''''''''''''''' 79 80Use ``-global kvm-pit.lost_tick_policy=discard`` instead. 81 82``-balloon`` (removed in 3.1) 83''''''''''''''''''''''''''''' 84 85The ``-balloon virtio`` option has been replaced by ``-device virtio-balloon``. 86The ``-balloon none`` option was a no-op and has no replacement. 87 88``-bootp`` (removed in 3.1) 89''''''''''''''''''''''''''' 90 91The ``-bootp /some/file`` argument is replaced by either 92``-netdev user,id=x,bootp=/some/file`` (for pluggable NICs, accompanied with 93``-device ...,netdev=x``), or ``-nic user,bootp=/some/file`` (for on-board NICs). 94The new syntax allows different settings to be provided per NIC. 95 96``-redir`` (removed in 3.1) 97''''''''''''''''''''''''''' 98 99The ``-redir [tcp|udp]:hostport:[guestaddr]:guestport`` option is replaced 100by either ``-netdev 101user,id=x,hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport`` 102(for pluggable NICs, accompanied with ``-device ...,netdev=x``) or by the option 103``-nic user,hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport`` 104(for on-board NICs). The new syntax allows different settings to be provided 105per NIC. 106 107``-smb`` (removed in 3.1) 108''''''''''''''''''''''''' 109 110The ``-smb /some/dir`` argument is replaced by either 111``-netdev user,id=x,smb=/some/dir`` (for pluggable NICs, accompanied with 112``-device ...,netdev=x``), or ``-nic user,smb=/some/dir`` (for on-board NICs). 113The new syntax allows different settings to be provided per NIC. 114 115``-tftp`` (removed in 3.1) 116'''''''''''''''''''''''''' 117 118The ``-tftp /some/dir`` argument is replaced by either 119``-netdev user,id=x,tftp=/some/dir`` (for pluggable NICs, accompanied with 120``-device ...,netdev=x``), or ``-nic user,tftp=/some/dir`` (for embedded NICs). 121The new syntax allows different settings to be provided per NIC. 122 123``-localtime`` (removed in 3.1) 124''''''''''''''''''''''''''''''' 125 126Replaced by ``-rtc base=localtime``. 127 128``-nodefconfig`` (removed in 3.1) 129''''''''''''''''''''''''''''''''' 130 131Use ``-no-user-config`` instead. 132 133``-rtc-td-hack`` (removed in 3.1) 134''''''''''''''''''''''''''''''''' 135 136Use ``-rtc driftfix=slew`` instead. 137 138``-startdate`` (removed in 3.1) 139''''''''''''''''''''''''''''''' 140 141Replaced by ``-rtc base=date``. 142 143``-vnc ...,tls=...``, ``-vnc ...,x509=...`` & ``-vnc ...,x509verify=...`` 144''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 145 146The "tls-creds" option should be used instead to point to a "tls-creds-x509" 147object created using "-object". 148 149``-net ...,name=...`` (removed in 5.1) 150'''''''''''''''''''''''''''''''''''''' 151 152The ``name`` parameter of the ``-net`` option was a synonym 153for the ``id`` parameter, which should now be used instead. 154 155``-no-kvm`` (removed in 5.2) 156'''''''''''''''''''''''''''' 157 158The ``-no-kvm`` argument was a synonym for setting ``-machine accel=tcg``. 159 160``-realtime`` (removed in 6.0) 161'''''''''''''''''''''''''''''' 162 163The ``-realtime mlock=on|off`` argument has been replaced by the 164``-overcommit mem-lock=on|off`` argument. 165 166``-show-cursor`` option (removed in 6.0) 167'''''''''''''''''''''''''''''''''''''''' 168 169Use ``-display sdl,show-cursor=on``, ``-display gtk,show-cursor=on`` 170or ``-display default,show-cursor=on`` instead. 171 172``-tb-size`` option (removed in 6.0) 173'''''''''''''''''''''''''''''''''''' 174 175QEMU 5.0 introduced an alternative syntax to specify the size of the translation 176block cache, ``-accel tcg,tb-size=``. 177 178``-usbdevice audio`` (removed in 6.0) 179''''''''''''''''''''''''''''''''''''' 180 181This option lacked the possibility to specify an audio backend device. 182Use ``-device usb-audio`` now instead (and specify a corresponding USB 183host controller or ``-usb`` if necessary). 184 185``-vnc acl`` (removed in 6.0) 186''''''''''''''''''''''''''''' 187 188The ``acl`` option to the ``-vnc`` argument has been replaced 189by the ``tls-authz`` and ``sasl-authz`` options. 190 191``-mon ...,control=readline,pretty=on|off`` (removed in 6.0) 192'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 193 194The ``pretty=on|off`` switch has no effect for HMP monitors and 195its use is rejected. 196 197``-drive file=json:{...{'driver':'file'}}`` (removed 6.0) 198''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 199 200The 'file' driver for drives is no longer appropriate for character or host 201devices and will only accept regular files (S_IFREG). The correct driver 202for these file types is 'host_cdrom' or 'host_device' as appropriate. 203 204Floppy controllers' drive properties (removed in 6.0) 205''''''''''''''''''''''''''''''''''''''''''''''''''''' 206 207Use ``-device floppy,...`` instead. When configuring onboard floppy 208controllers 209:: 210 211 -global isa-fdc.driveA=... 212 -global sysbus-fdc.driveA=... 213 -global SUNW,fdtwo.drive=... 214 215become 216:: 217 218 -device floppy,unit=0,drive=... 219 220and 221:: 222 223 -global isa-fdc.driveB=... 224 -global sysbus-fdc.driveB=... 225 226become 227:: 228 229 -device floppy,unit=1,drive=... 230 231When plugging in a floppy controller 232:: 233 234 -device isa-fdc,...,driveA=... 235 236becomes 237:: 238 239 -device isa-fdc,... 240 -device floppy,unit=0,drive=... 241 242and 243:: 244 245 -device isa-fdc,...,driveB=... 246 247becomes 248:: 249 250 -device isa-fdc,... 251 -device floppy,unit=1,drive=... 252 253``-drive`` with bogus interface type (removed in 6.0) 254''''''''''''''''''''''''''''''''''''''''''''''''''''' 255 256Drives with interface types other than ``if=none`` are for onboard 257devices. Drives the board doesn't pick up can no longer be used with 258-device. Use ``if=none`` instead. 259 260``-usbdevice ccid`` (removed in 6.0) 261''''''''''''''''''''''''''''''''''''' 262 263This option was undocumented and not used in the field. 264Use ``-device usb-ccid`` instead. 265 266RISC-V firmware not booted by default (removed in 5.1) 267'''''''''''''''''''''''''''''''''''''''''''''''''''''' 268 269QEMU 5.1 changes the default behaviour from ``-bios none`` to ``-bios default`` 270for the RISC-V ``virt`` machine and ``sifive_u`` machine. 271 272QEMU Machine Protocol (QMP) commands 273------------------------------------ 274 275``block-dirty-bitmap-add`` "autoload" parameter (removed in 4.2.0) 276'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 277 278The "autoload" parameter has been ignored since 2.12.0. All bitmaps 279are automatically loaded from qcow2 images. 280 281``cpu-add`` (removed in 5.2) 282'''''''''''''''''''''''''''' 283 284Use ``device_add`` for hotplugging vCPUs instead of ``cpu-add``. See 285documentation of ``query-hotpluggable-cpus`` for additional details. 286 287``change`` (removed in 6.0) 288''''''''''''''''''''''''''' 289 290Use ``blockdev-change-medium`` or ``change-vnc-password`` instead. 291 292``query-events`` (removed in 6.0) 293''''''''''''''''''''''''''''''''' 294 295The ``query-events`` command has been superseded by the more powerful 296and accurate ``query-qmp-schema`` command. 297 298``migrate_set_cache_size`` and ``query-migrate-cache-size`` (removed in 6.0) 299'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 300 301Use ``migrate_set_parameter`` and ``info migrate_parameters`` instead. 302 303``migrate_set_downtime`` and ``migrate_set_speed`` (removed in 6.0) 304''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 305 306Use ``migrate_set_parameter`` instead. 307 308``query-cpus`` (removed in 6.0) 309''''''''''''''''''''''''''''''' 310 311The ``query-cpus`` command is replaced by the ``query-cpus-fast`` command. 312 313``query-cpus-fast`` ``arch`` output member (removed in 6.0) 314''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 315 316The ``arch`` output member of the ``query-cpus-fast`` command is 317replaced by the ``target`` output member. 318 319chardev client socket with ``wait`` option (removed in 6.0) 320''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 321 322Character devices creating sockets in client mode should not specify 323the 'wait' field, which is only applicable to sockets in server mode 324 325``query-named-block-nodes`` result ``encryption_key_missing`` (removed in 6.0) 326'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 327 328Removed with no replacement. 329 330``query-block`` result ``inserted.encryption_key_missing`` (removed in 6.0) 331''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 332 333Removed with no replacement. 334 335``query-named-block-nodes`` and ``query-block`` result dirty-bitmaps[i].status (removed in 6.0) 336''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 337 338The ``status`` field of the ``BlockDirtyInfo`` structure, returned by 339these commands is removed. Two new boolean fields, ``recording`` and 340``busy`` effectively replace it. 341 342``query-block`` result field ``dirty-bitmaps`` (removed in 6.0) 343''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 344 345The ``dirty-bitmaps`` field of the ``BlockInfo`` structure, returned by 346the query-block command is itself now removed. The ``dirty-bitmaps`` 347field of the ``BlockDeviceInfo`` struct should be used instead, which is the 348type of the ``inserted`` field in query-block replies, as well as the 349type of array items in query-named-block-nodes. 350 351``object-add`` option ``props`` (removed in 6.0) 352'''''''''''''''''''''''''''''''''''''''''''''''' 353 354Specify the properties for the object as top-level arguments instead. 355 356Human Monitor Protocol (HMP) commands 357------------------------------------- 358 359``usb_add`` and ``usb_remove`` (removed in 2.12) 360'''''''''''''''''''''''''''''''''''''''''''''''' 361 362Replaced by ``device_add`` and ``device_del`` (use ``device_add help`` for a 363list of available devices). 364 365``host_net_add`` and ``host_net_remove`` (removed in 2.12) 366'''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 367 368Replaced by ``netdev_add`` and ``netdev_del``. 369 370The ``hub_id`` parameter of ``hostfwd_add`` / ``hostfwd_remove`` (removed in 5.0) 371''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 372 373The ``[hub_id name]`` parameter tuple of the 'hostfwd_add' and 374'hostfwd_remove' HMP commands has been replaced by ``netdev_id``. 375 376``cpu-add`` (removed in 5.2) 377'''''''''''''''''''''''''''' 378 379Use ``device_add`` for hotplugging vCPUs instead of ``cpu-add``. See 380documentation of ``query-hotpluggable-cpus`` for additional details. 381 382``change vnc TARGET`` (removed in 6.0) 383'''''''''''''''''''''''''''''''''''''' 384 385No replacement. The ``change vnc password`` and ``change DEVICE MEDIUM`` 386commands are not affected. 387 388``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, ``acl_remove`` (removed in 6.0) 389''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 390 391The ``acl_show``, ``acl_reset``, ``acl_policy``, ``acl_add``, and 392``acl_remove`` commands were removed with no replacement. Authorization 393for VNC should be performed using the pluggable QAuthZ objects. 394 395``migrate-set-cache-size`` and ``info migrate-cache-size`` (removed in 6.0) 396''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 397 398Use ``migrate-set-parameters`` and ``info migrate-parameters`` instead. 399 400``migrate_set_downtime`` and ``migrate_set_speed`` (removed in 6.0) 401''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 402 403Use ``migrate-set-parameters`` instead. 404 405``info cpustats`` (removed in 6.1) 406'''''''''''''''''''''''''''''''''' 407 408This command didn't produce any output already. Removed with no replacement. 409 410Guest Emulator ISAs 411------------------- 412 413RISC-V ISA privilege specification version 1.09.1 (removed in 5.1) 414'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 415 416The RISC-V ISA privilege specification version 1.09.1 has been removed. 417QEMU supports both the newer version 1.10.0 and the ratified version 1.11.0, these 418should be used instead of the 1.09.1 version. 419 420System emulator CPUS 421-------------------- 422 423KVM guest support on 32-bit Arm hosts (removed in 5.2) 424'''''''''''''''''''''''''''''''''''''''''''''''''''''' 425 426The Linux kernel has dropped support for allowing 32-bit Arm systems 427to host KVM guests as of the 5.7 kernel. Accordingly, QEMU is deprecating 428its support for this configuration and will remove it in a future version. 429Running 32-bit guests on a 64-bit Arm host remains supported. 430 431RISC-V ISA Specific CPUs (removed in 5.1) 432''''''''''''''''''''''''''''''''''''''''' 433 434The RISC-V cpus with the ISA version in the CPU name have been removed. The 435four CPUs are: ``rv32gcsu-v1.9.1``, ``rv32gcsu-v1.10.0``, ``rv64gcsu-v1.9.1`` and 436``rv64gcsu-v1.10.0``. Instead the version can be specified via the CPU ``priv_spec`` 437option when using the ``rv32`` or ``rv64`` CPUs. 438 439RISC-V no MMU CPUs (removed in 5.1) 440''''''''''''''''''''''''''''''''''' 441 442The RISC-V no MMU cpus have been removed. The two CPUs: ``rv32imacu-nommu`` and 443``rv64imacu-nommu`` can no longer be used. Instead the MMU status can be specified 444via the CPU ``mmu`` option when using the ``rv32`` or ``rv64`` CPUs. 445 446``compat`` property of server class POWER CPUs (removed in 6.0) 447''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 448 449The ``max-cpu-compat`` property of the ``pseries`` machine type should be used 450instead. 451 452``moxie`` CPU (removed in 6.1) 453'''''''''''''''''''''''''''''' 454 455Nobody was using this CPU emulation in QEMU, and there were no test images 456available to make sure that the code is still working, so it has been removed 457without replacement. 458 459``lm32`` CPUs (removed in 6.1.0) 460'''''''''''''''''''''''''''''''' 461 462The only public user of this architecture was the milkymist project, 463which has been dead for years; there was never an upstream Linux 464port. Removed without replacement. 465 466``unicore32`` CPUs (since 6.1.0) 467'''''''''''''''''''''''''''''''' 468 469Support for this CPU was removed from the upstream Linux kernel, and 470there is no available upstream toolchain to build binaries for it. 471Removed without replacement. 472 473System emulator machines 474------------------------ 475 476``s390-virtio`` (removed in 2.6) 477'''''''''''''''''''''''''''''''' 478 479Use the ``s390-ccw-virtio`` machine instead. 480 481The m68k ``dummy`` machine (removed in 2.9) 482''''''''''''''''''''''''''''''''''''''''''' 483 484Use the ``none`` machine with the ``loader`` device instead. 485 486``xlnx-ep108`` (removed in 3.0) 487''''''''''''''''''''''''''''''' 488 489The EP108 was an early access development board that is no longer used. 490Use the ``xlnx-zcu102`` machine instead. 491 492``spike_v1.9.1`` and ``spike_v1.10`` (removed in 5.1) 493''''''''''''''''''''''''''''''''''''''''''''''''''''' 494 495The version specific Spike machines have been removed in favour of the 496generic ``spike`` machine. If you need to specify an older version of the RISC-V 497spec you can use the ``-cpu rv64gcsu,priv_spec=v1.10.0`` command line argument. 498 499mips ``r4k`` platform (removed in 5.2) 500'''''''''''''''''''''''''''''''''''''' 501 502This machine type was very old and unmaintained. Users should use the ``malta`` 503machine type instead. 504 505mips ``fulong2e`` machine alias (removed in 6.0) 506'''''''''''''''''''''''''''''''''''''''''''''''' 507 508This machine has been renamed ``fuloong2e``. 509 510``pc-0.10`` up to ``pc-1.3`` (removed in 4.0 up to 6.0) 511''''''''''''''''''''''''''''''''''''''''''''''''''''''' 512 513These machine types were very old and likely could not be used for live 514migration from old QEMU versions anymore. Use a newer machine type instead. 515 516 517linux-user mode CPUs 518-------------------- 519 520``tilegx`` CPUs (removed in 6.0) 521'''''''''''''''''''''''''''''''' 522 523The ``tilegx`` guest CPU support has been removed without replacement. It was 524only implemented in linux-user mode, but support for this CPU was removed from 525the upstream Linux kernel in 2018, and it has also been dropped from glibc, so 526there is no new Linux development taking place with this architecture. For 527running the old binaries, you can use older versions of QEMU. 528 529System emulator devices 530----------------------- 531 532``spapr-pci-vfio-host-bridge`` (removed in 2.12) 533''''''''''''''''''''''''''''''''''''''''''''''''' 534 535The ``spapr-pci-vfio-host-bridge`` device type has been replaced by the 536``spapr-pci-host-bridge`` device type. 537 538``ivshmem`` (removed in 4.0) 539'''''''''''''''''''''''''''' 540 541Replaced by either the ``ivshmem-plain`` or ``ivshmem-doorbell``. 542 543``ide-drive`` (removed in 6.0) 544'''''''''''''''''''''''''''''' 545 546The 'ide-drive' device has been removed. Users should use 'ide-hd' or 547'ide-cd' as appropriate to get an IDE hard disk or CD-ROM as needed. 548 549``scsi-disk`` (removed in 6.0) 550'''''''''''''''''''''''''''''' 551 552The 'scsi-disk' device has been removed. Users should use 'scsi-hd' or 553'scsi-cd' as appropriate to get a SCSI hard disk or CD-ROM as needed. 554 555Related binaries 556---------------- 557 558``qemu-nbd --partition`` (removed in 5.0) 559''''''''''''''''''''''''''''''''''''''''' 560 561The ``qemu-nbd --partition $digit`` code (also spelled ``-P``) 562could only handle MBR partitions, and never correctly handled logical 563partitions beyond partition 5. Exporting a partition can still be 564done by utilizing the ``--image-opts`` option with a raw blockdev 565using the ``offset`` and ``size`` parameters layered on top of 566any other existing blockdev. For example, if partition 1 is 100MiB 567long starting at 1MiB, the old command:: 568 569 qemu-nbd -t -P 1 -f qcow2 file.qcow2 570 571can be rewritten as:: 572 573 qemu-nbd -t --image-opts driver=raw,offset=1M,size=100M,file.driver=qcow2,file.file.driver=file,file.file.filename=file.qcow2 574 575``qemu-img convert -n -o`` (removed in 5.1) 576''''''''''''''''''''''''''''''''''''''''''' 577 578All options specified in ``-o`` are image creation options, so 579they are now rejected when used with ``-n`` to skip image creation. 580 581 582``qemu-img create -b bad file $size`` (removed in 5.1) 583'''''''''''''''''''''''''''''''''''''''''''''''''''''' 584 585When creating an image with a backing file that could not be opened, 586``qemu-img create`` used to issue a warning about the failure but 587proceed with the image creation if an explicit size was provided. 588However, as the ``-u`` option exists for this purpose, it is safer to 589enforce that any failure to open the backing image (including if the 590backing file is missing or an incorrect format was specified) is an 591error when ``-u`` is not used. 592 593Command line options 594-------------------- 595 596``-smp`` (invalid topologies) (removed 5.2) 597''''''''''''''''''''''''''''''''''''''''''' 598 599CPU topology properties should describe whole machine topology including 600possible CPUs. 601 602However, historically it was possible to start QEMU with an incorrect topology 603where *n* <= *sockets* * *cores* * *threads* < *maxcpus*, 604which could lead to an incorrect topology enumeration by the guest. 605Support for invalid topologies is removed, the user must ensure 606topologies described with -smp include all possible cpus, i.e. 607*sockets* * *cores* * *threads* = *maxcpus*. 608 609``-numa`` node (without memory specified) (removed 5.2) 610''''''''''''''''''''''''''''''''''''''''''''''''''''''' 611 612Splitting RAM by default between NUMA nodes had the same issues as ``mem`` 613parameter with the difference that the role of the user plays QEMU using 614implicit generic or board specific splitting rule. 615Use ``memdev`` with *memory-backend-ram* backend or ``mem`` (if 616it's supported by used machine type) to define mapping explicitly instead. 617Users of existing VMs, wishing to preserve the same RAM distribution, should 618configure it explicitly using ``-numa node,memdev`` options. Current RAM 619distribution can be retrieved using HMP command ``info numa`` and if separate 620memory devices (pc|nv-dimm) are present use ``info memory-device`` and subtract 621device memory from output of ``info numa``. 622 623``-numa node,mem=``\ *size* (removed in 5.1) 624'''''''''''''''''''''''''''''''''''''''''''' 625 626The parameter ``mem`` of ``-numa node`` was used to assign a part of 627guest RAM to a NUMA node. But when using it, it's impossible to manage a specified 628RAM chunk on the host side (like bind it to a host node, setting bind policy, ...), 629so the guest ends up with the fake NUMA configuration with suboptiomal performance. 630However since 2014 there is an alternative way to assign RAM to a NUMA node 631using parameter ``memdev``, which does the same as ``mem`` and adds 632means to actually manage node RAM on the host side. Use parameter ``memdev`` 633with *memory-backend-ram* backend as replacement for parameter ``mem`` 634to achieve the same fake NUMA effect or a properly configured 635*memory-backend-file* backend to actually benefit from NUMA configuration. 636New machine versions (since 5.1) will not accept the option but it will still 637work with old machine types. User can check the QAPI schema to see if the legacy 638option is supported by looking at MachineInfo::numa-mem-supported property. 639 640``-mem-path`` fallback to RAM (removed in 5.0) 641'''''''''''''''''''''''''''''''''''''''''''''' 642 643If guest RAM allocation from file pointed by ``mem-path`` failed, 644QEMU was falling back to allocating from RAM, which might have resulted 645in unpredictable behavior since the backing file specified by the user 646as ignored. Currently, users are responsible for making sure the backing storage 647specified with ``-mem-path`` can actually provide the guest RAM configured with 648``-m`` and QEMU fails to start up if RAM allocation is unsuccessful. 649 650``-smp`` (invalid topologies) (removed 5.2) 651''''''''''''''''''''''''''''''''''''''''''' 652 653CPU topology properties should describe whole machine topology including 654possible CPUs. 655 656However, historically it was possible to start QEMU with an incorrect topology 657where *n* <= *sockets* * *cores* * *threads* < *maxcpus*, 658which could lead to an incorrect topology enumeration by the guest. 659Support for invalid topologies is removed, the user must ensure 660topologies described with -smp include all possible cpus, i.e. 661*sockets* * *cores* * *threads* = *maxcpus*. 662 663``-machine enforce-config-section=on|off`` (removed 5.2) 664'''''''''''''''''''''''''''''''''''''''''''''''''''''''' 665 666The ``enforce-config-section`` property was replaced by the 667``-global migration.send-configuration={on|off}`` option. 668 669qemu-img amend to adjust backing file (removed in 6.1) 670'''''''''''''''''''''''''''''''''''''''''''''''''''''' 671 672The use of ``qemu-img amend`` to modify the name or format of a qcow2 673backing image was never fully documented or tested, and interferes 674with other amend operations that need access to the original backing 675image (such as deciding whether a v3 zero cluster may be left 676unallocated when converting to a v2 image). Any changes to the 677backing chain should be performed with ``qemu-img rebase -u`` either 678before or after the remaining changes being performed by amend, as 679appropriate. 680 681qemu-img backing file without format (removed in 6.1) 682''''''''''''''''''''''''''''''''''''''''''''''''''''' 683 684The use of ``qemu-img create``, ``qemu-img rebase``, or ``qemu-img 685convert`` to create or modify an image that depends on a backing file 686now requires that an explicit backing format be provided. This is 687for safety: if QEMU probes a different format than what you thought, 688the data presented to the guest will be corrupt; similarly, presenting 689a raw image to a guest allows a potential security exploit if a future 690probe sees a non-raw image based on guest writes. 691 692To avoid creating unsafe backing chains, you must pass ``-o 693backing_fmt=`` (or the shorthand ``-F`` during create) to specify the 694intended backing format. You may use ``qemu-img rebase -u`` to 695retroactively add a backing format to an existing image. However, be 696aware that there are already potential security risks to blindly using 697``qemu-img info`` to probe the format of an untrusted backing image, 698when deciding what format to add into an existing image. 699 700Block devices 701------------- 702 703VXHS backend (removed in 5.1) 704''''''''''''''''''''''''''''' 705 706The VXHS code did not compile since v2.12.0. It was removed in 5.1. 707 708``sheepdog`` driver (removed in 6.0) 709'''''''''''''''''''''''''''''''''''' 710 711The corresponding upstream server project is no longer maintained. 712Users are recommended to switch to an alternative distributed block 713device driver such as RBD. 714