From: Stephen Hemminger <stephen@networkplumber.org>
To: Isaac Boukris <iboukris@gmail.com>
Cc: users@dpdk.org
Subject: Re: Accuracy of rte_get_tsc_hz() compared to linux
Date: Fri, 20 Sep 2024 07:39:16 -0700 [thread overview]
Message-ID: <20240920073916.2bc8f380@hermes.local> (raw)
In-Reply-To: <CAC-fF8R6sSz+oHg-Fju3LDRiSnTDPAKWhC1q81G7VG7nkO1x1Q@mail.gmail.com>
On Fri, 20 Sep 2024 06:19:35 +0300
Isaac Boukris <iboukris@gmail.com> wrote:
> On Fri, Sep 20, 2024 at 1:21 AM Stephen Hemminger
> <stephen@networkplumber.org> wrote:
> >
> > On Thu, 19 Sep 2024 01:04:40 +0300
> > Isaac Boukris <iboukris@gmail.com> wrote:
> >
> > > Hi,
> > >
> > > On Intel(R) Xeon(R) Gold 6130 CPU @ 2.10GHz (see lscpu output at the end).
> > >
> > > The rte_get_tsc_hz() returns 2100000 KHz but using it causes our
> > > timestamps to lag behind real time (roughly a sec per 10 min). I
> > > noticed the kernel uses 2095082 KHz and in fact it gives much better
> > > results.
> > >
> > > dmesg:
> > > tsc: Detected 2095.082 MHz processor
> > >
> > > tsc_freq_khz (custom kmod to exposes kernel's tsc_khz):
> > > cat /sys/devices/system/cpu/cpu0/tsc_freq_khz
> > > 2095082
> >
> >
> > Sigh. exposing tsc frequency through sysfs is a Redhat extension
> > that never got merged upstream.
>
> Actually I think it is a google thing, I got it from github, someone
> implemented it for all (hence custom). It is a shame it was never
> merged as people know about it for a long time. I mean the whole rdtsc
> API is incomplete without it.
>
> As it is, I think the low hanging fruit for now would be to:
> - lower the rounding in our linux estimate from 10 to 1 MHz.
> - ignore the arch result if the cpu doesn't have the tsc_known_freq flag.
The known freq flag doesn't appear to be a CPU flags property, but more
of a property that kernel sets when it decides "this is good enough".
Really getting better value would require some sort of repeated check
(maybe an alarm callback), and using cpu value as a starting point.
next prev parent reply other threads:[~2024-09-20 14:39 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-18 22:04 Isaac Boukris
2024-09-18 23:27 ` Stephen Hemminger
2024-09-19 9:37 ` Isaac Boukris
2024-09-19 12:26 ` Isaac Boukris
2024-09-19 13:04 ` Isaac Boukris
2024-09-19 18:33 ` Isaac Boukris
2024-09-19 21:53 ` Stephen Hemminger
2024-09-19 22:02 ` Stephen Hemminger
2024-09-19 22:21 ` Stephen Hemminger
2024-09-20 3:19 ` Isaac Boukris
2024-09-20 14:39 ` Stephen Hemminger [this message]
2024-09-20 15:06 ` Isaac Boukris
2024-09-21 6:36 ` Isaac Boukris
2024-09-20 7:26 ` David Marchand
2024-09-20 14:36 ` Stephen Hemminger
2024-09-20 15:11 ` Isaac Boukris
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=20240920073916.2bc8f380@hermes.local \
--to=stephen@networkplumber.org \
--cc=iboukris@gmail.com \
--cc=users@dpdk.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;
as well as URLs for NNTP newsgroup(s).