On Tue, Oct 22, 2024 at 11:13:00AM -0500, Mario Limonciello wrote: > > This makes me feel a _bit_ uneasy. 0x20 here really does mean "Atom > > microarchitecture" and 0x40 means "Core microarchitecture". > > > > We want to encourage folks to use this new ABI when they want to find > > the fastest core to run on. But we don't want them to use it to bind to > > a CPU and then deploy Atom-specific optimizations. > > > > We *also* don't want the in-kernel code to do be doing things like: > > > > if (get_intel_cpu_type() == TOPO_CPU_TYPE_EFFICIENCY) > > setup_force_cpu_bug(FOO); > > > > That would fall over if Intel ever mixed fast and slow core types with > > the same microarchitecture, which is what AMD is doing today. > > > > Having: > > > > TOPO_CPU_TYPE_EFFICIENCY, and > > TOPO_CPU_TYPE_PERFORMANCE > > > > is totally fine in generic code. But we also need to preserve the: > > > > TOPO_HW_CPU_TYPE_INTEL_ATOM > > TOPO_HW_CPU_TYPE_INTEL_CORE > > > > values also for use in vendor-specific code. > > What you're suggesting is to keep an enum in the intel.c code and any code > that needs to match atom vs core can directly use > > c->topo.intel_type == TOPO_HW_CPU_TYPE_INTEL_ATOM To be able to match ATOM and CORE in the affected processor table, the enums need to be defined in a way that they can be used in the common code. Specially for !CONFIG_CPU_SUP_INTEL case.