Re: [RFC PATCH v3 09/13] x86/cpu/topology: Initialize sbm topology after topology parsing

From: K Prateek Nayak

Date: Sun Oct 04 2026 - 02:17:19 EST


Hello Chenyu,

On 10/3/2026 1:57 PM, Chen Yu wrote:
> Hello Prateek,
>
> On Thu, Oct 01, 2026 at 07:28:45PM +0000, K Prateek Nayak wrote:
>
> [ snip ]
>
>> +static __init void init_sbm_topology(u32 max_apicid)
>> +{
>> + u32 sbm_shift = x86_topo_system.dom_shifts[TOPO_DIE_DOMAIN] - 1;
>
> As sashiko reported, and also mentioned here:
> https://lore.kernel.org/lkml/20260510155920.2587431-2-yu.c.chen@xxxxxxxxx/
> Maybe x86_topo_system.dom_shifts[TOPO_DIE_DOMAIN - 1] ?

Ack!

I was testing this on a 2CCX (TILE) = 1 CCD (DIE) machine and I
failed to notice my mistake since:

x86_topo_system.dom_shifts[TOPO_DIE_DOMAIN] - 1

and

x86_topo_system.dom_shifts[TOPO_DIE_DOMAIN] - 1

were the same.

>
>> + int num_sbm_instances, max_threads_per_instance;
>> +
>> + /*
>> + * On Intel systems, memory controllers are present at TOPO_DIE_DOMAIN.
>> + * On newer AMD and Hygon systems, LLC is at TOPO_TILE_DOMAIN so use
>> + * that instead.
>> + */
>> + if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
>> + boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)
>> + sbm_shift = x86_topo_system.dom_shifts[TOPO_TILE_DOMAIN] - 1;
>
> Ditto.

Thank you! Will make sure I pull a VM with weird topology next time
during my testing to see if everything is correct.

--
Thanks and Regards,
Prateek