qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Pierre Morel <pmorel@linux.ibm.com>
To: "Cédric Le Goater" <clg@kaod.org>,
	"Thomas Huth" <thuth@redhat.com>,
	qemu-s390x@nongnu.org
Cc: qemu-devel@nongnu.org, borntraeger@de.ibm.com,
	pasic@linux.ibm.com, richard.henderson@linaro.org,
	david@redhat.com, cohuck@redhat.com, mst@redhat.com,
	pbonzini@redhat.com, kvm@vger.kernel.org, ehabkost@redhat.com,
	marcel.apfelbaum@gmail.com, eblake@redhat.com, armbru@redhat.com,
	seiden@linux.ibm.com, nrb@linux.ibm.com, nsg@linux.ibm.com,
	frankja@linux.ibm.com, berrange@redhat.com
Subject: Re: [PATCH v20 02/21] s390x/cpu topology: add topology entries on CPU hotplug
Date: Wed, 21 Jun 2023 15:48:49 +0200	[thread overview]
Message-ID: <faf2d79d-a993-48a2-11cc-a229d0dbc17b@linux.ibm.com> (raw)
In-Reply-To: <83be3f5a-0df4-0b7d-9be3-5bf9a30ab709@kaod.org>


On 5/3/23 12:23, Cédric Le Goater wrote:
> Hello,
>
> On 5/3/23 11:12, Thomas Huth wrote:
>> On 28/04/2023 14.35, Pierre Morel wrote:
>>>
>>> On 4/27/23 15:38, Thomas Huth wrote:
>>>> On 25/04/2023 18.14, Pierre Morel wrote:
>>>>> The topology information are attributes of the CPU and are
>>>>> specified during the CPU device creation.
>>>>>
>>>>> On hot plug we:
>>>>> - calculate the default values for the topology for drawers,
>>>>>    books and sockets in the case they are not specified.
>>>>> - verify the CPU attributes
>>>>> - check that we have still room on the desired socket
>>>>>
>>>>> The possibility to insert a CPU in a mask is dependent on the
>>>>> number of cores allowed in a socket, a book or a drawer, the
>>>>> checking is done during the hot plug of the CPU to have an
>>>>> immediate answer.
>>>>>
>>>>> If the complete topology is not specified, the core is added
>>>>> in the physical topology based on its core ID and it gets
>>>>> defaults values for the modifier attributes.
>>>>>
>>>>> This way, starting QEMU without specifying the topology can
>>>>> still get some advantage of the CPU topology.
>>>>>
>>>>> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
>>>>> ---
>>>> ...
>>>>> diff --git a/hw/s390x/cpu-topology.c b/hw/s390x/cpu-topology.c
>>>>> new file mode 100644
>>>>> index 0000000000..471e0e7292
>>>>> --- /dev/null
>>>>> +++ b/hw/s390x/cpu-topology.c
>>>>> @@ -0,0 +1,259 @@
>>>>> +/* SPDX-License-Identifier: GPL-2.0-or-later */
>>>>> +/*
>>>>> + * CPU Topology
>>>>
>>>> Since you later introduce a file with almost the same name in the 
>>>> target/s390x/ folder, it would be fine to have some more 
>>>> explanation here what this file is all about (especially with 
>>>> regards to the other file in target/s390x/).
>>>
>>>
>>> I first did put the interceptions in target/s390/ then moved them in 
>>> target/s390x/kvm because it is KVM related then again only let STSI 
>>> interception.
>>>
>>> But to be honest I do not see any reason why not put everything in 
>>> hw/s390x/ if CPU topology is implemented for TCG I think the code 
>>> will call insert_stsi_15_1_x() too.
>>>
>>> no?
>>
>> Oh well, it's all so borderline ... whether you rather think of this 
>> as part of the CPU (like the STSI instruction) or rather part of the 
>> machine (drawers, books, ...).
>> I don't mind too much, as long as we don't have two files around with 
>> almost the same name (apart from "_" vs. "-"). So either keep the 
>> stsi part in target/s390x and use a better file name for that, or put 
>> everything together in one "cpu-topology.c" file.
>> Or what do others think about it?
>
> Would it make sense to have a target/s390x/stsi.c file with the stsi
> routines to be called from TCG insn helpers and from the KVM backend ?
> This suggestion is based on the services found in the ioinst.c file.
>
> So, target/s390x/kvm/cpu_topology.c would become target/s390x/stsi.c
> and stsi services would be moved there, if that makes sense.
>
> Or target/s390x/kvm/stsi.c to start with because services are only
> active for KVM targets.
>
>
> Looking at hw/s390x/meson.build :
>
>   s390x_ss.add(when: 'CONFIG_KVM', if_true: files(
>     'tod-kvm.c',
>     's390-skeys-kvm.c',
>     's390-stattrib-kvm.c',
>     'pv.c',
>     's390-pci-kvm.c',
>     'cpu-topology.c',
>   ))
>
> It seems cpu-topology.c should be named cpu-topology-kvm.c to follow
> the same convention.
>
> However, I don't see much reason for the KVM condition, apart from
> the new polarization definitions in machine-target.json which depend
> on KVM. cpu-topology.c could well be compiled without the KVM #ifdef,
> all seems in place to detect support at runtime.
>
> In this file, we find a s390_handle_ptf() which is called from
> kvm_handle_ptf() in target/s390x/kvm/kvm.c. Is it the right place for
> it ? Shouldn't we move the service under target/s390x/kvm/kvm.c ?
>
> Thanks,
>
> C.
>
>
Hello Cédric,

The reason to have the s390_handle_ptf() here is to be ready for TCG.

We have the choice to let the cpu-topology.c file inside the KVM list of 
meson.build until TCG provides the CPU_TOPOLOGY facility and then move 
it to the general list
or
to move it now to the general list inside meson.build and keep code that 
will only be useful when TCG provides the CPU_TOPOLOGY facility

The option taken here is to not let the code active if it is not in use.

Did I answered the question or forgot something?

Regards,

Pierre






  reply	other threads:[~2023-06-21 13:49 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-25 16:14 [PATCH v20 00/21] s390x: CPU Topology Pierre Morel
2023-04-25 16:14 ` [PATCH v20 01/21] s390x/cpu topology: add s390 specifics to CPU topology Pierre Morel
2023-04-27  8:04   ` Thomas Huth
2023-04-28 12:27     ` Pierre Morel
2023-05-03  9:36     ` Pierre Morel
2023-05-03  9:54       ` Thomas Huth
2023-05-03 11:17     ` Pierre Morel
2023-05-02 12:05   ` Cédric Le Goater
2023-05-02 13:48     ` Cédric Le Goater
2023-05-03  7:23       ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 02/21] s390x/cpu topology: add topology entries on CPU hotplug Pierre Morel
2023-04-27 13:38   ` Thomas Huth
2023-04-28 12:35     ` Pierre Morel
2023-05-03  9:12       ` Thomas Huth
2023-05-03 10:23         ` Cédric Le Goater
2023-06-21 13:48           ` Pierre Morel [this message]
2023-05-02 12:30   ` Cédric Le Goater
2023-05-03  7:21     ` Pierre Morel
2023-05-03 11:23       ` Cédric Le Goater
2023-04-25 16:14 ` [PATCH v20 03/21] target/s390x/cpu topology: handle STSI(15) and build the SYSIB Pierre Morel
2023-04-27 17:01   ` Thomas Huth
2023-04-28 12:42     ` Pierre Morel
2023-05-02 17:22   ` Nina Schoetterl-Glausch
2023-05-03  8:43     ` Pierre Morel
2023-05-03 13:01       ` Nina Schoetterl-Glausch
2023-04-25 16:14 ` [PATCH v20 04/21] s390x/sclp: reporting the maximum nested topology entries Pierre Morel
2023-04-25 16:14 ` [PATCH v20 05/21] s390x/cpu topology: resetting the Topology-Change-Report Pierre Morel
2023-04-25 16:14 ` [PATCH v20 06/21] s390x/cpu topology: interception of PTF instruction Pierre Morel
2023-05-04 11:03   ` Nina Schoetterl-Glausch
2023-05-05  9:34     ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 07/21] target/s390x/cpu topology: activate CPU topology Pierre Morel
2023-04-25 16:14 ` [PATCH v20 08/21] qapi/s390x/cpu topology: set-cpu-topology qmp command Pierre Morel
2023-05-08 19:42   ` Nina Schoetterl-Glausch
2023-05-09  8:50     ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 09/21] machine: adding s390 topology to query-cpu-fast Pierre Morel
2023-06-12  7:55   ` Cédric Le Goater
2023-06-21 12:50     ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 10/21] machine: adding s390 topology to info hotpluggable-cpus Pierre Morel
2023-05-08 19:49   ` Nina Schoetterl-Glausch
2023-05-09  8:40     ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 11/21] qapi/s390x/cpu topology: CPU_POLARIZATION_CHANGE qapi event Pierre Morel
2023-05-08 21:47   ` Nina Schoetterl-Glausch
2023-05-09 12:31     ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 12/21] qapi/s390x/cpu topology: query-cpu-polarization qmp command Pierre Morel
2023-05-10 12:04   ` Nina Schoetterl-Glausch
2023-05-12 11:56     ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 13/21] docs/s390x/cpu topology: document s390x cpu topology Pierre Morel
2023-04-25 16:14 ` [PATCH v20 14/21] tests/avocado: s390x cpu topology core Pierre Morel
2023-05-22 19:38   ` Nina Schoetterl-Glausch
2023-06-27 11:58     ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 15/21] tests/avocado: s390x cpu topology polarisation Pierre Morel
2023-05-22 19:45   ` Nina Schoetterl-Glausch
2023-06-27 13:01     ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 16/21] tests/avocado: s390x cpu topology entitlement tests Pierre Morel
2023-05-22 19:47   ` Nina Schoetterl-Glausch
2023-06-27 13:22     ` Pierre Morel
2023-04-25 16:14 ` [PATCH v20 17/21] tests/avocado: s390x cpu topology test dedicated CPU Pierre Morel
2023-04-25 16:14 ` [PATCH v20 18/21] tests/avocado: s390x cpu topology test socket full Pierre Morel
2023-04-25 16:14 ` [PATCH v20 19/21] tests/avocado: s390x cpu topology dedicated errors Pierre Morel
2023-04-25 16:14 ` [PATCH v20 20/21] tests/avocado: s390x cpu topology bad move Pierre Morel
2023-04-25 16:14 ` [PATCH v20 21/21] tests/avocado: s390x cpu topology query-cpu-polarization Pierre Morel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=faf2d79d-a993-48a2-11cc-a229d0dbc17b@linux.ibm.com \
    --to=pmorel@linux.ibm.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=clg@kaod.org \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=eblake@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mst@redhat.com \
    --cc=nrb@linux.ibm.com \
    --cc=nsg@linux.ibm.com \
    --cc=pasic@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=seiden@linux.ibm.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).