From: Pavel Tatashin <pasha.tatashin@oracle.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: peterz@infradead.org, Steven Sistare <steven.sistare@oracle.com>,
Daniel Jordan <daniel.m.jordan@oracle.com>,
linux@armlinux.org.uk, schwidefsky@de.ibm.com,
Heiko Carstens <heiko.carstens@de.ibm.com>,
John Stultz <john.stultz@linaro.org>,
sboyd@codeaurora.org, x86@kernel.org,
LKML <linux-kernel@vger.kernel.org>,
mingo@redhat.com, hpa@zytor.com, douly.fnst@cn.fujitsu.com,
prarit@redhat.com, feng.tang@intel.com,
Petr Mladek <pmladek@suse.com>,
gnomes@lxorguk.ukuu.org.uk, linux-s390@vger.kernel.org,
boris.ostrovsky@oracle.com, jgross@suse.com, pbonzini@redhat.com
Subject: Re: [PATCH v14 20/25] x86/tsc: calibrate tsc only once
Date: Thu, 19 Jul 2018 16:46:43 -0400 [thread overview]
Message-ID: <ae3e5320-b389-e8af-2905-1ccc37953da3@oracle.com> (raw)
In-Reply-To: <alpine.DEB.2.21.1807192240260.1693@nanos.tec.linutronix.de>
On 07/19/2018 04:44 PM, Thomas Gleixner wrote:
> On Thu, 19 Jul 2018, Pavel Tatashin wrote:
>
>> On Thu, Jul 19, 2018 at 12:49 PM Pavel Tatashin
>> <pasha.tatashin@oracle.com> wrote:
>>>
>>>> So create two functions. native_...early..() and native....(). The early
>>>> one does not contain the hpet/pmtimer stuff and it replaces the ops.pointer
>>>> with the late one which contains all of it.
>>>
>>> Good idea. Actually, the late one will contain only hpet/pmtimer and I
>>> will set it only if tsc frequency was not determined only.
>>
>> If we determined tsc early in boot using one of the quick methods:
>> from cpuid/msr/quick_pit, can we assume that frequencies of all other
>> CPUs will be determined the same way? Or do we still have to fallback
>> to PIT/HPET/PMTIMER? I wondering if we support heterogeneous
>> multi-socket platforms with different CPUs, because that the only
>> platforms where I see such scenario is possible.
>
> The frequency for secondary CPUs is usually taken from the boot CPU and the
> only reason why recalibration can happen is when the CPU does not have a
> constant frequency TSC.
>
> For that case the quick PIT + hpet/pmtimer calibration bundle is
> required. So yes, the early calibration might work with quick PIT (those
> CPUs definitely do not have MSR/CPUID based calibration), but the
> recalibration might fail the quick PIT calibration for various reasons.
OK, good, I implemented with this in-mind. I will send out a new series shortly.
Thank you,
Pavel
>
> Thanks,
>
> tglx
>
next prev parent reply other threads:[~2018-07-19 20:46 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-18 2:21 [PATCH v14 00/25] Early boot time stamps Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 01/25] x86/kvmclock: Remove memblock dependency Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 02/25] x86/kvmclock: Remove page size requirement from wall_clock Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 03/25] x86/kvmclock: Decrapify kvm_register_clock() Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 04/25] x86/kvmclock: Cleanup the code Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 05/25] x86/kvmclock: Mark variables __initdata and __ro_after_init Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 06/25] x86/kvmclock: Move kvmclock vsyscall param and init to kvmclock Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 07/25] x86/kvmclock: Switch kvmclock data to a PER_CPU variable Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 08/25] x86/kvmclock: Avoid TSC recalibration Pavel Tatashin
2018-07-18 11:14 ` Paolo Bonzini
2018-07-18 13:33 ` Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 09/25] x86: text_poke() may access uninitialized struct pages Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 10/25] x86: initialize static branching early Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 11/25] x86/CPU: Call detect_nopl() only on the BSP Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 12/25] x86/tsc: redefine notsc to behave as tsc=unstable Pavel Tatashin
2018-07-18 2:21 ` [PATCH v14 13/25] x86/xen/time: initialize pv xen time in init_hypervisor_platform Pavel Tatashin
2018-07-18 2:22 ` [PATCH v14 14/25] x86/xen/time: output xen sched_clock time from 0 Pavel Tatashin
2018-07-18 2:22 ` [PATCH v14 15/25] s390/time: add read_persistent_wall_and_boot_offset() Pavel Tatashin
2018-07-18 2:22 ` [PATCH v14 16/25] time: replace read_boot_clock64() with read_persistent_wall_and_boot_offset() Pavel Tatashin
2018-07-18 2:22 ` [PATCH v14 17/25] time: default boot time offset to local_clock() Pavel Tatashin
2018-07-18 2:22 ` [PATCH v14 18/25] s390/time: remove read_boot_clock64() Pavel Tatashin
2018-07-18 2:22 ` [PATCH v14 19/25] ARM/time: " Pavel Tatashin
2018-07-18 2:22 ` [PATCH v14 20/25] x86/tsc: calibrate tsc only once Pavel Tatashin
2018-07-19 5:33 ` Dou Liyang
2018-07-19 5:33 ` Dou Liyang
2018-07-19 6:25 ` Thomas Gleixner
2018-07-19 6:48 ` Dou Liyang
2018-07-19 6:48 ` Dou Liyang
2018-07-19 10:33 ` Peter Zijlstra
2018-07-19 11:01 ` Thomas Gleixner
2018-07-19 15:58 ` Pavel Tatashin
2018-07-19 16:19 ` Thomas Gleixner
2018-07-19 16:49 ` Pavel Tatashin
2018-07-19 18:38 ` Pavel Tatashin
2018-07-19 20:44 ` Thomas Gleixner
2018-07-19 20:46 ` Pavel Tatashin [this message]
2018-07-23 9:28 ` Alan Cox
2018-07-18 2:22 ` [PATCH v14 21/25] x86/tsc: initialize cyc2ns when tsc freq. is determined Pavel Tatashin
2018-07-18 2:22 ` [PATCH v14 22/25] x86/tsc: use tsc early Pavel Tatashin
2018-07-18 2:22 ` [PATCH v14 23/25] sched: move sched clock initialization and merge with generic clock Pavel Tatashin
2018-07-18 2:22 ` [PATCH v14 24/25] sched: early boot clock Pavel Tatashin
2018-07-19 10:39 ` Peter Zijlstra
2018-07-19 14:16 ` Pavel Tatashin
2018-07-18 2:22 ` [PATCH v14 25/25] sched: use static key for sched_clock_running Pavel Tatashin
2018-07-19 10:48 ` Peter Zijlstra
2018-07-19 14:24 ` Pavel Tatashin
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=ae3e5320-b389-e8af-2905-1ccc37953da3@oracle.com \
--to=pasha.tatashin@oracle.com \
--cc=boris.ostrovsky@oracle.com \
--cc=daniel.m.jordan@oracle.com \
--cc=douly.fnst@cn.fujitsu.com \
--cc=feng.tang@intel.com \
--cc=gnomes@lxorguk.ukuu.org.uk \
--cc=heiko.carstens@de.ibm.com \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=john.stultz@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=prarit@redhat.com \
--cc=sboyd@codeaurora.org \
--cc=schwidefsky@de.ibm.com \
--cc=steven.sistare@oracle.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.