[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