[Intel-gfx] [PATCH] Core-for-CI:ICL_only Disable ACPI idle driver

Saarinen, Jani jani.saarinen at intel.com
Mon Apr 8 13:08:38 UTC 2019


+ Rafael, Mika. 

> -----Original Message-----
> From: Intel-gfx [mailto:intel-gfx-bounces at lists.freedesktop.org] On Behalf Of
> Anshuman Gupta
> Sent: maanantai 8. huhtikuuta 2019 15.22
> To: intel-gfx at lists.freedesktop.org
> Cc: Peres, Martin <martin.peres at intel.com>; Vetter, Daniel
> <daniel.vetter at intel.com>
> Subject: [Intel-gfx] [PATCH] Core-for-CI:ICL_only Disable ACPI idle driver
> 
> There were system hung observed while running i915_pm_rpm test.
> FDO https://bugs.freedesktop.org/show_bug.cgi?id=108840
> Root cause is believed to due to page fault in ACPI idle (FDO comment 18) driver, it
> has been suggested by Daniel to disable ACPI idle driver for CI system, this patch only
> meant for ICL.
> 
> Cc: martin.peres at intel.com
> Cc: daniel.vetter at intel.com
> 
> Signed-off-by: Anshuman Gupta <anshuman.gupta at intel.com>
> ---
>  drivers/acpi/processor_driver.c | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c index
> 9d6aff2..6e3ef2d 100644
> --- a/drivers/acpi/processor_driver.c
> +++ b/drivers/acpi/processor_driver.c
> @@ -35,6 +35,9 @@
> 
>  #include <acpi/processor.h>
> 
> +#include <asm/cpu_device_id.h>
> +#include <asm/intel-family.h>
> +
>  #include "internal.h"
> 
>  #define ACPI_PROCESSOR_NOTIFY_PERFORMANCE 0x80 @@ -58,6 +61,13 @@
> static const struct acpi_device_id processor_device_ids[] = {  };
> MODULE_DEVICE_TABLE(acpi, processor_device_ids);
> 
> +#define ICPU(model)	{ X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, }
> +static const struct x86_cpu_id intel_cpu_ids[] = {
> +	ICPU(INTEL_FAM6_ICELAKE_MOBILE),	/* ICL */
> +	{}
> +};
> +MODULE_DEVICE_TABLE(x86cpu, intel_pmc_core_ids);
> +
>  static struct device_driver acpi_processor_driver = {
>  	.name = "processor",
>  	.bus = &cpu_subsys,
> @@ -226,6 +236,7 @@ static inline void acpi_pss_perf_exit(struct acpi_processor
> *pr,  static int __acpi_processor_start(struct acpi_device *device)  {
>  	struct acpi_processor *pr = acpi_driver_data(device);
> +	const struct x86_cpu_id *id;
>  	acpi_status status;
>  	int result = 0;
> 
> @@ -239,7 +250,9 @@ static int __acpi_processor_start(struct acpi_device *device)
>  	if (result && !IS_ENABLED(CONFIG_ACPI_CPU_FREQ_PSS))
>  		dev_dbg(&device->dev, "CPPC data invalid or not present\n");
> 
> -	if (!cpuidle_get_driver() || cpuidle_get_driver() == &acpi_idle_driver)
> +	id = x86_match_cpu(intel_cpu_ids);
> +	if (!id && (!cpuidle_get_driver() || cpuidle_get_driver() ==
> +		&acpi_idle_driver))
>  		acpi_processor_power_init(pr);
> 
>  	result = acpi_pss_perf_init(pr, device);
> --
> 2.7.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list