From: Rajvi Jingar <rajvi.Jingar@intel.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: <mingo@redhat.com>, <hpa@zytor.com>, <x86@kernel.org>,
<peterz@infradead.org>, <linux-kernel@vger.kernel.org>,
<christopher.s.hall@intel.com>
Subject: Re: [PATCH v2] x86/tsc: Convert ART in nanoseconds to TSC.
Date: Thu, 8 Mar 2018 17:24:43 -0800 [thread overview]
Message-ID: <1520558683.37755.2.camel@intel.com> (raw)
In-Reply-To: <alpine.DEB.2.21.1803081518020.8662@nanos.tec.linutronix.de>
Hi Thomas,
Thank you for your comments.
On Thu, 2018-03-08 at 15:25 +0100, Thomas Gleixner wrote:
> On Tue, 6 Mar 2018, Rajvi Jingar wrote:
> > Device drivers use get_device_system_crosststamp() to produce
> > precise
> > system/device cross-timestamps. The PHC clock and ALSA interfaces,
> > for example, make the cross-timestamps available to user
> > applications.
> > On Intel platforms, get_device_system_crosststamp() requires a TSC
> > value derived from ART (Always Running Timer) to compute the
> > monotonic
> > raw and realtime system timestamps.
> >
> > Starting with Intel Goldmont platforms, the PCIe root complex
> > supports
> > the PTM time sync protocol. PTM requires all timestamps to be in
> > units
> > of nanoseconds. The Intel root complex hardware propagates system
> > time –
> > derived from ART - in units of nanoseconds performing the
> > conversion
> > as follows:
> >
> > ART_NS = ART * 1e9 / <crystal frequency>
> >
> > When user software requests a cross-timestamp, the system
> > timestamps
> > (generally read from device registers) must be converted to TSC by
> > the driver software as follows:
> >
> > TSC = ART_NS * TSC_KHZ / 1e6
> >
> > This is valid when CPU feature flag X86_FEATURE_TSC_KNOWN_FREQ is
> > set
> > indicating the tsc_khz is derived from CPUID[15H]. Drivers should
> > check that this flag is set before conversion to TSC is attempted.
>
> Clear and coherent changelog. Well done!
>
> > Changes from v1:
> >
> > * use existing frequency hardcode for platforms where
> > CPUID[15H].ECX == 0
> > (v1 added redundant hardcode just for the ART.ns conversion)
> >
> > * use tsc_khz for TSC conversion, also requires driver to check
> > X86_FEATURE_TSC_KNOWN_FREQ (v1 used CPUID[15H].ECX value directly)
>
> Maintainer lazyness request: Can you please put the changes paragraph
> below
> the --- seperator so it is discarded when the patch is extracted from
> mail. It's not part of the changelog which goes into git.
>
Sure. It has been changed in v3.
> > +struct system_counterval_t convert_art_ns_to_tsc(u64 art_ns)
>
> Can you please add kernel doc format function documentation which
> explains
> the calling conventions?
>
kernel-do format documentation is added to v3.
> > +{
> > + u64 tmp, res, rem;
> > +
> > + rem = do_div(art_ns, USEC_PER_SEC);
> > +
> > + res = art_ns * tsc_khz;
> > + tmp = rem * tsc_khz;
> > +
> > + do_div(tmp, USEC_PER_SEC);
> > + res += tmp;
> > +
> > + return (struct system_counterval_t) {.cs =
> > art_related_clocksource,
> > + .cycles = res};
>
> Definitely way better than the previous one. Good job!
>
> Thanks,
>
> tglx
Thank you,
Rajvi
prev parent reply other threads:[~2018-03-09 0:30 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-06 16:47 [PATCH v2] x86/tsc: Convert ART in nanoseconds to TSC Rajvi Jingar
2018-03-08 14:25 ` Thomas Gleixner
2018-03-09 1:24 ` Rajvi Jingar [this message]
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=1520558683.37755.2.camel@intel.com \
--to=rajvi.jingar@intel.com \
--cc=christopher.s.hall@intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--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.