[PATCH v5 3/4] arm64: topology: Support SMT control on ACPI based system

Morten Rasmussen morten.rasmussen at arm.com
Fri Sep 6 17:06:33 AEST 2024


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


More information about the Linuxppc-dev mailing list