On 03/06/2018 03:12 PM, Joao Martins wrote:
> All uploaded PM data from offline CPUs takes the info from vCPU 0 and
"offline" may not be the right term here. Maybe "non-dom0"?
> changing only the acpi_id. For processors which P-state coordination type
> is HW_ALL (0xFD) it is OK to upload bogus P-state dependency information
> (_PSD), because Xen will ignore cpufreq domains existence.
> Albeit for hardware exposing Px coordination types as SW_ANY or SW_ALL,
> this will have some unintended side effects. Effectively, it will look at
> the P-state domain existence and *if it already exists* it will skip the
> acpi-cpufreq initialization and thus inherit the policy from the first CPU
> in the cpufreq domain. This will finally lead to the original cpu not
> changing target freq to P0 other than the first in the domain. Which will
> make turbo boost not getting enabled (e.g. for 'performance' governor) for
> all cpus.
> This patch fixes that, by also evaluating _PSD when enumerating all ACPI
> procesors (online and offline) and always uploading the correct P-State
> dependency up to Xen.
> Signed-off-by: Joao Martins <joao.m.mart...@oracle.com>
> xen_processor_get_psd() is taken from acpi_processor_get_psd()
> (drivers/acpi/processor_perflib.c) simply because only Xen Dom0 needs
> to handle vcpus != pcpus. If preferred I could try exporting that API
> instead and use it here.
I think this would be a preferable approach.
Xen-devel mailing list