qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] docs/system/cpu-hotplug: Update example's socket-id/core-id


From: Peter Maydell
Subject: Re: [PATCH] docs/system/cpu-hotplug: Update example's socket-id/core-id
Date: Tue, 10 Sep 2024 10:38:42 +0100

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



reply via email to

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