Closed templexxx closed 4 years ago
More infos:
I think the Intel family in kernel is not that correctly. Skylake and other xeon scalable CPUs has the same sign, but the behavior of TSC frequency maybe different. (Skylake has issue, but others don't)
I can't just adjust TSC frequency by the sign.
My question on Intel community: https://community.intel.com/t5/Processors/About-crystal-frequency-slow-down-in-Xeon-non-skylake/m-p/1203891#M45745
New question in other forum(suggested by Intel member):
About detecting microarchitecture on Xeon Scalable: https://community.intel.com/t5/Software-Tuning-Performance/How-to-detect-microarchitecture-on-Xeon-Scalable/m-p/1205162#M7633
Have found new way to accurate the tsc frequency
Is this related to https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=b511203093489eb1829cb4de86e8214752205ac6 ?
Yes, actually the frequency listed by Intel manual is just a referrence. The real crystal frequency should be got by testing, and even with the same CPU family_id & sign_id & stepping_id, the frequency is quite different.
Anyway, I still provide frequency detection by CPU_ID in my other project: https://github.com/templexxx/cpu/blob/master/cpu_x86.go#L216-L257
Follow these steps, may help:
If ok, means tsc could work well at start time. If not ok, tsc should be disabled in INTEL_FAM6_SKYLAKE_X