qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH for-6.2 v2 00/11] machine: smp parsing fixes and improvement


From: Cornelia Huck
Subject: Re: [PATCH for-6.2 v2 00/11] machine: smp parsing fixes and improvement
Date: Mon, 19 Jul 2021 18:57:38 +0200
User-agent: Notmuch/0.32.1 (https://notmuchmail.org)

On Mon, Jul 19 2021, Yanan Wang <wangyanan55@huawei.com> wrote:

> Hi,
>
> This is v2 of the series [1] that I have posted to introduce some smp parsing
> fixes and improvement, much more work has been processed compared to RFC v1.
>
> [1] https://lists.gnu.org/archive/html/qemu-devel/2021-07/msg00259.html
>
> The purpose of this series is to improve/fix the parsing logic. Explicitly
> specifying a CPU topology parameter as zero is not allowed any more, and
> maxcpus is now uniformly used to calculate the omitted parameters. It's also
> suggested that we should start to prefer cores over sockets over threads on
> the newer machine types, which will make the computed virtual topology more
> reflective of the real hardware.
>
> In order to reduce code duplication and ease the code maintenance, smp_parse
> in now converted into a parser generic enough for all arches, so that the PC
> specific one can be removed. It's also convenient to introduce more topology
> members (e.g. cluster) to the generic parser in the future.

Cc:ing Pierre, as he also had been looking at the smp parsing code (for
s390x) recently.

Also, please keep me on cc: for patches that touch s390x.

>
> Finally, a QEMU unit test for the parsing of given SMP configuration is added.
> Since all the parsing logic is in generic function smp_parse(), this test
> passes diffenent SMP configurations to the function and compare the parsing
> result with what is expected. In the test, all possible collections of the
> topology parameters and the corressponding expected results are listed,
> including the valid and invalid ones. The preference of sockets over cores
> and the preference of cores over sockets, and the support of multi-dies are
> also taken into consideration.
>
> ---
>
> Changelogs:
>
> v1->v2:
> - disallow "anything=0" in the smp configuration (Andrew)
> - make function smp_parse() a generic helper for all arches
> - improve the error reporting in the parser
> - start to prefer cores over sockets since 6.2 (Daniel)
> - add a unit test for the smp parsing (Daniel)
>
> ---
>
> Yanan Wang (11):
>   machine: Disallow specifying topology parameters as zero
>   machine: Make smp_parse generic enough for all arches
>   machine: Uniformly use maxcpus to calculate the omitted parameters
>   machine: Use the computed parameters to calculate omitted cpus
>   machine: Improve the error reporting of smp parsing
>   hw: Add compat machines for 6.2
>   machine: Prefer cores over sockets in smp parsing since 6.2
>   machine: Use ms instead of global current_machine in sanity-check
>   machine: Tweak the order of topology members in struct CpuTopology
>   machine: Split out the smp parsing code
>   tests/unit: Add a unit test for smp parsing
>
>  MAINTAINERS                 |    2 +
>  hw/arm/virt.c               |   10 +-
>  hw/core/machine-smp.c       |  124 ++++
>  hw/core/machine.c           |   68 +--
>  hw/core/meson.build         |    1 +
>  hw/i386/pc.c                |   66 +--
>  hw/i386/pc_piix.c           |   15 +-
>  hw/i386/pc_q35.c            |   14 +-
>  hw/ppc/spapr.c              |   16 +-
>  hw/s390x/s390-virtio-ccw.c  |   15 +-
>  include/hw/boards.h         |   13 +-
>  include/hw/i386/pc.h        |    3 +
>  qapi/machine.json           |    6 +-
>  qemu-options.hx             |    4 +-
>  tests/unit/meson.build      |    1 +
>  tests/unit/test-smp-parse.c | 1117 +++++++++++++++++++++++++++++++++++
>  16 files changed, 1338 insertions(+), 137 deletions(-)
>  create mode 100644 hw/core/machine-smp.c
>  create mode 100644 tests/unit/test-smp-parse.c
>
> -- 
> 2.19.1




reply via email to

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