lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAJZ5v0hCqV+=05ojjzvymwC5Z97WccbihCwXT22_my0TRJiWoA@mail.gmail.com>
Date: Wed, 26 Feb 2025 11:24:18 +0100
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Fab Stz <fabstz-it@...oo.fr>, John Stultz <jstultz@...gle.com>, 
	Daniel Lezcano <daniel.lezcano@...aro.org>, Anna-Maria Behnsen <anna-maria@...utronix.de>, 
	Frederic Weisbecker <frederic@...nel.org>, linux-kernel@...r.kernel.org, 
	linux-pm@...r.kernel.org, Jacob Pan <jacob.jun.pan@...ux.intel.com>, 
	Len Brown <lenb@...nel.org>, "Rafael J. Wysocki" <rafael@...nel.org>
Subject: Re: [PATCH] intel_idle: Handle older CPUs, which stop the TSC in
 deeper C states, correctly

On Tue, Feb 25, 2025 at 11:37 PM Thomas Gleixner <tglx@...utronix.de> wrote:
>
> The Intel idle driver is preferred over the ACPI processor idle driver,
> but fails to implement the work around for Core2 generation CPUs, where
> the TSC stops in C2 and deeper C-states. This causes stalls and boot
> delays, when the clocksource watchdog does not catch the unstable TSC
> before the CPU goes deep idle for the first time.
>
> The ACPI driver marks the TSC unstable when it detects that the CPU
> supports C2 or deeper and the CPU does not have a non-stop TSC.
>
> Add the equivivalent work around to the Intel idle driver to cure that.
>
> Fixes: 18734958e9bf ("intel_idle: Use ACPI _CST for processor models without C-state tables")
> Reported-by: Fab Stz <fabstz-it@...oo.fr>
> Signed-off-by: Thomas Gleixner <tglx@...utronix.de>
> Tested-by: Fab Stz <fabstz-it@...oo.fr>
> Cc: stable@...r.kernel.org
> Closes: https://lore.kernel.org/all/10cf96aa-1276-4bd4-8966-c890377030c3@yahoo.fr
> ---
>  drivers/idle/intel_idle.c |    4 ++++
>  1 file changed, 4 insertions(+)
>
> --- a/drivers/idle/intel_idle.c
> +++ b/drivers/idle/intel_idle.c
> @@ -56,6 +56,7 @@
>  #include <asm/intel-family.h>
>  #include <asm/mwait.h>
>  #include <asm/spec-ctrl.h>
> +#include <asm/tsc.h>
>  #include <asm/fpu/api.h>
>
>  #define INTEL_IDLE_VERSION "0.5.1"
> @@ -1799,6 +1800,9 @@ static void __init intel_idle_init_cstat
>                 if (intel_idle_state_needs_timer_stop(state))
>                         state->flags |= CPUIDLE_FLAG_TIMER_STOP;
>
> +               if (cx->type > ACPI_STATE_C1 && !boot_cpu_has(X86_FEATURE_NONSTOP_TSC))
> +                       mark_tsc_unstable("TSC halts in idle");
> +
>                 state->enter = intel_idle;
>                 state->enter_s2idle = intel_idle_s2idle;
>         }

Applied as a fix for 6.14-rc5, thank you!

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ