* Zhang Rui <rui.zhang@xxxxxxxxx> wrote: > On Intel AlderLake-N platforms where there are Ecores only, the Ecore > Module topology is enumerated via CPUID.1F Module level, which has not > been supported by Linux kernel yet. > > This exposes two issues in current CPUID.1F handling code. > 1. Linux interprets the Module id bits as package id and erroneously > reports a multi module system as a multi-package system. > 2. Linux excludes the unknown Module id bits from the core_id, and results > in duplicate core_id’s shown in a package after the first issue solved. > > Plus that, a third problem is observed on Intel Hybrid ADL-S/P platforms. > The return value of CPUID.1F SMT level EBX (number of siblings) differs on > Pcore CPUs and Ecore CPUs, and results in inconsistent smp_num_siblings > value based on the Pcore/Ecore CPU enumeration order. This could bring > some potential issues although we have not observed any functionalities > issues so far. > > Patch 1/7 and 2/7 fix the first two issues. And at the same time, it > reveals a reality that the core_id could be sparse on platforms with > CPUID.1F support. > Patch 3/7 improves coretemp driver code to be able to handle sparse core > id, which is the only driver that uses core_id as array index and run on > platforms with CPUID.1F support. > > Patch 4/7 to 7/7 propose a fix for the third problem and update the > related Documents. Yeah, so patch 3/7 probably needs to come first - otherwise there's a window for bisection breakage. Thanks, Ingo