From: David Woodhouse <dwmw2@infradead.org>
To: Miroslav Lichvar <mlichvar@redhat.com>,
Rodolfo Giometti <giometti@enneenne.com>
Cc: Richard Cochran <richardcochran@gmail.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>,
John Stultz <jstultz@google.com>,
Thomas Gleixner <tglx@kernel.org>,
Stephen Boyd <sboyd@kernel.org>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
Alexander Gordeev <agordeev@linux.ibm.com>
Subject: Re: [PATCH v4 3/4] pps: Always use ktime_get_snapshot_id() for pps_get_ts()
Date: Thu, 01 Oct 2026 16:38:58 +0100 [thread overview]
Message-ID: <c3cf85915d60576a1a12711c180a242ae017b277.camel@infradead.org> (raw)
In-Reply-To: <ar5cq0vslvQ00Pek@localhost>
[-- Attachment #1: Type: text/plain, Size: 1906 bytes --]
On Thu, 2026-10-01 at 15:14 +0200, Miroslav Lichvar wrote:
> On Mon, Sep 28, 2026 at 09:58:02AM +0200, Rodolfo Giometti wrote:
> > On Sat, 2026-09-26 at 21:38 +0100, David Woodhouse wrote:
> > > So yes, the specific code path you're looking at *does* get slightly
> > > longer (50ns to the counter read instead of 30ns).
> > [...]
> > > However, they are *entirely* in the noise, as there's about 600 ns of
> > > hardware and 2-4 *microseconds* of software latency before we even get
> > > there.
> >
> > Thanks for measuring it, and on real hardware with a real edge. That
> > answers my concern: ~20 ns of constant cost against microseconds of
> > latency upstream of the handler is not something PPS can see, and
> > trading it for the removal of a non-constant error is the right
> > trade.
>
> FWIW, there are some polling versions of the pps-gpio driver (out of
> tree), which provide much more stable measurements by trading
> interrupts for higher CPU use and where this additional delay might be
> visible.
Hm, interesting. Got a reference? What does it do, set a timer for when
it thinks the end of the second is imminent, and spinwait then?
I imagine it's something along the lines of:
count2 = arch_inlined_clocksource_read();
do {
count1 = count2;
pulse = gpio_read();
count2 = arch_inlined_clocksource_read();
} while (!pulse && !too_late());
/* And *now* we can take as long as we like to convert
* avg(count1,count2) into an actual time */
If it *doesn't* have the inlined read as the fast path like that, then
it isn't even *trying*, and one might argue that it doesn't get to have
an opinion on the 20ns I just stole from it. (I *did* give most of that
20ns back, although the arm64 maintainers aren't keen on inlining the
clocksource; if we do really want it, we'd have to make a real-world
case that isn't a microbenchmark.)
[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 6179 bytes --]
next prev parent reply other threads:[~2026-10-01 15:39 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-29 20:56 [PATCH v4 0/4] Add ntp_error to clock snapshot, enable NTP_PPS on tickless kernel David Woodhouse
2026-08-29 20:56 ` [PATCH v4 1/4] timekeeping: Apply extrapolated ntp_error to clock snapshots David Woodhouse
2026-08-29 20:57 ` [PATCH v4 2/4] pps: Drop the !NO_HZ_COMMON dependency from NTP_PPS David Woodhouse
2026-09-01 15:35 ` Rodolfo Giometti
2026-09-02 0:13 ` David Woodhouse
2026-09-28 13:37 ` David Woodhouse
2026-09-28 16:41 ` Rodolfo Giometti
2026-09-28 19:28 ` David Woodhouse
2026-09-29 6:33 ` Rodolfo Giometti
2026-09-29 9:32 ` David Woodhouse
2026-09-29 11:48 ` Rodolfo Giometti
2026-09-29 12:02 ` David Woodhouse
2026-09-30 1:28 ` David Woodhouse
2026-09-30 12:57 ` Rodolfo Giometti
2026-09-30 10:37 ` David Woodhouse
2026-09-30 12:57 ` Rodolfo Giometti
2026-09-30 14:05 ` David Woodhouse
2026-09-30 18:24 ` David Woodhouse
2026-10-01 8:20 ` Rodolfo Giometti
2026-10-01 9:08 ` David Woodhouse
2026-08-29 20:57 ` [PATCH v4 3/4] pps: Always use ktime_get_snapshot_id() for pps_get_ts() David Woodhouse
2026-09-01 15:35 ` Rodolfo Giometti
2026-09-01 23:56 ` David Woodhouse
2026-09-26 20:38 ` David Woodhouse
2026-09-28 7:58 ` Rodolfo Giometti
2026-09-28 12:59 ` David Woodhouse
2026-09-28 16:41 ` Rodolfo Giometti
2026-10-01 13:14 ` Miroslav Lichvar
2026-10-01 15:38 ` David Woodhouse [this message]
2026-10-02 7:04 ` Rodolfo Giometti
2026-10-02 9:07 ` David Woodhouse
2026-10-02 12:29 ` David Woodhouse
2026-10-02 13:44 ` David Woodhouse
2026-10-03 11:29 ` David Woodhouse
2026-10-05 9:16 ` Miroslav Lichvar
2026-08-29 20:57 ` [PATCH v4 4/4] [DO NOT MERGE] ptp: ptp_vmclock: Add simulated 1PPS support David Woodhouse
2026-09-01 15:35 ` [PATCH v4 0/4] Add ntp_error to clock snapshot, enable NTP_PPS on tickless kernel Rodolfo Giometti
2026-09-01 23:37 ` David Woodhouse
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=c3cf85915d60576a1a12711c180a242ae017b277.camel@infradead.org \
--to=dwmw2@infradead.org \
--cc=agordeev@linux.ibm.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=giometti@enneenne.com \
--cc=jstultz@google.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mlichvar@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=richardcochran@gmail.com \
--cc=sboyd@kernel.org \
--cc=tglx@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®