On Thu, Sep 19, 2024 at 2:27 AM Stephen Hemminger <[email protected]> wrote: > > On Thu, 19 Sep 2024 01:04:40 +0300 > Isaac Boukris <[email protected]> wrote: > > > I've run the helloworld application on an isolated cpu: > > taskset -c 10 ./dpdk-helloworld --log-level=lib.eal:debug --no-huge > > > > The results are: > > EAL: TSC frequency arch ~2100000 KHz > > EAL: TSC frequency linux ~2095082 KHz > > EAL: TSC frequency estimate ~2095346 KHz > > > > The arch one is picked, which seems rather wrong, any way to override that? > > Should we lower the estimation rounding to 1MHz or even 1KHz in the linux > > one? > > > > Thoughts? Thanks! > > > > Kernel: 4.18.0-513.9.1.el8_9.x86_64 > > Note: 4.18 kernel was end of life 12 August 2018, I assume > this is RHEL8 which does their own backports and never changes kernel version. > > What is the kernel dmesg, why is it deciding on that value?
Actually, this is the boot dmesg on the machine itself (the previous log was from a kvm on that machine). # journalctl -b --system | grep -i tsc Sep 15 17:50:16 localhost kernel: tsc: Detected 2100.000 MHz processor Sep 15 17:50:16 localhost kernel: TSC deadline timer available Sep 15 17:50:16 localhost kernel: clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x1e4530a99b6, max_idle_ns: 440795257976 ns Sep 15 17:50:16 localhost kernel: clocksource: Switched to clocksource tsc-early Sep 15 17:50:16 localhost kernel: tsc: Refined TSC clocksource calibration: 2095.082 MHz Sep 15 17:50:16 localhost kernel: clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x1e330abbade, max_idle_ns: 440795251159 ns Sep 15 17:50:16 localhost kernel: clocksource: Switched to clocksource tsc So it looks like it is refined based on calibration, which we could do by preferring the linux estimation results over the arch (and lowering the rounding to 1MHz). Alternatively, maybe find a way to read the linux values or allow to set the value manually at init (as an eal param).
