[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZhT22tl/Iho5M+1x@gmail.com>
Date: Tue, 9 Apr 2024 10:05:46 +0200
From: Ingo Molnar <mingo@...nel.org>
To: Lei Chen <lei.chen@...rtx.com>
Cc: Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>,
Borislav Petkov <bp@...en8.de>,
Dave Hansen <dave.hansen@...ux.intel.com>, x86@...nel.org,
"H. Peter Anvin" <hpa@...or.com>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH RESEND] x86/tsc: print some log if calibrated tsc freq
deviates from original too much
* Lei Chen <lei.chen@...rtx.com> wrote:
> In most cases, tsc_khz is refined by hpet on boot. But in a few
> production-level nodes, the refinement fails because calibrated
> freq diviates from origin tsc freq more than 1%. Printing some
> logs will help get this info.
>
> Signed-off-by: Lei Chen <lei.chen@...rtx.com>
> ---
> arch/x86/kernel/tsc.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
> index 15f97c0abc9d..a68b16e72df1 100644
> --- a/arch/x86/kernel/tsc.c
> +++ b/arch/x86/kernel/tsc.c
> @@ -1435,8 +1435,15 @@ static void tsc_refine_calibration_work(struct work_struct *work)
> }
>
> /* Make sure we're within 1% */
> - if (abs(tsc_khz - freq) > tsc_khz/100)
> + if (abs(tsc_khz - freq) > tsc_khz/100) {
> + pr_warn("Warning: TSC freq calibrated by [%s]: %lu.%03lu MHz deviates too much from original freq: %lu.%03lu MHz\n",
Yeah, so it wouldn't cost us anything to more precisely define 'too much':
s/deviates too much from
/deviates by more than 1% from
Right?
> + hpet ? "HPET" : "PM_TIMER",
> + (unsigned long)freq / 1000,
> + (unsigned long)freq % 1000,
> + (unsigned long)tsc_khz / 1000,
> + (unsigned long)tsc_khz % 1000);
> goto out;
> + }
The warning makes sense I suppose, if it's one per system and once per
bootup [right?], but I think pr_info() would be plenty enough priority for
this condition - especially as we didn't have the warning before and don't
know how frequent it is?
Thanks,
Ingo
Powered by blists - more mailing lists