Skip to content

cleanup cpu info management from Linux /proc/cpuinfo #681

@bgoglin

Description

@bgoglin

We setup an array of info attributes per PU by reading processor blocks in /proc/cpuinfo.

On x86, /proc/cpuinfo is homogeneous, even on hybrid CPUs: we get the CPU Model, and use the one of the first core of each package to add info attr in the package. Info about (hybrid) core types in obtained somewhere else and added to cpukinds.

On ARM, /proc/cpuinfo reports heterogeneous core information. However most current hybrid CPUs expose one (fake) package per set of homogeneous cores, hence each "package" gets the correct info from its first core. When ARM platforms will correclty expose a single heterogeneous package, our info attr will become homogeneous and wrong.

We could factorize the array of identical info to attach it to the right object. Not clear what object that would be on those future ARM platforms. Maybe cluster(s)?
We could also put them in each individual PU or Cores but that's a lot of duplication, moving it to cpukinds looks better?
Or cpukinds if hybrid, package (or any group of cores) if not hybrid or if it matches homogeneity sets?
Anyway we'll need to clearly document where to find this info.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions