lkml.org 
[lkml]   [2020]   [Mar]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[GIT pull] x86/timers for v5.7
Linus,

please pull the latest x86/timers branch from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-timers-2020-03-30

up to: fac01d11722c: x86/tsc_msr: Make MSR derived TSC frequency more accurate


x86 timer updates:

- A series of commits to make the MSR derived CPU and TSC frequency more
accurate.

It turned out that the frequency tables which have been taken from the
SDM are inaccurate because the SDM provides truncated and rounded
values, e.g. 83.3Mhz (83.3333...) or 116.7Mhz (116.6666...).

This causes time drift in the range of ~1 second per hour
(20-30 seconds per day). On some of these SoCs it's not possible to
recalibrate the TSC because there is no reference (PIT, HPET) available.

With some reverse engineering it was established that the possible
frequencies are derived from the base clock with fixed multiplier /
divider pairs.

For the CPU models which have a known crystal frequency the kernel now
uses multiplier / divider pairs which bring the frequencies closer to
reality and fix the observed time drift issues.

Thanks,

tglx

------------------>
Hans de Goede (3):
x86/tsc_msr: Use named struct initializers
x86/tsc_msr: Fix MSR_FSB_FREQ mask for Cherry Trail devices
x86/tsc_msr: Make MSR derived TSC frequency more accurate


arch/x86/kernel/tsc_msr.c | 128 ++++++++++++++++++++++++++++++++++++++++------
1 file changed, 112 insertions(+), 16 deletions(-)


\
 
 \ /
  Last update: 2020-03-30 16:51    [W:0.146 / U:0.420 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site