Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1486434 > unrolled thread

[PATCH 2/2 v2] x86/tsc: Add additional Intel CPU models to crystal_khz whitelist

Started byPrarit Bhargava <prarit@redhat.com>
First post2016-09-19 15:00 +0200
Last post2016-09-20 01:10 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 2/2 v2] x86/tsc: Add additional Intel CPU models to crystal_khz whitelist Prarit Bhargava <prarit@redhat.com> - 2016-09-19 15:00 +0200
    [tip:x86/timers] x86/tsc: Add additional Intel CPU models to the  crystal quirk list tip-bot for Prarit Bhargava <tipbot@zytor.com> - 2016-09-20 01:10 +0200

#1486434 — [PATCH 2/2 v2] x86/tsc: Add additional Intel CPU models to crystal_khz whitelist

FromPrarit Bhargava <prarit@redhat.com>
Date2016-09-19 15:00 +0200
Subject[PATCH 2/2 v2] x86/tsc: Add additional Intel CPU models to crystal_khz whitelist
Message-ID<sj6kW-5ze-23@gated-at.bofh.it>
In commit aa297292d708 ("x86/tsc: Enumerate SKL cpu_khz and tsc_khz via
CPUID"), the kernel added support for Intel processors which had
a different CPU base-frequency and TSC frequency.

The turbostat utility has been updated with KBL and SKX processors,
and they should also be added to the crystal_khz white list.

For example, on INTEL_FAM6_KABYLAKE_MOBILE native_calibrate_tsc() returns 0 MHz
for tsc_khz and after this patch native_calibrate_tsc() returns 1608 MHz.

v2: peterz, fix typo for SKX should be 25000

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org
Cc: Rafael Aquini <aquini@redhat.com>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Len Brown <len.brown@intel.com>
Cc: lenb@kernel.org
---
 arch/x86/kernel/tsc.c |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 2344758ba8a3..cd0c9ece25de 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -689,11 +689,18 @@ unsigned long native_calibrate_tsc(void)
 		switch (boot_cpu_data.x86_model) {
 		case INTEL_FAM6_SKYLAKE_MOBILE:
 		case INTEL_FAM6_SKYLAKE_DESKTOP:
+		case INTEL_FAM6_KABYLAKE_MOBILE:
+		case INTEL_FAM6_KABYLAKE_DESKTOP:
 			crystal_khz = 24000;	/* 24.0 MHz */
 			break;
+		case INTEL_FAM6_SKYLAKE_X:
+			crystal_khz = 25000;	/* 25.0 MHz */
+			break;
 		case INTEL_FAM6_ATOM_GOLDMONT:
 			crystal_khz = 19200;	/* 19.2 MHz */
 			break;
+		default:
+			crystal_khz = 0;
 		}
 	}
 
-- 
1.7.9.3

[toc] | [next] | [standalone]


#1486938 — [tip:x86/timers] x86/tsc: Add additional Intel CPU models to the crystal quirk list

Fromtip-bot for Prarit Bhargava <tipbot@zytor.com>
Date2016-09-20 01:10 +0200
Subject[tip:x86/timers] x86/tsc: Add additional Intel CPU models to the crystal quirk list
Message-ID<sjfRf-3tA-1@gated-at.bofh.it>
In reply to#1486434
Commit-ID:  6baf3d61821f5b38f27b4e9f044ad4d1e8f3d14f
Gitweb:     http://git.kernel.org/tip/6baf3d61821f5b38f27b4e9f044ad4d1e8f3d14f
Author:     Prarit Bhargava <prarit@redhat.com>
AuthorDate: Mon, 19 Sep 2016 08:51:41 -0400
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Tue, 20 Sep 2016 01:00:32 +0200

x86/tsc: Add additional Intel CPU models to the crystal quirk list

commit aa297292d708 ("x86/tsc: Enumerate SKL cpu_khz and tsc_khz via
CPUID") added code to retrieve the crystal and TSC frequency from CPUID
leaves. If the crystal freqency is enumerated as 0,the resulting TSC
frequency is 0 as well. For CPUs with a known fixed crystal frequency a
quirk list is available to set the frequency,

Kabylake and SkylakeX CPUs are missing in the list of CPUs which need this
quirk. Add them so the TSC frequency can be calculated correctly.

[ tglx: Removed the silly default case as the switch() is only invoked when
  	cpu_khz is 0. Massaged changelog. ]

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Len Brown <len.brown@intel.com>
Cc: Rafael Aquini <aquini@redhat.com>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Andy Lutomirski <luto@kernel.org>
Link: http://lkml.kernel.org/r/1474289501-31717-3-git-send-email-prarit@redhat.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

---
 arch/x86/kernel/tsc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 2344758..46b2f41 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -689,8 +689,13 @@ unsigned long native_calibrate_tsc(void)
 		switch (boot_cpu_data.x86_model) {
 		case INTEL_FAM6_SKYLAKE_MOBILE:
 		case INTEL_FAM6_SKYLAKE_DESKTOP:
+		case INTEL_FAM6_KABYLAKE_MOBILE:
+		case INTEL_FAM6_KABYLAKE_DESKTOP:
 			crystal_khz = 24000;	/* 24.0 MHz */
 			break;
+		case INTEL_FAM6_SKYLAKE_X:
+			crystal_khz = 25000;	/* 25.0 MHz */
+			break;
 		case INTEL_FAM6_ATOM_GOLDMONT:
 			crystal_khz = 19200;	/* 19.2 MHz */
 			break;

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web