Browse Source

docs/system/cpu-hotplug: Update example's socket-id/core-id

The example of how to do vCPU hotplug and hot-unlpug in the
cpu-hotplug documentation no longer works, because the way we
allocate socket-id and core-id to CPUs by default has changed at some
point.  The output also no longer matches what current QEMU produces
in some more cosmetic ways.

Update the example to match current QEMU. The differences are:
 * the second CPU is now socket-id=0 core-id=1,
   not socket-id=1 core-id=0
 * the order of fields in QMP responses is now in alphabetical order
 * the "arch" member is no longer present in the query-cpus-fast
   output (it was removed in QEMU 6.0)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Acked-by: Igor Mammedov <imammedo@redhat.com>
Message-id: 20241010131800.3210161-1-peter.maydell@linaro.org
Message-id: 20240819144303.37852-1-peter.maydell@linaro.org
Peter Maydell 9 months ago
parent
commit
bda8c24cb5
1 changed files with 26 additions and 28 deletions
  1. 26 28
      docs/system/cpu-hotplug.rst

+ 26 - 28
docs/system/cpu-hotplug.rst

@@ -33,23 +33,23 @@ vCPU hotplug
       {
       {
           "return": [
           "return": [
               {
               {
-                  "type": "IvyBridge-IBRS-x86_64-cpu",
-                  "vcpus-count": 1,
                   "props": {
                   "props": {
-                      "socket-id": 1,
-                      "core-id": 0,
+                      "core-id": 1,
+                      "socket-id": 0,
                       "thread-id": 0
                       "thread-id": 0
-                  }
+                  },
+                  "type": "IvyBridge-IBRS-x86_64-cpu",
+                  "vcpus-count": 1
               },
               },
               {
               {
-                  "qom-path": "/machine/unattached/device[0]",
-                  "type": "IvyBridge-IBRS-x86_64-cpu",
-                  "vcpus-count": 1,
                   "props": {
                   "props": {
-                      "socket-id": 0,
                       "core-id": 0,
                       "core-id": 0,
+                      "socket-id": 0,
                       "thread-id": 0
                       "thread-id": 0
-                  }
+                  },
+                  "qom-path": "/machine/unattached/device[0]",
+                  "type": "IvyBridge-IBRS-x86_64-cpu",
+                  "vcpus-count": 1
               }
               }
           ]
           ]
       }
       }
@@ -58,18 +58,18 @@ vCPU hotplug
 (4) The ``query-hotpluggable-cpus`` command returns an object for CPUs
 (4) The ``query-hotpluggable-cpus`` command returns an object for CPUs
     that are present (containing a "qom-path" member) or which may be
     that are present (containing a "qom-path" member) or which may be
     hot-plugged (no "qom-path" member).  From its output in step (3), we
     hot-plugged (no "qom-path" member).  From its output in step (3), we
-    can see that ``IvyBridge-IBRS-x86_64-cpu`` is present in socket 0,
-    while hot-plugging a CPU into socket 1 requires passing the listed
+    can see that ``IvyBridge-IBRS-x86_64-cpu`` is present in socket 0 core 0,
+    while hot-plugging a CPU into socket 0 core 1 requires passing the listed
     properties to QMP ``device_add``::
     properties to QMP ``device_add``::
 
 
-      (QEMU) device_add id=cpu-2 driver=IvyBridge-IBRS-x86_64-cpu socket-id=1 core-id=0 thread-id=0
+      (QEMU) device_add id=cpu-2 driver=IvyBridge-IBRS-x86_64-cpu socket-id=0 core-id=1 thread-id=0
       {
       {
           "execute": "device_add",
           "execute": "device_add",
           "arguments": {
           "arguments": {
-              "socket-id": 1,
+              "core-id": 1,
               "driver": "IvyBridge-IBRS-x86_64-cpu",
               "driver": "IvyBridge-IBRS-x86_64-cpu",
               "id": "cpu-2",
               "id": "cpu-2",
-              "core-id": 0,
+              "socket-id": 0,
               "thread-id": 0
               "thread-id": 0
           }
           }
       }
       }
@@ -83,34 +83,32 @@ vCPU hotplug
 
 
       (QEMU) query-cpus-fast
       (QEMU) query-cpus-fast
       {
       {
-          "execute": "query-cpus-fast",
           "arguments": {}
           "arguments": {}
+          "execute": "query-cpus-fast",
       }
       }
       {
       {
           "return": [
           "return": [
               {
               {
-                  "qom-path": "/machine/unattached/device[0]",
-                  "target": "x86_64",
-                  "thread-id": 11534,
                   "cpu-index": 0,
                   "cpu-index": 0,
                   "props": {
                   "props": {
-                      "socket-id": 0,
                       "core-id": 0,
                       "core-id": 0,
+                      "socket-id": 0,
                       "thread-id": 0
                       "thread-id": 0
                   },
                   },
-                  "arch": "x86"
+                  "qom-path": "/machine/unattached/device[0]",
+                  "target": "x86_64",
+                  "thread-id": 28957
               },
               },
               {
               {
-                  "qom-path": "/machine/peripheral/cpu-2",
-                  "target": "x86_64",
-                  "thread-id": 12106,
                   "cpu-index": 1,
                   "cpu-index": 1,
                   "props": {
                   "props": {
-                      "socket-id": 1,
-                      "core-id": 0,
+                      "core-id": 1,
+                      "socket-id": 0,
                       "thread-id": 0
                       "thread-id": 0
                   },
                   },
-                  "arch": "x86"
+                  "qom-path": "/machine/peripheral/cpu-2",
+                  "target": "x86_64",
+                  "thread-id": 29095
               }
               }
           ]
           ]
       }
       }
@@ -123,10 +121,10 @@ From the 'qmp-shell', invoke the QMP ``device_del`` command::
 
 
       (QEMU) device_del id=cpu-2
       (QEMU) device_del id=cpu-2
       {
       {
-          "execute": "device_del",
           "arguments": {
           "arguments": {
               "id": "cpu-2"
               "id": "cpu-2"
           }
           }
+          "execute": "device_del",
       }
       }
       {
       {
           "return": {}
           "return": {}