• Konrad Rzeszutek Wilk's avatar
    acpi: Export the acpi_processor_get_performance_info · c705c78c
    Konrad Rzeszutek Wilk authored
    The git commit d5aaffa9
    (cpufreq: handle cpufreq being disabled for all exported function)
    tightens the cpufreq API by returning errors when disable_cpufreq()
    had been called.
    
    The problem we are hitting is that the module xen-acpi-processor which
    uses the ACPI's functions: acpi_processor_register_performance,
    acpi_processor_preregister_performance, and acpi_processor_notify_smm
    fails at acpi_processor_register_performance with -22.
    
    Note that earlier during bootup in arch/x86/xen/setup.c there is also
    an call to cpufreq's API: disable_cpufreq().
    
    This is b/c we want the Linux kernel to parse the ACPI data, but leave
    the cpufreq decisions to the hypervisor.
    
    In v3.9 all the checks that d5aaffa9
    added are now hit and the calls to cpufreq_register_notifier will now
    fail. This means that acpi_processor_ppc_init ends up printing:
    
    "Warning: Processor Platform Limit not supported"
    
    and the acpi_processor_ppc_status is not set.
    
    The repercussions of that is that the call to
    acpi_processor_register_performance fails right away at:
    
    	if (!(acpi_processor_ppc_status & PPC_REGISTERED))
    
    and we don't progress any further on parsing and extracting the _P*
    objects.
    
    The only reason the Xen code called that function was b/c it was
    exported and the only way to gather the P-states. But we can also
    just make acpi_processor_get_performance_info be exported and not
    use acpi_processor_register_performance. This patch does so.
    Acked-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    c705c78c
xen-acpi-processor.c 16.4 KB