[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1 1/9] s390x: smp: s390x dedicated smp parsing
From: |
Cornelia Huck |
Subject: |
Re: [PATCH v1 1/9] s390x: smp: s390x dedicated smp parsing |
Date: |
Fri, 16 Jul 2021 10:54:08 +0200 |
User-agent: |
Notmuch/0.32.1 (https://notmuchmail.org) |
On Wed, Jul 14 2021, Pierre Morel <pmorel@linux.ibm.com> wrote:
> We need a s390x dedicated SMP parsing to handle s390x specificities.
>
> In this patch we only handle threads, cores and sockets for
> s390x:
> - do not support threads, we always have 1 single thread per core
> - the sockets are filled one after the other with the cores
>
> Both these handlings are different from the standard smp_parse
> functionement and reflect the CPU topology in the simple case
> where all CPU belong to the same book.
>
> Topology levels above sockets, i.e. books, drawers, are not
> considered at this stage and will be introduced in a later patch.
>
> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> ---
> hw/s390x/s390-virtio-ccw.c | 42 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
> index e4b18aef49..899d3a4137 100644
> --- a/hw/s390x/s390-virtio-ccw.c
> +++ b/hw/s390x/s390-virtio-ccw.c
> @@ -582,6 +582,47 @@ static ram_addr_t s390_fixup_ram_size(ram_addr_t sz)
> return newsz;
> }
>
> +/*
> + * In S390CCW machine we do not support threads for now,
> + * only sockets and cores.
> + */
> +static void s390_smp_parse(MachineState *ms, QemuOpts *opts)
It seems you based this on an older version of the code? The current
signature of this function since 1e63fe685804 ("machine: pass QAPI
struct to mc->smp_parse") is
void (*smp_parse)(MachineState *ms, SMPConfiguration *config, Error **errp);
That affects your parsing, and also lets you get rid of the ugly exit(1)
statements.
> +{
> + unsigned cpus = qemu_opt_get_number(opts, "cpus", 1);
> + unsigned sockets = qemu_opt_get_number(opts, "sockets", 1);
> + unsigned cores = qemu_opt_get_number(opts, "cores", 1);
> +
> + if (opts) {
> + if (cpus == 0 || sockets == 0 || cores == 0) {
This behaviour looks different from what we do for other targets: if you
specify the value as 0, a value is calculated from the other values;
here, you error out. It's probably not a good idea to differ.
> + error_report("cpu topology: "
> + "sockets (%u), cores (%u) or number of CPU(%u) "
> + "can not be zero", sockets, cores, cpus);
> + exit(1);
> + }
> + }
> +
- [PATCH v1 0/9] s390x: CPU Topology, Pierre Morel, 2021/07/14
- [PATCH v1 1/9] s390x: smp: s390x dedicated smp parsing, Pierre Morel, 2021/07/14
- Re: [PATCH v1 1/9] s390x: smp: s390x dedicated smp parsing,
Cornelia Huck <=
- Re: [PATCH v1 1/9] s390x: smp: s390x dedicated smp parsing, Daniel P . Berrangé, 2021/07/16
- Re: [PATCH v1 1/9] s390x: smp: s390x dedicated smp parsing, Pierre Morel, 2021/07/16
- Re: [PATCH v1 1/9] s390x: smp: s390x dedicated smp parsing, Cornelia Huck, 2021/07/19
- Re: [PATCH v1 1/9] s390x: smp: s390x dedicated smp parsing, Daniel P . Berrangé, 2021/07/19
- Re: [PATCH v1 1/9] s390x: smp: s390x dedicated smp parsing, Pierre Morel, 2021/07/20
- Re: [PATCH v1 1/9] s390x: smp: s390x dedicated smp parsing, Pierre Morel, 2021/07/20
- Re: [PATCH v1 1/9] s390x: smp: s390x dedicated smp parsing, Pierre Morel, 2021/07/16
[PATCH v1 2/9] s390x: toplogy: adding drawers and books to smp parsing, Pierre Morel, 2021/07/14