From: Kurt Kanzenbach <kurt@linutronix.de>
To: Miroslav Lichvar <mlichvar@redhat.com>,
Jacob Keller <jacob.e.keller@intel.com>
Cc: Tony Nguyen <anthony.l.nguyen@intel.com>,
Przemek Kitszel <przemyslaw.kitszel@intel.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>,
Richard Cochran <richardcochran@gmail.com>,
Vinicius Costa Gomes <vinicius.gomes@intel.com>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org
Subject: Re: [Intel-wired-lan] [PATCH iwl-next] igb: Retrieve Tx timestamp directly from interrupt
Date: Fri, 12 Sep 2025 11:04:24 +0200 [thread overview]
Message-ID: <87ikhodotj.fsf@jax.kurt.home> (raw)
In-Reply-To: <aKV_rEjYD_BDgG1A@localhost>
[-- Attachment #1: Type: text/plain, Size: 3019 bytes --]
On Wed Aug 20 2025, Miroslav Lichvar wrote:
> On Tue, Aug 19, 2025 at 04:31:49PM -0700, Jacob Keller wrote:
>> I'm having trouble interpreting what exactly this data shows, as its
>> quite a lot of data and numbers. I guess that it is showing when it
>> switches over to software timestamps.. It would be nice if ntpperf
>> showed number of events which were software vs hardware timestamping, as
>> thats likely the culprit. igb hardare only has a single outstanding Tx
>> timestamp at a time.
>
> The server doesn't have a way to tell the client (ntpperf) which
> timestamps are HW or SW, we can only guess from the measured offset as
> HW timestamps should be more accurate, but on the server side the
> number of SW and HW TX timestamps provided to the client can be
> monitored with the "chronyc serverstats" command. The server requests
> both SW and HW TX timestamps and uses the better one it gets from the
> kernel, if it can actually get one before it receives the next
> request from the same client (ntpperf simulates up to 16384 concurrent
> clients).
>
> When I run ntpperf at a fixed rate of 140000 requests per second
> for 10 seconds (-r 140000 -t 10), I get the following numbers.
>
> Without the patch:
> NTP daemon TX timestamps : 28056
> NTP kernel TX timestamps : 1012864
> NTP hardware TX timestamps : 387239
>
> With the patch:
> NTP daemon TX timestamps : 28047
> NTP kernel TX timestamps : 707674
> NTP hardware TX timestamps : 692326
>
> The number of HW timestamps is significantly higher with the patch, so
> that looks good.
>
> But when I increase the rate to 200000, I get this:
>
> Without the patch:
> NTP daemon TX timestamps : 35835
> NTP kernel TX timestamps : 1410956
> NTP hardware TX timestamps : 581575
>
> With the patch:
> NTP daemon TX timestamps : 476908
> NTP kernel TX timestamps : 646146
> NTP hardware TX timestamps : 412095
>
Sebastian found a machine with i350 and gave me access.
I did run the same test as you mentioned here. But, my numbers are
completely different. Especially the number of hardware TX timestamps
are significantly lower overall.
Without the patch:
./ntpperf -i eno8303 -m X -d Y -s Z -I -r 200000 -t 10
NTP daemon RX timestamps : 0
NTP daemon TX timestamps : 565057
NTP kernel RX timestamps : 100208
NTP kernel TX timestamps : 281215
NTP hardware RX timestamps : 882823
NTP hardware TX timestamps : 136759
With the patch:
NTP daemon RX timestamps : 0
NTP daemon TX timestamps : 576561
NTP kernel RX timestamps : 99232
NTP kernel TX timestamps : 255634
NTP hardware RX timestamps : 868392
NTP hardware TX timestamps : 135429
What am I doing wrong? Here's my chrony config:
|########## i350 NTP performance regression test ###########
|local stratum 10
|allow X
|allow Y
|allow Z
|
|hwtimestamp eno0
|
|clientloglimit 134217728
|log measurements statistics tracking
|logdir /var/log/chrony
Thanks,
Kurt
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 861 bytes --]
next prev parent reply other threads:[~2025-09-12 9:04 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-15 6:50 [Intel-wired-lan] [PATCH iwl-next] igb: Retrieve Tx timestamp directly from interrupt Kurt Kanzenbach
2025-08-15 6:50 ` Kurt Kanzenbach
2025-08-15 7:55 ` [Intel-wired-lan] " Paul Menzel
2025-08-15 8:10 ` Sebastian Andrzej Siewior
2025-08-15 8:17 ` Kurt Kanzenbach
2025-08-15 12:54 ` Paul Menzel
2025-08-15 16:41 ` Sebastian Andrzej Siewior
2025-08-15 13:58 ` Vadim Fedorenko
2025-08-16 9:06 ` Kurt Kanzenbach
2025-08-18 12:24 ` Miroslav Lichvar
2025-08-19 6:09 ` Kurt Kanzenbach
2025-08-19 14:50 ` Kurt Kanzenbach
2025-08-20 6:54 ` Miroslav Lichvar
2025-08-19 23:31 ` Jacob Keller
2025-08-20 7:56 ` Miroslav Lichvar
2025-08-20 20:29 ` Jacob Keller
2025-08-21 7:50 ` Miroslav Lichvar
2025-08-21 11:38 ` Kurt Kanzenbach
2025-08-21 12:59 ` Miroslav Lichvar
2025-08-21 14:08 ` Kurt Kanzenbach
2025-08-21 14:51 ` Miroslav Lichvar
2025-09-12 9:04 ` Kurt Kanzenbach [this message]
2025-09-13 21:22 ` Sebastian Andrzej Siewior
2025-09-13 21:22 ` Sebastian Andrzej Siewior
2025-09-23 8:25 ` Miroslav Lichvar
2025-09-23 8:01 ` Miroslav Lichvar
2025-08-19 23:24 ` Jacob Keller
2025-08-19 23:24 ` 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=87ikhodotj.fsf@jax.kurt.home \
--to=kurt@linutronix.de \
--cc=andrew+netdev@lunn.ch \
--cc=anthony.l.nguyen@intel.com \
--cc=bigeasy@linutronix.de \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=jacob.e.keller@intel.com \
--cc=kuba@kernel.org \
--cc=mlichvar@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=przemyslaw.kitszel@intel.com \
--cc=richardcochran@gmail.com \
--cc=vinicius.gomes@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.