Re: [PATCH 3/3] intel_pstate: add module and kernel command line parameter to ignore ACPI _PPC

From: Kristen Carlson Accardi
Date: Wed Nov 19 2014 - 14:05:57 EST


On Tue, 18 Nov 2014 17:37:06 +0900
Ethan Zhao <ethan.zhao@xxxxxxxxxx> wrote:

> Add kernel command line parameter
> intel_pstate = ignore_acpi_ppc
> and module parameter
> ignore_acpi_ppc = 1
> to allow driver to ignore the ACPI _PPC existence even for Sun x86 servers.
> These parameter could be used for debug\test\workaround etc purpose.
>
> Signed-off-by: Ethan Zhao <ethan.zhao@xxxxxxxxxx>

What if we used a more generic parameter like "force" that would bypass
any vendor specific checks and just load anyway? This way we don't have
to add new parameters everything some new thing shows up that we want to
ignore.

> ---
> Documentation/kernel-parameters.txt | 3 +++
> drivers/cpufreq/intel_pstate.c | 8 +++++++-
> 2 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index 4c81a86..f502b85 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -1446,6 +1446,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> disable
> Do not enable intel_pstate as the default
> scaling driver for the supported processors
> + ignore_acpi_ppc
> + Ignore the existence of ACPI method _PPC for Sun x86 servers
> + and load the driver.
>
> intremap= [X86-64, Intel-IOMMU]
> on enable Interrupt Remapping (default)
> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
> index 7c5faea..388387b 100644
> --- a/drivers/cpufreq/intel_pstate.c
> +++ b/drivers/cpufreq/intel_pstate.c
> @@ -870,6 +870,7 @@ static struct cpufreq_driver intel_pstate_driver = {
> };
>
> static int __initdata no_load;
> +static unsigned int ignore_acpi_ppc;
>
> static int intel_pstate_msrs_not_valid(void)
> {
> @@ -990,7 +991,7 @@ static bool intel_pstate_platform_pwr_mgmt_exists(void)
> intel_pstate_no_acpi_pss())
> return true;
> if (!strncmp(hdr.oem_id, v_info->oem_id, ACPI_OEM_ID_SIZE) &&
> - intel_pstate_has_acpi_ppc())
> + intel_pstate_has_acpi_ppc() && !ignore_acpi_ppc)
> return true;
> }
>
> @@ -1066,11 +1067,16 @@ static int __init intel_pstate_setup(char *str)
>
> if (!strcmp(str, "disable"))
> no_load = 1;
> + if (!strcmp(str, "ignore_acpi_ppc"))
> + ignore_acpi_ppc = 1;
> return 0;
> }
> early_param("intel_pstate", intel_pstate_setup);
> #endif
>
> +module_param(ignore_acpi_ppc, uint, 0644);
> +MODULE_PARM_DESC(ignore_acpi_ppc,
> + "value 0 or non-zero. non-zero -> ignore ACPI _PPC and load this driver");
> MODULE_AUTHOR("Dirk Brandewie <dirk.j.brandewie@xxxxxxxxx>");
> MODULE_DESCRIPTION("'intel_pstate' - P state driver Intel Core processors");
> MODULE_LICENSE("GPL");

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/