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

Reply via email to