mbox series

[V2,0/8] x86/topology: Improve CPUID.1F handling

Message ID 20220816051633.17775-1-rui.zhang@intel.com (mailing list archive)
Headers show
Series x86/topology: Improve CPUID.1F handling | expand

Message

Zhang Rui Aug. 16, 2022, 5:16 a.m. UTC
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.

This patch series fixes these three problems in CPUID.1F handling code,
together with some related fixes and document updates.

thanks,
-rui

---
Changes since V1:
 - fix/improve changelog/comment wording issues
 - reorder the patches to eliminate bisection breakage window
 - add a new patch for coretemp driver variable renaming
 - update coretemp driver patch to fix a case of ida_free(&ida, -2)

Comments

Zhang Rui Sept. 20, 2022, 1:57 a.m. UTC | #1
On Tue, 2022-08-16 at 13:16 +0800, Zhang Rui 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.
> 
> This patch series fixes these three problems in CPUID.1F handling
> code,
> together with some related fixes and document updates.
> 
> 
Hi,

These patches are mainly bug fixes for ADL-N and Intel Hybrid
platforms.
May I know if there are any further changes needed?

thanks,
rui


> thanks,
> -rui
> 
> ---
> Changes since V1:
>  - fix/improve changelog/comment wording issues
>  - reorder the patches to eliminate bisection breakage window
>  - add a new patch for coretemp driver variable renaming
>  - update coretemp driver patch to fix a case of ida_free(&ida, -2)