From: Arthur Kiyanovski <akiyano@amazon.com>
To: saeed bishara <saeed.bishara.os@gmail.com>
Cc: Arthur Kiyanovski <akiyano@amazon.com>,
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 3/7] selftests/ptp: Add testptp support for attributes ioctls
Date: Fri, 17 Jul 2026 07:20:53 +0000 [thread overview]
Message-ID: <178427285301.16508.9929147333505968694.b4-reply@b4> (raw)
In-Reply-To: <CAHfVqdWDaLEKYMw-ZfkYvKLoSJ-_HOm3X9hUUhEf7ReBbOi__w@mail.gmail.com>
On 2026-07-16 16:00:49+03:00, saeed bishara wrote:
> > " -t val shift the ptp clock time by 'val' seconds\n"
> > " -T val set the ptp clock time to 'val' seconds\n"
> > " -x val get an extended ptp clock time with the desired number of samples (up to %d)\n"
> > + " -a val get extended timestamps with attributes (error_bound,\n"
>
> timestamps -> ptp clock to be consistent
> also, have you considered making the "-a" additional flag to -x and -A
> instead of an exclusive option?
>
> > + printf("sample #%2d: unknown clock %d %s: %lld.%09u\n",
> > + sample_num, clockid, when, sec, nsec);
>
> In the case of an unknown clock, will the additional parameters
> (when/sec/..) be useful?
>
> > break;
> > }
> > }
> > @@ -188,6 +193,7 @@ int main(int argc, char *argv[])
> > struct ptp_sys_offset *sysoff;
> > struct ptp_sys_offset_extended *soe;
> > struct ptp_sys_offset_precise *xts;
> > + struct ptp_sys_offset_attrs *attrs_data;
> >
> > char *progname;
> > unsigned int i;
> > @@ -208,7 +214,9 @@ int main(int argc, char *argv[])
> > int list_pins = 0;
> > int pct_offset = 0;
> > int getextended = 0;
> > + int getextendedattrs = 0;
> > int getcross = 0;
> > + int getcrossattrs = 0;
> > int n_samples = 0;
> > int pin_index = -1, pin_func;
> > int pps = -1;
> > @@ -226,7 +234,8 @@ int main(int argc, char *argv[])
> >
> > progname = strrchr(argv[0], '/');
> > progname = progname ? 1+progname : argv[0];
> > - while (EOF != (c = getopt(argc, argv, "cd:e:E:f:F:ghH:i:k:lL:n:o:p:P:rsSt:T:w:x:Xy:z"))) {
> > + while (EOF != (c = getopt(argc, argv,
> > + "a:Acd:e:E:f:F:ghH:i:k:lL:n:o:p:P:rsSt:T:w:x:Xy:z"))) {
> > switch (c) {
> > case 'c':
> > capabilities = 1;
> > @@ -311,9 +320,22 @@ int main(int argc, char *argv[])
> > return -1;
> > }
> > break;
> > + case 'a':
> > + getextendedattrs = atoi(optarg);
> > + if (getextendedattrs < 1 ||
> > + getextendedattrs > PTP_MAX_SAMPLES) {
> > + fprintf(stderr,
> > + "number of extended attrs timestamp samples must be between 1 and %d; was asked for %d\n",
> > + PTP_MAX_SAMPLES, getextendedattrs);
> > + return -1;
> > + }
> > + break;
> > case 'X':
> > getcross = 1;
> > break;
> > + case 'A':
> > + getcrossattrs = 1;
> > + break;
> > case 'y':
> > if (!strcasecmp(optarg, "realtime"))
> > ext_clockid = CLOCK_REALTIME;
> > @@ -367,6 +389,8 @@ int main(int argc, char *argv[])
> > " %d programmable pins\n"
> > " %d cross timestamping\n"
> > " %d adjust_phase\n"
> > + " %d extended_attrs\n"
> > + " %d precise_attrs\n"
> > " %d maximum phase adjustment (ns)\n",
> > caps.max_adj,
> > caps.n_alarm,
> > @@ -376,6 +400,8 @@ int main(int argc, char *argv[])
> > caps.n_pins,
> > caps.cross_timestamping,
> > caps.adjust_phase,
> > + caps.extended_attrs,
> > + caps.precise_attrs,
> > caps.max_phase_adj);
> > }
> > }
> > @@ -648,6 +674,49 @@ int main(int argc, char *argv[])
> > free(soe);
> > }
> >
> > + if (getextendedattrs) {
> > + attrs_data = calloc(1, sizeof(*attrs_data) +
> > + getextendedattrs * sizeof(struct ptp_timestamp));
> > + if (!attrs_data) {
> > + perror("calloc");
> > + return -1;
> > + }
> > +
> > + attrs_data->request.num_samples = getextendedattrs;
> > + attrs_data->request.clock_id = ext_clockid;
> > +
> > + if (ioctl(fd, PTP_SYS_OFFSET_EXTENDED_ATTRS, attrs_data)) {
> > + perror("PTP_SYS_OFFSET_EXTENDED_ATTRS");
> > + } else {
> > + printf("extended attrs timestamp request returned %d samples\n",
> > + getextendedattrs);
> > +
> > + for (i = 0; i < getextendedattrs; i++) {
> > + struct ptp_timestamp *ts = &attrs_data->timestamps[i];
> > +
> > + printf(" sample #%u:\n", i);
> > + printf(" sys before: %lld ns\n",
> > + (long long)ts->pre_systime.sys_time);
> > + printf(" phc time: %lld.%09u\n",
> > + ts->devtime.device_time.sec,
> > + ts->devtime.device_time.nsec);
> > + if (ts->devtime.attrs.valid & PTP_ATTRS_VALID_ERROR_BOUND)
> > + printf(" error_bound: %u ns\n",
> > + ts->devtime.attrs.error_bound);
>
> in case device doesn't report error bound, I think it's better to
> print explicit message
All addressed in v5: -a is now a modifier on -x/-X (dropped -A, use
-X -a) as you suggested; usage text updated; the unknown-clock line is
trimmed to just the clock id; and attributes the device doesn't report
now print "not reported".
next prev parent reply other threads:[~2026-07-17 7:21 UTC|newest]
Thread overview: 26+ 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
2026-07-28 8:10 ` Carolina Jubran
2026-07-29 0:26 ` Arthur Kiyanovski
2026-07-16 11:22 ` saeed bishara
2026-07-17 7:18 ` Arthur Kiyanovski
2026-07-28 7:52 ` Carolina Jubran
2026-07-29 0:25 ` Arthur Kiyanovski
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-17 7:19 ` Arthur Kiyanovski
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-17 7:20 ` Arthur Kiyanovski [this message]
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
2026-07-27 1:41 ` [PATCH v4 net-next 0/7] ptp: Add PHC timestamp quality attributes Richard Cochran
2026-07-27 9:40 ` 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=178427285301.16508.9929147333505968694.b4-reply@b4 \
--to=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=saeed.bishara.os@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