From: David Woodhouse <dwmw2@infradead.org>
To: Rodolfo Giometti <giometti@enneenne.com>,
Miroslav Lichvar <mlichvar@redhat.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: Fri, 02 Oct 2026 14:44:41 +0100 [thread overview]
Message-ID: <dd7a873caecab6c912e2c0f910d1e46818ea455d.camel@infradead.org> (raw)
In-Reply-To: <777d19602ed1868abbd3d3ef3a4e78a8688d4a17.camel@infradead.org>
[-- Attachment #1: Type: text/plain, Size: 2874 bytes --]
On Fri, 2026-10-02 at 13:29 +0100, David Woodhouse wrote:
>
> I think the remaining jitter is largely due to the time it takes, in
> the "tight" polling loop, to call gpio_read(). That's twice what I
> estimated — it's 600ns. I'm running a quick test of reading the MMIO
> directly in the loop... even that is still about 400ns on this
> hardware, which isn't going to move the needle very much either.
Hah, I should stop predicting results before I have them. I'm clearly
not very prescient. Spinning on the MMIO (the GPIO wait_for_edge()
method idea) makes more of a difference than I thought (~30% off every
column brings us down to only 3× the entry.S capture):
┌──────────────────────────────┬─────┬──────┬──────┬──────┬─────┐
│ capture method │ p50 │ p95 │ p99 │ max │ σ │
├──────────────────────────────┼─────┼──────┼──────┼──────┼─────┤
│ pps-gpio (IRQ) │ 84 │ 1206 │ 4013 │ 4889 │ 688 │
│ polling, stamp after edge │ 206 │ 536 │ 665 │ 1106 │ 286 │
│ polling, bracketed counter │ 206 │ 545 │ 647 │ 811 │ 286 │
│ polling, bracketed, raw MMIO │ 135 │ 359 │ 434 │ 564 │ 188 │
│ entry.S counter capture │ 46 │ 109 │ 135 │ 206 │ 58 │
└──────────────────────────────┴─────┴──────┴──────┴──────┴─────┘
(NB: We should be careful not to forget the common-mode hardware
latency which could be different for the IRQ paths vs. the polling
paths. On my list is a test where one CPU polls while the other takes
the interrupt, so we can compare on the *same* pulse.)
In the same order (new one is 'spin2'):
• https://david.woodhou.se/ntptest-r64/tickful-1hz/
• https://david.woodhou.se/ntptest-r64/spin0-tickful-1hz/
• https://david.woodhou.se/ntptest-r64/spin1-tickless-1hz/
• https://david.woodhou.se/ntptest-r64/spin2-tickless-1hz/
• https://david.woodhou.se/ntptest-r64/backdate-tickful-1hz/
The thing I mentioned about throwing away samples with the wider
brackets didn't survive the longer test; the buckets end up fairly much
identical:
bracket=2 (n=468): p50 134 p95 350 p99 472 p100 564
bracket=3 (n=1352): p50 137 p95 363 p99 430 p100 488
I only let 'spin2' run for 90 minutes, which is less than some of the
other overnight runs but should be sufficient. The board is now doing
the test requested in
https://lore.kernel.org/all/7274f4ef-edec-4282-9c92-b6f7918b8320@enneenne.com/
[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 6179 bytes --]
next prev parent reply other threads:[~2026-10-02 13:44 UTC|newest]
Thread overview: 36+ 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
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 [this message]
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=dd7a873caecab6c912e2c0f910d1e46818ea455d.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®