On 03/07/2018 05:51 PM, Boris Ostrovsky wrote:
> 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"?
Yeah, probably clearer to use that.
>> 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.
OK, I'll respin with exporting this from drivers/acpi. FWIW I copied solely for
backportability purposes provided that hardware with SW_ANY or SW_ALL and
current stable kernels is a little broken.