Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp968039pxp; Wed, 16 Mar 2022 22:58:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx/pApkT+x0E5UYMxFC5QPUVPk3nVNMrvtXj/F0zKDLHORy42meHe5i6/hsUtmPv5ehY6dC X-Received: by 2002:a17:902:e9d4:b0:153:bd06:859c with SMTP id 20-20020a170902e9d400b00153bd06859cmr3029615plk.8.1647496689037; Wed, 16 Mar 2022 22:58:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647496689; cv=none; d=google.com; s=arc-20160816; b=rPtd1mmSa/A/EGHcntbI4F+3wDZR9Cpd0TrTLI0lElCjg9kYYvd5VWZKK0F6c81dje 9/Vjanxw9sGZHdo8fH9569OM1zylBtvewQtpmede5358YHD9dceqhZGtHI9odAXeNZxm 2MNsIGaj08sd8blFIWBGWXBrTrHwsMnZ3qmoayyBsVKGW5EA0Luf56NUvEiAMNQ9TTq+ gC7VYiGjEilcvDDeFcLcOWB2y3MBQKRyBAmeLkU/JzEtOmt+KgSvpYA7p5mInAUWdBhs UuXQZt59uwTaF77MDq9nl2xdIsD6rCz9ght/6jmyzbO1gS+Rv53mCoA14FJ/qDIB2srY TtMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=fJ6w/h9IQS83uNAzPXSeVXDkLSEU7B4Oh5HlrNQNuVw=; b=LX2z/y95OUxiBma6QaWkpndIGYhnysnDSVWGXxIkQdqm35swIkcUD50vkYL9URHM3K BenfmVyRQNRo8G3E0CAGZ2UE1larLzUH5JVwsz7q5H/3cjhNp+aimykAHzjS61Wk8a6Y Zjsaybq4/oVIS17n8/L5bW8EzDXg8TzKPpV27XnB/4VJEeY81eJWMMIwI6K6ohEx4YUU cg23srrk+KJktOB+G/stZAL2ryszFUzhNIuitLaYx9Pn1YCMNenPvDb0AXHBl7/Ytp+C 76R+iKQOrsKU7Ch9ts1A05fsrhOaiRoihKD6/Emt0Nbyw/ykxPT688ilXrYjRw1wnXnN dB1A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=ZETSZTGb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id k3-20020a17090a404300b001bf3623d4f5si6598271pjg.50.2022.03.16.22.58.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Mar 2022 22:58:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=ZETSZTGb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E22BF1B53BF; Wed, 16 Mar 2022 21:53:50 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244438AbiCNTsc (ORCPT + 99 others); Mon, 14 Mar 2022 15:48:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49176 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244454AbiCNTsZ (ORCPT ); Mon, 14 Mar 2022 15:48:25 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 8DED23E5CC for ; Mon, 14 Mar 2022 12:47:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1647287232; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=fJ6w/h9IQS83uNAzPXSeVXDkLSEU7B4Oh5HlrNQNuVw=; b=ZETSZTGbyycC2cZN6ImJtzEtdBz0bJbAcqTdZUY2FQF9Pa9Cfu3f0Qn3W31T8McECCPWTM LKLW4ughnQ+oquzkXJk63+HDGIt1ZZjZLhKYH9veI36RfSAroVyZNFmDZtE4reIhm5pHy4 R0QrRY17wA6+3+BR15nLB7vIx0FWMl4= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-629-aF2uSoLfPdC-1I_LGOoPaA-1; Mon, 14 Mar 2022 15:47:09 -0400 X-MC-Unique: aF2uSoLfPdC-1I_LGOoPaA-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8E9E8801585; Mon, 14 Mar 2022 19:47:08 +0000 (UTC) Received: from llong.com (unknown [10.22.16.213]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9A9C6400E43A; Mon, 14 Mar 2022 19:47:07 +0000 (UTC) From: Waiman Long To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen Cc: x86@kernel.org, linux-kernel@vger.kernel.org, "H. Peter Anvin" , Feng Tang , Bill Gray , Jirka Hladky , Waiman Long Subject: [PATCH 0/2] x86/tsc: Avoid TSC sync failure Date: Mon, 14 Mar 2022 15:46:28 -0400 Message-Id: <20220314194630.1726542-1-longman@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-Spam-Status: No, score=-3.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When booting a kernel on some Intel CooperLake systems, it was found that the initial TSC sync at boot up may sometime fail leading to a fallback to HPET as the system clock instead with some performance degradation. For example [ 0.034090] TSC deadline timer available [ 0.008807] TSC ADJUST compensate: CPU36 observed 95626 warp. Adjust: 95626 [ 0.008807] TSC ADJUST compensate: CPU36 observed 74 warp. Adjust: 95700 [ 0.974281] TSC synchronization [CPU#0 -> CPU#36]: [ 0.974281] Measured 4 cycles TSC warp between CPUs, turning off TSC clock. [ 0.974281] tsc: Marking TSC unstable due to check_tsc_sync_source failed This patch set tries to minimize these type of failures by 1) Put all the TSC synchronization variables in their own cacheline to minimize external interference. 2) Try to estimate the synchronization overhead and add it to the adjustment value. With these changes in place, only one TSC adjustment was observed for each of the affected cpus with no failure. Waiman Long (2): x86/tsc: Reduce external interference on max_warp detection x86/tsc_sync: Add synchronization overhead to tsc adjustment arch/x86/kernel/tsc_sync.c | 84 ++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 36 deletions(-) -- 2.27.0