Message ID | 20240819144303.37852-1-peter.maydell@linaro.org |
---|---|
State | New |
Headers | show |
Series | docs/system/cpu-hotplug: Update example's socket-id/core-id | expand |
On Mon, 19 Aug 2024 at 15:43, Peter Maydell <peter.maydell@linaro.org> wrote: > > At some point the way we allocate socket-id and core-id to CPUs > by default changed; update the example of how to do CPU hotplug > and unplug so the example commands work again. The differences > in the sample input and output are: > * the second CPU is now socket-id=0 core-id=1, > not socket-id=1 core-id=0 > * the order of fields from the qmp_shell is different (it seems > to now always be in alphabetical order) > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > I noticed this while I was playing around with vcpu hotplug trying to > demonstrate a memory leak I want to fix... Ping for review on this one, please? thanks -- PMM > > docs/system/cpu-hotplug.rst | 54 ++++++++++++++++++------------------- > 1 file changed, 26 insertions(+), 28 deletions(-) > > diff --git a/docs/system/cpu-hotplug.rst b/docs/system/cpu-hotplug.rst > index 015ce2b6ec3..443ff226b90 100644 > --- a/docs/system/cpu-hotplug.rst > +++ b/docs/system/cpu-hotplug.rst > @@ -33,23 +33,23 @@ vCPU hotplug > { > "return": [ > { > - "type": "IvyBridge-IBRS-x86_64-cpu", > - "vcpus-count": 1, > "props": { > - "socket-id": 1, > - "core-id": 0, > + "core-id": 1, > + "socket-id": 0, > "thread-id": 0 > - } > + }, > + "type": "IvyBridge-IBRS-x86_64-cpu", > + "vcpus-count": 1 > }, > { > + "props": { > + "core-id": 0, > + "socket-id": 0, > + "thread-id": 0 > + }, > "qom-path": "/machine/unattached/device[0]", > "type": "IvyBridge-IBRS-x86_64-cpu", > - "vcpus-count": 1, > - "props": { > - "socket-id": 0, > - "core-id": 0, > - "thread-id": 0 > - } > + "vcpus-count": 1 > } > ] > } > @@ -58,18 +58,18 @@ vCPU hotplug > (4) The ``query-hotpluggable-cpus`` command returns an object for CPUs > 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 > - 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``:: > > (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, > + "core-id": 1, > "driver": "IvyBridge-IBRS-x86_64-cpu", > "id": "cpu-2", > - "core-id": 0, > + "socket-id": 0, > "thread-id": 0 > } > } > @@ -83,34 +83,32 @@ vCPU hotplug > > (QEMU) query-cpus-fast > { > - "execute": "query-cpus-fast", > "arguments": {} > + "execute": "query-cpus-fast", > } > { > "return": [ > { > - "qom-path": "/machine/unattached/device[0]", > - "target": "x86_64", > - "thread-id": 11534, > "cpu-index": 0, > "props": { > - "socket-id": 0, > "core-id": 0, > + "socket-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, > "props": { > - "socket-id": 1, > - "core-id": 0, > + "core-id": 1, > + "socket-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 > { > - "execute": "device_del", > "arguments": { > "id": "cpu-2" > } > + "execute": "device_del", > } > { > "return": {} > -- > 2.34.1 >
On Mon, 19 Aug 2024 15:43:03 +0100 Peter Maydell <peter.maydell@linaro.org> wrote: > At some point the way we allocate socket-id and core-id to CPUs > by default changed; update the example of how to do CPU hotplug > and unplug so the example commands work again. The differences > in the sample input and output are: > * the second CPU is now socket-id=0 core-id=1, > not socket-id=1 core-id=0 > * the order of fields from the qmp_shell is different (it seems > to now always be in alphabetical order) > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > --- > I noticed this while I was playing around with vcpu hotplug trying to > demonstrate a memory leak I want to fix... > > docs/system/cpu-hotplug.rst | 54 ++++++++++++++++++------------------- > 1 file changed, 26 insertions(+), 28 deletions(-) > > diff --git a/docs/system/cpu-hotplug.rst b/docs/system/cpu-hotplug.rst > index 015ce2b6ec3..443ff226b90 100644 > --- a/docs/system/cpu-hotplug.rst > +++ b/docs/system/cpu-hotplug.rst > @@ -33,23 +33,23 @@ vCPU hotplug > { > "return": [ > { > - "type": "IvyBridge-IBRS-x86_64-cpu", > - "vcpus-count": 1, > "props": { > - "socket-id": 1, > - "core-id": 0, > + "core-id": 1, > + "socket-id": 0, > "thread-id": 0 > - } > + }, > + "type": "IvyBridge-IBRS-x86_64-cpu", > + "vcpus-count": 1 > }, > { > + "props": { > + "core-id": 0, > + "socket-id": 0, > + "thread-id": 0 > + }, > "qom-path": "/machine/unattached/device[0]", > "type": "IvyBridge-IBRS-x86_64-cpu", > - "vcpus-count": 1, > - "props": { > - "socket-id": 0, > - "core-id": 0, > - "thread-id": 0 > - } > + "vcpus-count": 1 > } > ] > } > @@ -58,18 +58,18 @@ vCPU hotplug > (4) The ``query-hotpluggable-cpus`` command returns an object for CPUs > 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 > - 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``:: > > (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, > + "core-id": 1, > "driver": "IvyBridge-IBRS-x86_64-cpu", > "id": "cpu-2", > - "core-id": 0, > + "socket-id": 0, > "thread-id": 0 after above changes device_add doesn't match comment nor 'execute' output > } > } > @@ -83,34 +83,32 @@ vCPU hotplug > > (QEMU) query-cpus-fast > { > - "execute": "query-cpus-fast", > "arguments": {} > + "execute": "query-cpus-fast", > } > { > "return": [ > { > - "qom-path": "/machine/unattached/device[0]", > - "target": "x86_64", > - "thread-id": 11534, > "cpu-index": 0, > "props": { > - "socket-id": 0, > "core-id": 0, > + "socket-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, > "props": { > - "socket-id": 1, > - "core-id": 0, > + "core-id": 1, > + "socket-id": 0, > "thread-id": 0 > }, > - "arch": "x86" > + "qom-path": "/machine/peripheral/cpu-2", > + "target": "x86_64", > + "thread-id": 29095 > } beside reordering, which seems fine, this hunk also introduces target change perhaps a separate patch for that? > ] > } > @@ -123,10 +121,10 @@ From the 'qmp-shell', invoke the QMP ``device_del`` command:: > > (QEMU) device_del id=cpu-2 > { > - "execute": "device_del", > "arguments": { > "id": "cpu-2" > } > + "execute": "device_del", > } > { > "return": {}
On Tue, 10 Sept 2024 at 10:03, Igor Mammedov <imammedo@redhat.com> wrote: > > On Mon, 19 Aug 2024 15:43:03 +0100 > Peter Maydell <peter.maydell@linaro.org> wrote: > > > At some point the way we allocate socket-id and core-id to CPUs > > by default changed; update the example of how to do CPU hotplug > > and unplug so the example commands work again. The differences > > in the sample input and output are: > > * the second CPU is now socket-id=0 core-id=1, > > not socket-id=1 core-id=0 > > * the order of fields from the qmp_shell is different (it seems > > to now always be in alphabetical order) > > > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> > > --- > > I noticed this while I was playing around with vcpu hotplug trying to > > demonstrate a memory leak I want to fix... > > > > docs/system/cpu-hotplug.rst | 54 ++++++++++++++++++------------------- > > 1 file changed, 26 insertions(+), 28 deletions(-) > > > > diff --git a/docs/system/cpu-hotplug.rst b/docs/system/cpu-hotplug.rst > > index 015ce2b6ec3..443ff226b90 100644 > > --- a/docs/system/cpu-hotplug.rst > > +++ b/docs/system/cpu-hotplug.rst > > @@ -33,23 +33,23 @@ vCPU hotplug > > { > > "return": [ > > { > > - "type": "IvyBridge-IBRS-x86_64-cpu", > > - "vcpus-count": 1, > > "props": { > > - "socket-id": 1, > > - "core-id": 0, > > + "core-id": 1, > > + "socket-id": 0, > > "thread-id": 0 > > - } > > + }, > > + "type": "IvyBridge-IBRS-x86_64-cpu", > > + "vcpus-count": 1 > > }, > > { > > + "props": { > > + "core-id": 0, > > + "socket-id": 0, > > + "thread-id": 0 > > + }, > > "qom-path": "/machine/unattached/device[0]", > > "type": "IvyBridge-IBRS-x86_64-cpu", > > - "vcpus-count": 1, > > - "props": { > > - "socket-id": 0, > > - "core-id": 0, > > - "thread-id": 0 > > - } > > + "vcpus-count": 1 > > } > > ] > > } > > @@ -58,18 +58,18 @@ vCPU hotplug > > (4) The ``query-hotpluggable-cpus`` command returns an object for CPUs > > 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 > > - 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``:: > > > > > (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, > > + "core-id": 1, > > "driver": "IvyBridge-IBRS-x86_64-cpu", > > "id": "cpu-2", > > - "core-id": 0, > > + "socket-id": 0, > > "thread-id": 0 > > after above changes device_add doesn't match comment nor 'execute' output Oops, yes. The device_add line should be changed too ("socket-id=0 core-id=1 thread-id=0"). > > > } > > } > > @@ -83,34 +83,32 @@ vCPU hotplug > > > > (QEMU) query-cpus-fast > > { > > - "execute": "query-cpus-fast", > > "arguments": {} > > + "execute": "query-cpus-fast", > > } > > { > > "return": [ > > { > > - "qom-path": "/machine/unattached/device[0]", > > - "target": "x86_64", > > - "thread-id": 11534, > > "cpu-index": 0, > > "props": { > > - "socket-id": 0, > > "core-id": 0, > > + "socket-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, > > "props": { > > - "socket-id": 1, > > - "core-id": 0, > > + "core-id": 1, > > + "socket-id": 0, > > "thread-id": 0 > > }, > > - "arch": "x86" > > + "qom-path": "/machine/peripheral/cpu-2", > > + "target": "x86_64", > > + "thread-id": 29095 > > } > > beside reordering, which seems fine, this hunk also introduces target change > perhaps a separate patch for that? What target change? It all says "target": "x86_64" both before and after. thanks -- PMM
On Tue, 10 Sept 2024 at 10:38, Peter Maydell <peter.maydell@linaro.org> wrote: > > On Tue, 10 Sept 2024 at 10:03, Igor Mammedov <imammedo@redhat.com> wrote: > > > > On Mon, 19 Aug 2024 15:43:03 +0100 > > Peter Maydell <peter.maydell@linaro.org> wrote: > > > @@ -83,34 +83,32 @@ vCPU hotplug > > > > > > (QEMU) query-cpus-fast > > > { > > > - "execute": "query-cpus-fast", > > > "arguments": {} > > > + "execute": "query-cpus-fast", > > > } > > > { > > > "return": [ > > > { > > > - "qom-path": "/machine/unattached/device[0]", > > > - "target": "x86_64", > > > - "thread-id": 11534, > > > "cpu-index": 0, > > > "props": { > > > - "socket-id": 0, > > > "core-id": 0, > > > + "socket-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, > > > "props": { > > > - "socket-id": 1, > > > - "core-id": 0, > > > + "core-id": 1, > > > + "socket-id": 0, > > > "thread-id": 0 > > > }, > > > - "arch": "x86" > > > + "qom-path": "/machine/peripheral/cpu-2", > > > + "target": "x86_64", > > > + "thread-id": 29095 > > > } > > > > beside reordering, which seems fine, this hunk also introduces target change > > perhaps a separate patch for that? > > What target change? It all says "target": "x86_64" both before > and after. Hi Igor, would you mind clarifying what you meant here? I'm happy to respin, but I don't understand what change you're asking for. thanks -- PMM
On Thu, 19 Sep 2024 13:34:54 +0100 Peter Maydell <peter.maydell@linaro.org> wrote: > On Tue, 10 Sept 2024 at 10:38, Peter Maydell <peter.maydell@linaro.org> wrote: > > > > On Tue, 10 Sept 2024 at 10:03, Igor Mammedov <imammedo@redhat.com> wrote: > > > > > > On Mon, 19 Aug 2024 15:43:03 +0100 > > > Peter Maydell <peter.maydell@linaro.org> wrote: > > > > @@ -83,34 +83,32 @@ vCPU hotplug > > > > > > > > (QEMU) query-cpus-fast > > > > { > > > > - "execute": "query-cpus-fast", > > > > "arguments": {} > > > > + "execute": "query-cpus-fast", > > > > } > > > > { > > > > "return": [ > > > > { > > > > - "qom-path": "/machine/unattached/device[0]", > > > > - "target": "x86_64", > > > > - "thread-id": 11534, > > > > "cpu-index": 0, > > > > "props": { > > > > - "socket-id": 0, > > > > "core-id": 0, > > > > + "socket-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, > > > > "props": { > > > > - "socket-id": 1, > > > > - "core-id": 0, > > > > + "core-id": 1, > > > > + "socket-id": 0, > > > > "thread-id": 0 > > > > }, > > > > - "arch": "x86" > > > > + "qom-path": "/machine/peripheral/cpu-2", > > > > + "target": "x86_64", > > > > + "thread-id": 29095 > > > > } > > > > > > beside reordering, which seems fine, this hunk also introduces target change > > > perhaps a separate patch for that? > > > > What target change? It all says "target": "x86_64" both before > > and after. my mistake, I should've said '"arch": "x86"' instead, which is gone after the patch > > Hi Igor, would you mind clarifying what you meant here? > I'm happy to respin, but I don't understand what change you're > asking for. > > thanks > -- PMM >
diff --git a/docs/system/cpu-hotplug.rst b/docs/system/cpu-hotplug.rst index 015ce2b6ec3..443ff226b90 100644 --- a/docs/system/cpu-hotplug.rst +++ b/docs/system/cpu-hotplug.rst @@ -33,23 +33,23 @@ vCPU hotplug { "return": [ { - "type": "IvyBridge-IBRS-x86_64-cpu", - "vcpus-count": 1, "props": { - "socket-id": 1, - "core-id": 0, + "core-id": 1, + "socket-id": 0, "thread-id": 0 - } + }, + "type": "IvyBridge-IBRS-x86_64-cpu", + "vcpus-count": 1 }, { + "props": { + "core-id": 0, + "socket-id": 0, + "thread-id": 0 + }, "qom-path": "/machine/unattached/device[0]", "type": "IvyBridge-IBRS-x86_64-cpu", - "vcpus-count": 1, - "props": { - "socket-id": 0, - "core-id": 0, - "thread-id": 0 - } + "vcpus-count": 1 } ] } @@ -58,18 +58,18 @@ vCPU hotplug (4) The ``query-hotpluggable-cpus`` command returns an object for CPUs 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 - 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``:: (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, + "core-id": 1, "driver": "IvyBridge-IBRS-x86_64-cpu", "id": "cpu-2", - "core-id": 0, + "socket-id": 0, "thread-id": 0 } } @@ -83,34 +83,32 @@ vCPU hotplug (QEMU) query-cpus-fast { - "execute": "query-cpus-fast", "arguments": {} + "execute": "query-cpus-fast", } { "return": [ { - "qom-path": "/machine/unattached/device[0]", - "target": "x86_64", - "thread-id": 11534, "cpu-index": 0, "props": { - "socket-id": 0, "core-id": 0, + "socket-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, "props": { - "socket-id": 1, - "core-id": 0, + "core-id": 1, + "socket-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 { - "execute": "device_del", "arguments": { "id": "cpu-2" } + "execute": "device_del", } { "return": {}
At some point the way we allocate socket-id and core-id to CPUs by default changed; update the example of how to do CPU hotplug and unplug so the example commands work again. The differences in the sample input and output are: * the second CPU is now socket-id=0 core-id=1, not socket-id=1 core-id=0 * the order of fields from the qmp_shell is different (it seems to now always be in alphabetical order) Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- I noticed this while I was playing around with vcpu hotplug trying to demonstrate a memory leak I want to fix... docs/system/cpu-hotplug.rst | 54 ++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 28 deletions(-)