[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v10 1/9] s390x/cpu topology: core_id sets s390x CPU topology
From: |
Janis Schoetterl-Glausch |
Subject: |
Re: [PATCH v10 1/9] s390x/cpu topology: core_id sets s390x CPU topology |
Date: |
Tue, 25 Oct 2022 21:58:25 +0200 |
User-agent: |
Evolution 3.42.4 (3.42.4-2.fc35) |
On Wed, 2022-10-12 at 18:20 +0200, Pierre Morel wrote:
> In the S390x CPU topology the core_id specifies the CPU address
> and the position of the core withing the topology.
>
> Let's build the topology based on the core_id.
> s390x/cpu topology: core_id sets s390x CPU topology
>
> In the S390x CPU topology the core_id specifies the CPU address
> and the position of the cpu withing the topology.
>
> Let's build the topology based on the core_id.
>
> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> ---
> include/hw/s390x/cpu-topology.h | 45 +++++++++++
> hw/s390x/cpu-topology.c | 132 ++++++++++++++++++++++++++++++++
> hw/s390x/s390-virtio-ccw.c | 21 +++++
> hw/s390x/meson.build | 1 +
> 4 files changed, 199 insertions(+)
> create mode 100644 include/hw/s390x/cpu-topology.h
> create mode 100644 hw/s390x/cpu-topology.c
>
[...]
> +/**
> + * s390_topology_realize:
> + * @dev: the device state
> + * @errp: the error pointer (not used)
> + *
> + * During realize the machine CPU topology is initialized with the
> + * QEMU -smp parameters.
> + * The maximum count of CPU TLE in the all Topology can not be greater
> + * than the maximum CPUs.
> + */
> +static void s390_topology_realize(DeviceState *dev, Error **errp)
> +{
> + MachineState *ms = MACHINE(qdev_get_machine());
> + S390Topology *topo = S390_CPU_TOPOLOGY(dev);
> +
> + topo->cpus = ms->smp.cores * ms->smp.threads;
Currently threads are not supported, effectively increasing the number of cpus,
so this is currently correct. Once the machine version limits the threads to 1,
it is also correct. However, once we support multiple threads, this becomes
incorrect.
I wonder if it's ok from a backward compatibility point of view to modify the
smp values
by doing cores *= threads, threads = 1 for old machines.
Then you can just use the cores value and it is always correct.
In any case, if you keep it as is, I'd like to see a comment here saying that
this
is correct only so long as we don't support threads.
> +
> + topo->socket = g_new0(S390TopoContainer, ms->smp.sockets);
> + topo->tle = g_new0(S390TopoTLE, ms->smp.max_cpus);
> +
> + topo->ms = ms;
> +}
> +
[...]
[PATCH v10 4/9] s390x/cpu_topology: CPU topology migration, Pierre Morel, 2022/10/12
[PATCH v10 6/9] s390x/cpu topology: add topology-disable machine property, Pierre Morel, 2022/10/12
Re: [PATCH v10 6/9] s390x/cpu topology: add topology-disable machine property, Cédric Le Goater, 2022/10/18