···44 * policy preference bias on recent X86 processors.55 */66/*77- * Copyright (c) 2010 - 2017 Intel Corporation.77+ * Copyright (c) 2010 - 2025 Intel Corporation.88 * Len Brown <len.brown@intel.com>99 */1010···517517518518void print_version(void)519519{520520- printf("x86_energy_perf_policy 17.05.11 (C) Len Brown <len.brown@intel.com>\n");520520+ printf("x86_energy_perf_policy 2025.9.19 Len Brown <lenb@kernel.org>\n");521521}522522523523void cmdline(int argc, char **argv)···13121312 if (CPU_ISSET_S(cpu_num, set_size, cpu_set))13131313 func(cpu_num);13141314}13151315+int for_all_cpus_in_set_and(size_t set_size, cpu_set_t *cpu_set, int (func)(int))13161316+{13171317+ int cpu_num;13181318+ int retval = 1;13191319+13201320+ for (cpu_num = 0; cpu_num <= max_cpu_num; ++cpu_num)13211321+ if (CPU_ISSET_S(cpu_num, set_size, cpu_set))13221322+ retval &= func(cpu_num);13231323+13241324+ return retval;13251325+}1315132613161327void init_data_structures(void)13171328{···13371326 for_all_proc_cpus(mark_cpu_present);13381327}1339132813401340-/* clear has_hwp if it is not enable (or being enabled) */13411341-13421342-void verify_hwp_is_enabled(void)13291329+int is_hwp_enabled_on_cpu(int cpu_num)13431330{13441331 unsigned long long msr;13321332+ int retval;13331333+13341334+ /* MSR_PM_ENABLE[1] == 1 if HWP is enabled and MSRs visible */13351335+ get_msr(cpu_num, MSR_PM_ENABLE, &msr);13361336+ retval = (msr & 1);13371337+13381338+ if (verbose)13391339+ fprintf(stderr, "cpu%d: %sHWP\n", cpu_num, retval ? "" : "No-");13401340+13411341+ return retval;13421342+}13431343+13441344+/*13451345+ * verify_hwp_is_enabled()13461346+ *13471347+ * Set (has_hwp=0) if no HWP feature or any of selected CPU set does not have HWP enabled13481348+ */13491349+void verify_hwp_is_enabled(void)13501350+{13511351+ int retval;1345135213461353 if (!has_hwp) /* set in early_cpuid() */13471354 return;1348135513491349- /* MSR_PM_ENABLE[1] == 1 if HWP is enabled and MSRs visible */13501350- get_msr(base_cpu, MSR_PM_ENABLE, &msr);13511351- if ((msr & 1) == 0) {13561356+ retval = for_all_cpus_in_set_and(cpu_setsize, cpu_selected_set, is_hwp_enabled_on_cpu);13571357+13581358+ if (retval == 0) {13521359 fprintf(stderr, "HWP can be enabled using '--hwp-enable'\n");13531360 has_hwp = 0;13541354- return;13551361 }13561362}13571363