mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: patrickg <patrickg@supermicro.com>
To: Arjan van de Ven <arjan@linux.intel.com>, <len.brown@intel.com>,
	<linux-kernel@vger.kernel.org>
Cc: <mingo@kernel.org>, <alek.du@intel.com>, <feng.tang@intel.com>
Subject: Re: [RFC] x86, tsc: Add kcmdline args for skipping tsc calibration sequences
Date: Fri, 13 Jul 2018 12:54:48 -0700	[thread overview]
Message-ID: <3987740c-44b4-72fa-3b3e-ebccecc32b00@supermicro.com> (raw)
In-Reply-To: <9cdcf3bb-4d01-19cc-536f-4745ecb058c6@linux.intel.com>



On 07/13/2018 12:40 PM, Arjan van de Ven wrote:
> On 7/13/2018 12:19 PM, patrickg wrote:
>> This RFC patch is intended to allow bypass CPUID, MSR and QuickPIT calibration methods should the user desire to.
>>
>> The current ordering in ML x86 tsc is to calibrate in the order listed above; returning whenever there's a successful calibration.  However there are certain BIOS/HW Designs for overclocking that cause the TSC to change along with the max core clock; and simple 'trusting' calibration methodologies will lead to the TSC running 'faster' and eventually, TSC instability.
>>
> 
> 
> that would be a real violation of the contract between cpu and OS: tsc is not supposed to change for the duration of the boot
With the methodology used; the TSC is still invariant; it's just running faster than the CPUID math calculates.

> 
>> I only know that there's a use-case for me to want to be able to skip CPUID calibration, however I included args for skipping all the rest just so that all functionality is covered in the long run instead of just one use-case.
> 
> wouldn't it be better to start the detailed calibration with the value from CPUID instead; that way we also properly calibrate spread spectrum etc...
> 
> I thought we switched to that recently to be honest...
Are you referencing:

1bf8915ae5156dff439d2c65314bd8fdde1b83bf - x86/tsc: Enumerate SKL cpu_khz and tsc_khz via CPUID

However since it's returning at CPUID calibration during native_calibrate_cpu(); it's not compared after-the-fact, leading to the TSC to use the 'slower' number returned by CPUID.

Now keep in mind; I dunno if there was any reason to explicitly not want to utilize the PIT calib sequences on SKL.  That'd be a factor for this.

Would comparing the number after the fact; then if there's a significant difference between PIT and MSR/CPUID, defaulting to the 'faster' value be a better solution?

  parent reply	other threads:[~2018-07-13 19:54 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-13 19:19 patrickg
2018-07-13 19:40 ` Arjan van de Ven
2018-07-13 19:54   ` patrickg
2018-07-13 19:54   ` patrickg [this message]
2018-07-14  2:40 ` Brown, Len
2018-07-20 22:27   ` patrickg
2018-07-24 19:45     ` patrickg
2018-07-26 19:21       ` patrickg
2018-08-16 17:28         ` patrickg
2018-10-25 17:12           ` patrickg
2018-10-25 18:01             ` Prarit Bhargava
2018-10-25 19:13               ` patrickg
2018-12-03 19:37                 ` Patrick Geary

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=3987740c-44b4-72fa-3b3e-ebccecc32b00@supermicro.com \
    --to=patrickg@supermicro.com \
    --cc=alek.du@intel.com \
    --cc=arjan@linux.intel.com \
    --cc=feng.tang@intel.com \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®