From: Joao Martins <joao.m.martins@oracle.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
xen-devel@lists.xenproject.org
Subject: Re: [PATCH v4 2/5] x86/time: implement tsc as clocksource
Date: Tue, 20 Sep 2016 11:23:40 +0100 [thread overview]
Message-ID: <57E10E2C.6020007@oracle.com> (raw)
In-Reply-To: <57E10C38.1090203@oracle.com>
On 09/20/2016 11:15 AM, Joao Martins wrote:
> On 09/20/2016 08:13 AM, Jan Beulich wrote:
>>>>> On 19.09.16 at 19:54, <joao.m.martins@oracle.com> wrote:
>>> On 09/19/2016 05:25 PM, Jan Beulich wrote:
>>>>>>> On 19.09.16 at 18:11, <joao.m.martins@oracle.com> wrote:
>>>>> On 09/19/2016 11:13 AM, Jan Beulich wrote:
>>>>>>>>> On 14.09.16 at 19:37, <joao.m.martins@oracle.com> wrote:
>>>>>>> Since b64438c7c ("x86/time: use correct (local) time stamp in
>>>>>>> constant-TSC calibration fast path") updates to cpu time use local
>>>>>>> stamps, which means platform timer is only used to seed the initial
>>>>>>> cpu time. With clocksource=tsc there is no need to be in sync with
>>>>>>> another clocksource, so we reseed the local/master stamps to be values
>>>>>>> of TSC and update the platform time stamps accordingly. Time
>>>>>>> calibration is set to 1sec after we switch to TSC, thus these stamps
>>>>>>> are reseeded to also ensure monotonic returning values right after the
>>>>>>> point we switch to TSC. This is also to avoid the possibility of
>>>>>>> having inconsistent readings in this short period (i.e. until
>>>>>>> calibration fires).
>>>>>>
>>>>>> And within this one second, which may cover some of Dom0's
>>>>>> booting up, it is okay to have inconsistencies?
>>>>> It's not okay which is why I am removing this possibility when switching to TSC.
>>>>> The inconsistencies in those readings (if I wasn't adjusting) would be because
>>>>> we would be using (in that 1-sec) those cpu time tuples calculated by the
>>>>> previous calibration or platform time initialization (while still was HPET,
>>>>> ACPI, etc as clocksource). Would you prefer me removing the "avoid" and instead
>>>>> change it to "remove the possibility" in this last sentence?
>>>>
>>>> Let's not do the 2nd step before the 1st, which is the question of
>>>> what happens prior to and what actually changes at this first
>>>> calibration (after 1 sec).
>>> The first calibration won't change much - this 1-sec was meant when having
>>> nop_rendezvous which is the first time platform timer would be used to set local
>>> cpu_time (will adjust the mention above as it's misleading for the reader as it
>>> doesn't refer to this patch).
>>
>> So what makes it that it actually _is_ nop_rendezvous after that one
>> second? (And yes, part of this may indeed be just bad placement of
>> the description, as iirc nop_rendezvous gets introduced only in a later
>> patch.)
> Because with nop_rendezvous we will be using the platform timer to get a
> monotonic time tuple and *set* cpu_time as opposed to just adding up plain TSC
> delta as it is the case prior to b64438c7c. Thus the reseeding of the cpu times
> solves both ends of the problem, with nop_rendezvous until it is first
> calibration fixes it, and without nop_rendezvous to remove the latch adjustment
> from initial platform timer.
The part "until it is the first calibration fixes it" is very
confusing/redundant I am sorry. I meant it: "with nop_rendezvous which otherwise
would be the first calibration fixing it". The previous part was hinting like
there's a problem, when it is fixed but the reseeding.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-09-20 10:22 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-14 17:37 [PATCH v4 0/5] x86/time: PVCLOCK_TSC_STABLE_BIT support Joao Martins
2016-09-14 17:37 ` [PATCH v4 1/5] x86/time: refactor init_platform_time() Joao Martins
2016-09-14 17:37 ` [PATCH v4 2/5] x86/time: implement tsc as clocksource Joao Martins
2016-09-19 10:13 ` Jan Beulich
2016-09-19 16:11 ` Joao Martins
2016-09-19 16:25 ` Jan Beulich
2016-09-19 17:54 ` Joao Martins
2016-09-20 7:13 ` Jan Beulich
2016-09-20 10:15 ` Joao Martins
2016-09-20 10:23 ` Joao Martins [this message]
2016-09-20 13:55 ` Jan Beulich
2016-09-20 16:17 ` Joao Martins
2016-09-21 9:14 ` Joao Martins
2016-09-21 9:20 ` Joao Martins
2016-09-21 9:45 ` Jan Beulich
2016-09-21 13:30 ` Joao Martins
2016-09-14 17:37 ` [PATCH v4 3/5] x86/time: refactor read_platform_stime() Joao Martins
2016-09-19 10:15 ` Jan Beulich
2016-09-19 16:11 ` Joao Martins
2016-09-14 17:37 ` [PATCH v4 4/5] x86/time: implement PVCLOCK_TSC_STABLE_BIT Joao Martins
2016-09-19 10:22 ` Jan Beulich
2016-09-19 16:11 ` Joao Martins
2016-09-14 17:37 ` [PATCH v4 5/5] x86/time: extend "tsc" param with "stable:socket" Joao Martins
2016-09-19 10:29 ` Jan Beulich
2016-09-19 16:11 ` Joao Martins
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=57E10E2C.6020007@oracle.com \
--to=joao.m.martins@oracle.com \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=xen-devel@lists.xenproject.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.