From: Ivan Vecera <ivecera@redhat.com>
To: netdev@vger.kernel.org
Cc: Petr Oros <poros@redhat.com>,
Vadim Fedorenko <vadim.fedorenko@linux.dev>,
Chris du Quesnay <Chris.duQuesnay@microchip.com>,
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>,
Jakub Kicinski <kuba@kernel.org>, Jiri Pirko <jiri@resnulli.us>,
Min Li <min.li@microchip.com>, Paolo Abeni <pabeni@redhat.com>,
Richard Cochran <richardcochran@gmail.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next v8 3/3] dpll: zl3073x: add PTP clock support
Date: Sun, 16 Aug 2026 16:52:54 +0200 [thread overview]
Message-ID: <7be0d9cb-7dc9-4ea5-91e8-d67ead2839c6@redhat.com> (raw)
In-Reply-To: <20260814082656.306534-4-ivecera@redhat.com>
Sashiko comments with my replies:
> Should PTP_1588_CLOCK be a hard dependency here?
Yes. This was explicitly requested by Jakub in the v2 review [1].
[1] https://lore.kernel.org/netdev/20260722135848.2d401ada@kernel.org/
> Does settime64() need to compensate for the deferred ToD load?
> [...] does this leave the clock up to a second behind the requested
> time on every clock_settime()?
settime64 is a coarse "slam the clock" operation. gettimex64() does
not return stale values — it calls tod_ready_wait() which blocks
until the pending WR_NEXT_1HZ completes. The PTP servo handles any
residual offset in subsequent adjtime calls.
> Also, ts.tv_nsec is written raw. If a caller passes a non-zero
> tv_nsec, does the ToD second boundary end up displaced from the
> DPLL 1 Hz / output 1PPS phase?
Yes, a non-zero tv_nsec displaces the ToD second boundary from the
1PPS edge. This matches the hardware behavior — settime64 sets
the ToD counter to whatever value is requested. Phase coherence
between ToD and outputs is maintained by adjtime which routes
sub-second adjustments through phase step or TIE write.
> Is this error return reachable after the seconds are already
> committed? [...] Does the caller then get a failure for an
> adjustment whose seconds part is already applied?
If tod_ready_wait fails, we cannot be certain that WR_NEXT_1HZ was
actually applied. Returning the error is the safer choice — masking
it would silently report success when the adjustment may not have
been applied at all.
> Does the same pending WR_NEXT_1HZ hazard exist across callback
> invocations? [...]
> Would calling zl3073x_chan_tod_ready_wait() unconditionally before
> the phase step / TIE write cover this?
Phase step and TIE write operate on independent hardware blocks
(output phase adjustment and DPLL input phase respectively) and do
not conflict with a pending ToD write. Any subsequent ToD operation
goes through tod_ready_wait which waits for the pending write to
complete. The cross-callback sequence described (settime64 followed
immediately by adjphase) does not occur in practice — these are
fundamentally different operations used at different stages of PTP
clock management.
> zl3073x_dpll_alloc() and zl3073x_dpll_free() are moved verbatim
> [...] Could it be dropped or split into a separate
> no-functional-change patch?
The move is needed because the new PTP registration helper
zl3073x_dpll_ptp_register() must be defined before
zl3073x_dpll_alloc() which references ptp_info. Splitting this
into a separate patch was done in v3 at Jakub's request but was
squashed back when the refactored helper was dropped along with
perout support.
Thanks,
Ivan
next prev parent reply other threads:[~2026-08-16 14:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-14 8:26 [PATCH net-next v8 0/3] " Ivan Vecera
2026-08-14 8:26 ` [PATCH net-next v8 1/3] dpll: zl3073x: scale poll interval proportionally to timeout Ivan Vecera
2026-08-14 8:26 ` [PATCH net-next v8 2/3] dpll: zl3073x: add channel ToD, phase step and TIE operations Ivan Vecera
2026-08-16 14:47 ` Ivan Vecera
2026-08-18 16:37 ` Jakub Kicinski
2026-08-18 16:51 ` Jakub Kicinski
2026-08-14 8:26 ` [PATCH net-next v8 3/3] dpll: zl3073x: add PTP clock support Ivan Vecera
2026-08-16 14:52 ` Ivan Vecera [this message]
2026-08-18 16:37 ` Jakub Kicinski
2026-08-18 17:00 ` [PATCH net-next v8 0/3] " patchwork-bot+netdevbpf
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=7be0d9cb-7dc9-4ea5-91e8-d67ead2839c6@redhat.com \
--to=ivecera@redhat.com \
--cc=Chris.duQuesnay@microchip.com \
--cc=arkadiusz.kubalewski@intel.com \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=min.li@microchip.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=poros@redhat.com \
--cc=richardcochran@gmail.com \
--cc=vadim.fedorenko@linux.dev \
/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®