Netdev List
 help / color / mirror / Atom feed
From: Jacob Keller <jacob.e.keller@intel.com>
To: Arthur Kiyanovski <akiyano@amazon.com>
Cc: David Miller <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, <netdev@vger.kernel.org>,
	Richard Cochran <richardcochran@gmail.com>,
	"Eric Dumazet" <edumazet@google.com>,
	Paolo Abeni <pabeni@redhat.com>,
	"David Woodhouse" <dwmw2@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Miroslav Lichvar <mlichvar@redhat.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	Wen Gu <guwen@linux.alibaba.com>,
	Xuan Zhuo <xuanzhuo@linux.alibaba.com>,
	David Woodhouse <dwmw@amazon.com>,
	Yonatan Sarna <ysarna@amazon.com>,
	"Zorik Machulsky" <zorik@amazon.com>,
	Alexander Matushevsky <matua@amazon.com>,
	"Saeed Bshara" <saeedb@amazon.com>, Matt Wilson <msw@amazon.com>,
	Anthony Liguori <aliguori@amazon.com>,
	Nafea Bshara <nafea@amazon.com>,
	Evgeny Schmeilin <evgenys@amazon.com>,
	Netanel Belgazal <netanel@amazon.com>,
	Ali Saidi <alisaidi@amazon.com>,
	Benjamin Herrenschmidt <benh@amazon.com>,
	Noam Dagan <ndagan@amazon.com>,
	David Arinzon <darinzon@amazon.com>,
	Evgeny Ostrovsky <evostrov@amazon.com>,
	Ofir Tabachnik <ofirt@amazon.com>,
	Amit Bernstein <amitbern@amazon.com>,
	<linux-kselftest@vger.kernel.org>, <linux-doc@vger.kernel.org>,
	<shuah@kernel.org>, Jonathan Corbet <corbet@lwn.net>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Simon Horman <horms@kernel.org>, <vadim.fedorenko@linux.dev>
Subject: Re: [PATCH v4 net-next 1/7] ptp: Add ioctls for PHC timestamps with quality attributes
Date: Thu, 16 Jul 2026 11:14:49 -0700	[thread overview]
Message-ID: <79bbb277-e396-461e-8104-a9d62d47c299@intel.com> (raw)
In-Reply-To: <178418934680.25423.291292029139415698.b4-reply@b4>

On 7/16/2026 1:09 AM, Arthur Kiyanovski wrote:
> On 2026-07-14 17:45:34-07:00, Jacob Keller wrote:
>> On 7/13/2026 7:03 PM, Arthur Kiyanovski wrote:
>> I'm also wondering if this can expose device-known error bounds on
>> timestamps even for devices which are operated as synchronized by ptp4l..
>>
> 
> The intent is for these attributes to represent device-
> known clock quality information. The mechanism is
> deliberately synchronization-agnostic: drivers may report
> any attributes they can meaningfully vouch for, regardless
> of how the clock is being disciplined. Thus a device that
> genuinely knows a hardware error bound could report it even
> if the PHC is being adjusted by ptp4l.
> 
> In practice, however, when a PHC is disciplined entirely
> from userspace the driver often has little or no visibility
> into synchronization quality. The valid bitmask is designed
> for exactly this case: a driver advertises only the
> attributes it can populate, so anything it cannot determine
> is simply reported as unavailable.
> 

Right.

>>> Timescale definitions use a Continuity/Discipline framework to describe
>>> timeline properties and steering behavior consistently across all
>>> entries.
>>>
>>> This implementation is based on the original RFC and the UAPI design
>>> discussion linked below.
>>
>> Not a dig against this patch set, nor a request that you work to
>> implement anything else, but I am beginning to wonder if/when it would
>> make sense to transition from ioctl-based implementation to genetlink or
>> something. We did something similar for ethtool ioctls a few years ago.
>> I know the maintainer for PTP has some distaste for netlink and prefers
>> the simplicity of the ioctls.. but I think we're moving past where the
>> ioctls are "simple". Now that we have ynl tools, it has gotten easier to
>> implement properly. It makes extending the API much easier for the
>> future vs the array of ioctls we now carry for legacy implementations.
>>
> 
> That's an interesting direction for future PTP UAPI
> evolution, and ynl does make that path easier than it used
> to be. For this series I've kept to the existing PTP
> userspace API model and extended the current timestamping
> interfaces in a backwards-compatible way; a move to a
> netlink family would be a broader subsystem effort and feels
> separate from this work.

Absolutely. I don't think that should change this patch series. Its just
a thought that we might want to tackle this at some point as the ioctl
interface is clearly reaching its limits.

>>
>> Do you have any thought on how ptp4l synchronizing the clock should
>> impact the clock status here? Is this intended purely for device/drivers
>> which have their own synchronization and not for ones which expose a
>> clock that is synchronized by userspace? Would it make sense to have a
>> mode that is something like "this clock has been modified by userspace"
>> after any call to the .adjtime or .adjfreq is made?
>>
> 
> Regarding a "modified by userspace" mode, I wasn't
> planning to add one. Whether adjtime() or adjfreq() was
> invoked does not by itself describe the current
> synchronization state or quality of the clock. A clock
> disciplined from userspace may still be highly accurate. I'd
> prefer to keep clock_status focused on clock quality
> information that the driver can directly determine rather
> than on how the clock is being controlled.

Makes sense. Leave it up to userspace to coordinate and combine relevant
data from the device/driver and the daemons together. Ok.

>>> @@ -106,7 +350,11 @@ struct ptp_clock_caps {
>>>  	/* Whether the clock supports adjust phase */
>>>  	int adjust_phase;
>>>  	int max_phase_adj; /* Maximum phase adjustment in nanoseconds. */
>>> -	int rsv[11];       /* Reserved for future use. */
>>> +	/* Whether the clock supports extended timestamps with attributes */
>>> +	int extended_attrs;
>>> +	/* Whether the clock supports precise cross-timestamps with attributes */
>>> +	int precise_attrs;
>>> +	int rsv[9];       /* Reserved for future use. */
>>
>> I do kind of wish we had opted for bit flags here given the number of
>> ints being used as booleans.. :( A lot of wasted reserved space.
> 
> Agreed — a flags field would likely have scaled better. I
> followed the existing ptp_clock_caps convention (one int per
> capability) to stay consistent with the current UAPI
> structure rather than mix two styles within the same struct.
> 
> 

Yep, I agree that it is best to stick to the same pattern.


  reply	other threads:[~2026-07-16 18:15 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-14  2:03 [PATCH v4 net-next 0/7] ptp: Add PHC timestamp quality attributes Arthur Kiyanovski
2026-07-14  2:03 ` [PATCH v4 net-next 1/7] ptp: Add ioctls for PHC timestamps with " Arthur Kiyanovski
2026-07-15  0:45   ` Jacob Keller
2026-07-16  8:09     ` Arthur Kiyanovski
2026-07-16 18:14       ` Jacob Keller [this message]
2026-07-16 11:22   ` saeed bishara
2026-07-14  2:03 ` [PATCH v4 net-next 2/7] selftests/ptp: Extract print_system_timestamp helper in testptp Arthur Kiyanovski
2026-07-16 11:34   ` saeed bishara
2026-07-14  2:03 ` [PATCH v4 net-next 3/7] selftests/ptp: Add testptp support for attributes ioctls Arthur Kiyanovski
2026-07-16 13:00   ` saeed bishara
2026-07-14  2:03 ` [PATCH v4 net-next 4/7] ptp: ptp_vmclock: Implement " Arthur Kiyanovski
2026-07-14  2:03 ` [PATCH v4 net-next 5/7] net: ena: Update PHC admin interface for error bound support Arthur Kiyanovski
2026-07-14  2:03 ` [PATCH v4 net-next 6/7] net: ena: Add error bound to PHC communication layer Arthur Kiyanovski
2026-07-14  2:03 ` [PATCH v4 net-next 7/7] net: ena: Implement gettimexattrs64 callback for PTP attributes Arthur Kiyanovski
2026-07-15  0:47   ` Jacob Keller
2026-07-16  8:11     ` Arthur Kiyanovski
2026-07-16 18:07       ` Jacob Keller

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=79bbb277-e396-461e-8104-a9d62d47c299@intel.com \
    --to=jacob.e.keller@intel.com \
    --cc=akiyano@amazon.com \
    --cc=aliguori@amazon.com \
    --cc=alisaidi@amazon.com \
    --cc=amitbern@amazon.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=benh@amazon.com \
    --cc=corbet@lwn.net \
    --cc=darinzon@amazon.com \
    --cc=davem@davemloft.net \
    --cc=dwmw2@infradead.org \
    --cc=dwmw@amazon.com \
    --cc=edumazet@google.com \
    --cc=evgenys@amazon.com \
    --cc=evostrov@amazon.com \
    --cc=guwen@linux.alibaba.com \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=matua@amazon.com \
    --cc=mlichvar@redhat.com \
    --cc=msw@amazon.com \
    --cc=nafea@amazon.com \
    --cc=ndagan@amazon.com \
    --cc=netanel@amazon.com \
    --cc=netdev@vger.kernel.org \
    --cc=ofirt@amazon.com \
    --cc=pabeni@redhat.com \
    --cc=richardcochran@gmail.com \
    --cc=saeedb@amazon.com \
    --cc=shuah@kernel.org \
    --cc=skhan@linuxfoundation.org \
    --cc=tglx@linutronix.de \
    --cc=vadim.fedorenko@linux.dev \
    --cc=xuanzhuo@linux.alibaba.com \
    --cc=ysarna@amazon.com \
    --cc=zorik@amazon.com \
    /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