From: Dimitri Sivanich <sivanich@hpe.com>
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: Jiri Wiesner <jwiesner@suse.de>,
Thomas Gleixner <tglx@linutronix.de>,
Jonathan Corbet <corbet@lwn.net>, Steve Wahl <steve.wahl@hpe.com>,
Justin Ernst <justin.ernst@hpe.com>,
Kyle Meyer <kyle.meyer@hpe.com>,
Russ Anderson <russ.anderson@hpe.com>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH v3] x86/tsc: Disable clocksource watchdog for TSC on recent UV
Date: Thu, 11 Sep 2025 08:21:16 -0500 [thread overview]
Message-ID: <aMLMzPwwjmr19fRU@hpe.com> (raw)
In-Reply-To: <aKYn6I8kpxMFnVOP@hpe.com>
On Wed, Aug 20, 2025 at 02:54:16PM -0500, Dimitri Sivanich wrote:
> Disable clocksource watchdog checking on recent and future UV platforms
> to avoid false positives.
>
> Commits 'b50db7095fe0 ("x86/tsc: Disable clocksource watchdog for TSC on
> qualified platforms")' and '233756a640be ("Extend watchdog check exemption
> to 4-Sockets platform")' were introduced to avoid an issue where the TSC
> is falsely declared unstable by exempting qualified platforms of up to
> 4-sockets from TSC clocksource watchdog checking. Extend that exemption
> to include recent and future UV platforms.
>
> Signed-off-by: Dimitri Sivanich <sivanich@hpe.com>
> ---
>
> Version 3: Fixes a build error in the X86 32-bit build.
>
> Version 2: Fixes a build error that occurs when UV is not configured.
>
> arch/x86/include/asm/uv/uv.h | 3 +++
> arch/x86/include/asm/uv/uv_hub.h | 2 ++
> arch/x86/kernel/tsc.c | 3 ++-
> 3 files changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/include/asm/uv/uv.h b/arch/x86/include/asm/uv/uv.h
> index 648eb23fe7f0..f1aebdf85e68 100644
> --- a/arch/x86/include/asm/uv/uv.h
> +++ b/arch/x86/include/asm/uv/uv.h
> @@ -38,6 +38,9 @@ static inline int is_uv_system(void) { return 0; }
> static inline int is_uv_hubbed(int uv) { return 0; }
> static inline void uv_cpu_init(void) { }
> static inline void uv_system_init(void) { }
> +static inline int is_uvx_hub(void) { return 0; }
> +static inline int is_uvy_hub(void) { return 0; }
> +static inline int is_uv_hub(void) { return 0; }
>
> #endif /* X86_UV */
>
> diff --git a/arch/x86/include/asm/uv/uv_hub.h b/arch/x86/include/asm/uv/uv_hub.h
> index ea877fd83114..6e085ce8fc02 100644
> --- a/arch/x86/include/asm/uv/uv_hub.h
> +++ b/arch/x86/include/asm/uv/uv_hub.h
> @@ -246,6 +246,7 @@ static inline int is_uv5_hub(void) { return is_uv(UV5); }
> * then test if is UV4.
> */
>
> +#ifdef CONFIG_X86_UV
> /* UVX class: UV2,3,4 */
> static inline int is_uvx_hub(void) { return is_uv(UVX); }
>
> @@ -254,6 +255,7 @@ static inline int is_uvy_hub(void) { return is_uv(UVY); }
>
> /* Any UV Hubbed System */
> static inline int is_uv_hub(void) { return is_uv(UV_ANY); }
> +#endif
>
> union uvh_apicid {
> unsigned long v;
> diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
> index 87e749106dda..a9f97d423ab0 100644
> --- a/arch/x86/kernel/tsc.c
> +++ b/arch/x86/kernel/tsc.c
> @@ -32,6 +32,7 @@
> #include <asm/msr.h>
> #include <asm/topology.h>
> #include <asm/uv/uv.h>
> +#include <asm/uv/uv_hub.h>
> #include <asm/sev.h>
>
> unsigned int __read_mostly cpu_khz; /* TSC clocks / usec, not used here */
> @@ -1261,7 +1262,7 @@ static void __init check_system_tsc_reliable(void)
> if (boot_cpu_has(X86_FEATURE_CONSTANT_TSC) &&
> boot_cpu_has(X86_FEATURE_NONSTOP_TSC) &&
> boot_cpu_has(X86_FEATURE_TSC_ADJUST) &&
> - topology_max_packages() <= 4)
> + (topology_max_packages() <= 4 || is_uvy_hub()))
> tsc_disable_clocksource_watchdog();
> }
>
> --
> 2.43.0
Just a friendly reminder about this patch.
next prev parent reply other threads:[~2025-09-11 13:22 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-20 19:54 [PATCH v3] x86/tsc: Disable clocksource watchdog for TSC on recent UV Dimitri Sivanich
2025-09-11 13:21 ` Dimitri Sivanich [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-10-07 16:32 Dimitri Sivanich
2025-10-07 16:48 ` Dave Hansen
2025-10-07 17:42 ` Dimitri Sivanich
2026-05-14 7:53 ` Jiri Wiesner
2026-05-19 20:03 ` Dimitri Sivanich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aMLMzPwwjmr19fRU@hpe.com \
--to=sivanich@hpe.com \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=justin.ernst@hpe.com \
--cc=jwiesner@suse.de \
--cc=kyle.meyer@hpe.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=russ.anderson@hpe.com \
--cc=steve.wahl@hpe.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.