Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751836AbdFMCrt (ORCPT ); Mon, 12 Jun 2017 22:47:49 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:50249 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751589AbdFMCrs (ORCPT ); Mon, 12 Jun 2017 22:47:48 -0400 Reply-To: zhenzhong.duan@oracle.com Subject: Re: [PATCH] Calling check_system_tsc_reliable before unsynchronized_tsc To: Thomas Gleixner Cc: mingo@redhat.com, hpa@zytor.com, x86@kernel.org, LKML References: From: Zhenzhong Duan Organization: Oracle Message-ID: <3fbce128-1468-45f1-2f54-974132553177@oracle.com> Date: Tue, 13 Jun 2017 10:47:28 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=gbk; format=flowed Content-Transfer-Encoding: 8bit X-Source-IP: userv0022.oracle.com [156.151.31.74] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1199 Lines: 37 ?? 2017/6/13 0:03, Thomas Gleixner ะด??: > On Thu, 8 Jun 2017, Zhenzhong Duan wrote: > >> unsynchronized_tsc() checks value of tsc_clocksource_reliable which is set by >> check_system_tsc_reliable(). It's better to move check_system_tsc_reliable() >> at >> front, or else this check makes no sense. >> >> Though X86_FEATURE_CONSTANT_TSC is usually set for TSC reliable system, just >> in >> case. >> >> Signed-off-by: Zhenzhong Duan >> --- >> arch/x86/kernel/tsc.c | 4 ++-- >> 1 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c >> index 714dfba..a316bdd 100644 >> --- a/arch/x86/kernel/tsc.c >> +++ b/arch/x86/kernel/tsc.c >> @@ -1412,11 +1412,11 @@ void __init tsc_init(void) >> use_tsc_delay(); >> + check_system_tsc_reliable(); >> + >> if (unsynchronized_tsc()) >> mark_tsc_unstable("TSCs unsynchronized"); >> - check_system_tsc_reliable(); >> - > What kind of patch is that? Definitely nothing which can be applied. To avoid using unassigned variable tsc_clocksource_reliable. Or what's the purpose of if (tsc_clocksource_reliable) check in unsynchronized_tsc()? -- thanks zduan