Processors
Intel® Processors, Tools, and Utilities
14395 Discussions

i7-7820X, bad TSC frequency on Linux (3,60 GHz vs 3,75 GHz)

IG
Beginner
1,877 Views

Hello,

I'm having a serious problem with this CPU on Linux. This problem affects many things, making the system almost unusable.

It's "time stretching", which makes time intervals proportionally bigger if the TSC is used as a clocksource.

For example, 60 sec becomes ~62,5 secs, I confirmed this with a physical stop-watch to be absolutely sure.

Kernel version is 4.10 (Ubuntu 16.04.3 LTS), using newest kernel doesn't change a thing.

I tried clocksource=hpet kernel cmdline option as the main workaround, and other options ("lapic=notscdeadline tsc=noirqtime notsc") which are supposed to reduce TSC usage.

With HPET clocksource, clocks work seemingly normal, system works much better.

I also measured TSC frequency.

In the first (bad) case, TSC frequency is assumed by the kernel to be 3,75 GHz.

In the second case (HPET), measuring TSC gives a hint that its frequency is, in fact, 3,6 GHz.

Note that 3,75 / 3,6 relation is equal to 62,5 / 60.

I took a look at Linux kernel sources, particularly at the code which provides TSC frequency for modern CPUs.

https://github.com/torvalds/linux/blob/3c073991eb417b6f785ddc6afbbdc369eb84aa6a/arch/x86/kernel/tsc.c# L605 linux/tsc.c at 3c073991eb417b6f785ddc6afbbdc369eb84aa6a · torvalds/linux · GitHub

This code uses different Crystal Hz values for Skylake Desktop (24000) and Skylake X (25000).

25000 / 24000 is again equal to 3,75 / 3,6.

Modifying this value in kernel also helps, the system works much better with clocksource=tsc.

I'm totally unsure, either CPUID values are invalid for 7820X, or Linux kernel simply doesn't support this CPU yet?

Thanks in advance.

0 Kudos
3 Replies
idata
Employee
536 Views

Hello cat01101,

Thank you for joining the Processors Community. I am sorry to hear you are having issues with this processor.

This matter could be potentially related to compatibility between the microcode and the Linux distribution build you are using. Our suggestion based on this is to install the latest BIOS from your computer manufacturer and to check with Linux support for more information.

Regards,

Amy C.

0 Kudos
IG
Beginner
536 Views

I'm using recent microcode (revision 0x2000035, date = 2017-10-17), it doesn't fix the problem.

There are no BIOS updates for my MB yet. If not microcode, what else could new BIOS bring regarding this issue?

0 Kudos
idata
Employee
536 Views

In that case you will need to double check it with your computer manufacturer, since they provide the BIOS could comment on this.

Regards,

Amy C.

0 Kudos
Reply