[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Ztqp-SUinu8C9a-P@R5WKVNH4JW>
Date: Fri, 6 Sep 2024 09:06:33 +0200
From: Morten Rasmussen <morten.rasmussen@....com>
To: Yicong Yang <yangyicong@...wei.com>
Cc: Pierre Gondois <pierre.gondois@....com>, yangyicong@...ilicon.com,
linuxppc-dev@...ts.ozlabs.org, bp@...en8.de,
dave.hansen@...ux.intel.com, mingo@...hat.com,
linux-arm-kernel@...ts.infradead.org, mpe@...erman.id.au,
peterz@...radead.org, tglx@...utronix.de, sudeep.holla@....com,
will@...nel.org, catalin.marinas@....com, x86@...nel.org,
linux-kernel@...r.kernel.org, dietmar.eggemann@....com,
gregkh@...uxfoundation.org, rafael@...nel.org,
jonathan.cameron@...wei.com, prime.zeng@...ilicon.com,
linuxarm@...wei.com, xuwei5@...wei.com, guohanjun@...wei.com
Subject: Re: [PATCH v5 3/4] arm64: topology: Support SMT control on ACPI
based system
Hi Yicong,
On Thu, Sep 05, 2024 at 08:02:20PM +0800, Yicong Yang wrote:
> On 2024/9/5 16:34, Pierre Gondois wrote:
> > Hello Yicong,
> >
> > If a platform has CPUs with:
> > - 1 thread
> > - X (!= 1) threads
> > Then I think that the asymmetry is not detected
>
> Ah ok, I only handle the case where there are several thread numbers except no SMT CPUs in the
> system. For this case I was thinking we don't need to handle this since there's only one kind
> of SMT core in the system, control should works fine for the SMT CPU clusters and we may not
> care about the CPUs with no SMT.
>
> Below code should handle the case if we initialize the max_smt_thread_num to 0. I also
> reword the warning messages to match the fact. For heterogeneous SMT topology we still
> support control SMT by on/off toggle but not fully support setting the thread number.
>
> int max_smt_thread_num = 0;
> [...]
> /*
> * This should be a short loop depending on the number of heterogeneous
> * CPU clusters. Typically on a homogeneous system there's only one
> * entry in the XArray.
> */
> xa_for_each(&hetero_cpu, hetero_id, entry) {
> /*
> * If max_smt_thread_num has been initialized and doesn't match
> * the thread number of this entry, then the system has
> * heterogeneous SMT topology.
> */
> if (entry->thread_num != max_smt_thread_num && max_smt_thread_num)
> pr_warn_once("Heterogeneous SMT topology is partly supported by SMT control\n");
What does 'partly supported' mean here?
If the SMT control doesn't work as intended for this topology, I don't
think it should be enabled for it.
Morten
Powered by blists - more mailing lists