[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC 42/52] hw/machine: Add hybrid_supported in generic topo propert
From: |
Zhao Liu |
Subject: |
Re: [RFC 42/52] hw/machine: Add hybrid_supported in generic topo properties |
Date: |
Fri, 17 Feb 2023 11:28:28 +0800 |
On Thu, Feb 16, 2023 at 08:28:37PM +0800, wangyanan (Y) wrote:
> Date: Thu, 16 Feb 2023 20:28:37 +0800
> From: "wangyanan (Y)" <wangyanan55@huawei.com>
> Subject: Re: [RFC 42/52] hw/machine: Add hybrid_supported in generic topo
> properties
>
> 在 2023/2/15 10:53, Zhao Liu 写道:
> > On Tue, Feb 14, 2023 at 09:46:50AM +0800, wangyanan (Y) wrote:
> > > Date: Tue, 14 Feb 2023 09:46:50 +0800
> > > From: "wangyanan (Y)" <wangyanan55@huawei.com>
> > > Subject: Re: [RFC 42/52] hw/machine: Add hybrid_supported in generic topo
> > > properties
> > >
> > > Hi Zhao,
> > >
> > > 在 2023/2/13 17:50, Zhao Liu 写道:
> > > > From: Zhao Liu <zhao1.liu@intel.com>
> > > >
> > > > Since hybrid cpu topology configuration can benefit not only x86, but
> > > > also other architectures/platforms that have supported (in real
> > > > machines) or will support hybrid CPU topology, "-hybrid" can be generic.
> > > >
> > > > So add the generic topology property to configure if support hybrid
> > > > cpu topology for architectures/platforms in SmpCompatProps.
> > > >
> > > > Also rename SmpCompatProps to TopoCompatProps to make this structure
> > > > more generic for both smp topology and hybrid topology.
> > > >
> > > > Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
> > > > ---
> > > > include/hw/boards.h | 15 +++++++++++----
> > > > 1 file changed, 11 insertions(+), 4 deletions(-)
> > > >
> > > > diff --git a/include/hw/boards.h b/include/hw/boards.h
> > > > index 34ec035b5c9f..17be3485e823 100644
> > > > --- a/include/hw/boards.h
> > > > +++ b/include/hw/boards.h
> > > > @@ -127,19 +127,26 @@ typedef struct {
> > > > } CPUArchIdList;
> > > > /**
> > > > - * SMPCompatProps:
> > > > - * @prefer_sockets - whether sockets are preferred over cores in smp
> > > > parsing
> > > > + * TopoCompatProps:
> > > > + * @hybrid_support - whether hybrid cpu topology are supported by
> > > > machine.
> > > inconsistent with the name in the definition below.
> > Thanks! Will fix.
> >
> > > > + * Note that hybrid cpu topology requires to specify
> > > > the
> > > > + * topology of each core so that there will no
> > > > longer be
> > > > + * a default core topology, thus prefer_sockets
> > > > won't work
> > > > + * when hybrid_support is enabled.
> > > > + * @prefer_sockets - whether sockets are preferred over cores in smp
> > > > parsing.
> > > > + * Not work when hybrid_support is enabled.
> > > > * @dies_supported - whether dies are supported by the machine
> > > > * @clusters_supported - whether clusters are supported by the
> > > > machine
> > > > * @has_clusters - whether clusters are explicitly specified in the
> > > > user
> > > > * provided SMP configuration
> > > > */
> > > > typedef struct {
> > > > + bool hybrid_supported;
> > > > bool prefer_sockets;
> > > > bool dies_supported;
> > > > bool clusters_supported;
> > > > bool has_clusters;
> > > > -} SMPCompatProps;
> > > > +} TopoCompatProps;
> > > Also here. "Rename SMPCompatProps to TopoCompatProps and
> > > move it to cpu-topology.h and adapt the code" should be organized
> > > in one or more separate patches, being pre-patches together with
> > > the conversion of CpuTopology before.
> > Do you think TopoCompatProps/SMPCompatProps should also be moved
> > into cpu-topology.h? It seems that SMPCompatProps is a collection
> > of properties of MachineClass.
> TopoCompatProps holds properties all about CPU topology, I think we
> can do this, cpu-topology.h will be included in boards.h any way. But it's
> ups to you whether to do this.😉
Yeah, it makes sense to manage all topologically related.
So I will, thanks!
>
> Thanks,
> Yanan
> > > And put the "hybrid_supported"
> > > extension into another patch. Would this make it easier to review?
> > Yes, I agree. Thanks!
> >
> > Zhao
> >
> > > Thanks,
> > > Yanan
> > > > /**
> > > > * MachineClass:
> > > > @@ -281,7 +288,7 @@ struct MachineClass {
> > > > bool nvdimm_supported;
> > > > bool numa_mem_supported;
> > > > bool auto_enable_numa;
> > > > - SMPCompatProps smp_props;
> > > > + TopoCompatProps smp_props;
> > > > const char *default_ram_id;
> > > > HotplugHandler *(*get_hotplug_handler)(MachineState *machine,
>
- Re: [RFC 41/52] machine: Introduce core_type() hook, (continued)
[RFC 40/52] qapi: Introduce hybrid options, Zhao Liu, 2023/02/13
[RFC 39/52] i386/cpu: Add Intel hybrid related CPUID support, Zhao Liu, 2023/02/13
[RFC 43/52] hw/machine: Rename MachineClass.smp_props to MachineClass.topo_props, Zhao Liu, 2023/02/13
[RFC 44/52] machine: Add "-hybrid" parsing rule, Zhao Liu, 2023/02/13
[RFC 45/52] hw/machine: Add hybrid cpu topology validation, Zhao Liu, 2023/02/13
[RFC 47/52] hw/machine: Use opts_visitor to parse hybrid topo, Zhao Liu, 2023/02/13
[RFC 46/52] hw/machine: build core level hybrid topology form HybridCorePack, Zhao Liu, 2023/02/13
[RFC 48/52] machine: Support "-hybrid" command, Zhao Liu, 2023/02/13
[RFC 49/52] i386/pc: Support hybrid cpu topology, Zhao Liu, 2023/02/13
[RFC 50/52] qemu-options: Add the document of hybrid command, Zhao Liu, 2023/02/13