[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] Deprecate QMP `cpu-add`

From: Kashyap Chamarthy
Subject: [Qemu-devel] [PATCH] Deprecate QMP `cpu-add`
Date: Thu, 20 Sep 2018 13:44:06 +0200

The intended functionality of QMP command `cpu-add` is replaced by
`device_add` (and `query-hotpluggable-cpus`).  So let's deprecate

A complete example of vCPU hotplug with the recommended way, using

(1) Launch QEMU as follows (note that the "maxcpus" is mandatory to
    allow vCPU hotplug):

    $ qemu-system-x86_64 -display none -no-user-config -m 2048 \
        -nodefaults -monitor stdio -machine pc,accel=kvm,usb=off \
        -smp 1,maxcpus=2 -cpu IvyBridge-IBRS \
node-name=node-Base,driver=qcow2,file.driver=file,file.filename=./base.qcow2 \
        -device virtio-blk,drive=node-Base,id=virtio0 -qmp 

(2) Run 'qmp-shell' (located in the source tree) to connect to the
    just-launched QEMU:

    $> ./qmp/qmp-shell -p -v /tmp/qmp-sock

(3) Check which socket is free to allow hotplugging a CPU:

    (QEMU) query-hotpluggable-cpus


(4) We can see that socket 1 is free, so use `device_add` to hotplug

    (QEMU) device_add id=cpu-2 driver=IvyBridge-IBRS-x86_64-cpu socket-id=1 
core-id=0 thread-id=0
        "execute": "device_add",
        "arguments": {
            "socket-id": 1,
            "driver": "IvyBridge-IBRS-x86_64-cpu",
            "id": "cpu-2",
            "core-id": 0,
            "thread-id": 0
        "return": {}

(5) Optionally, run QMP `query-cpus-fast` for some details about the

Suggested-by: Eduardo Habkost <address@hidden
Signed-off-by: Kashyap Chamarthy <address@hidden>
Also shouldn't we update tests/cpu-plug-test.c to make it use
`device_add`.  Can take a stab at it, if you'd like me to.
 qapi/misc.json       | 6 +++++-
 qemu-deprecated.texi | 5 +++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/qapi/misc.json b/qapi/misc.json
index d450cfef21..83bc9ad0ee 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -1104,7 +1104,11 @@
 # @cpu-add:
-# Adds CPU with specified ID
+# Adds CPU with specified ID.
+# Notes: This command is deprecated.  The `device_add` command should be
+#        used instead.  See the `query-hotpluggable-cpus` command for
+#        details.
 # @id: ID of CPU to be created, valid values [0..max_cpus)
diff --git a/qemu-deprecated.texi b/qemu-deprecated.texi
index 1b9c007f12..9c6d70d43a 100644
--- a/qemu-deprecated.texi
+++ b/qemu-deprecated.texi
@@ -155,6 +155,11 @@ 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.
address@hidden cpu-add (since 3.1)
+The intended functionality of ``cpu-add'' command, which is the ability
+to hot-plug vCPUs, can now be achieved by the ``device_add'' command.
 @section System emulator devices
 @subsection ivshmem (since 2.6.0)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]