Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp253046ybb; Thu, 19 Mar 2020 21:15:13 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvrEb52YO7GaTv6tbwjksJnFpMZXgvPGCefCugu3PE4r3zVuAQNxJI+8Yqrfs/6SHWKm5aP X-Received: by 2002:a9d:567:: with SMTP id 94mr4887908otw.201.1584677713103; Thu, 19 Mar 2020 21:15:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584677713; cv=none; d=google.com; s=arc-20160816; b=QjDQE7e53tne6Gl7XbnBPwExjrZsYSdaCGL8KEr6NrfHxBYwsJN7WX2YrtkTWPGX66 +4OqzicolkX2rLp2X1jrjlty14rXgGCTB07xzz6GYWBrht2q8uIw6PoHhETMMN+QNH/J YO4c9BBPAOFSLm5YcOQf+PIkX2POmoLcmKfMzlUA2xpPajZATuwoOa3VPGruuIQYsvHU 6c8+95M1YzY8cCe7P5zsknoua6XxZOFwf9Cbot5ERb2FghJ6WUrQbka0F6TP0a/qbuvW 5CqWJlTuEhFJQeD7Wd+ftqcBrpSy347BE+GCku/SQp6ky6jwzqUSYNsUK+pfxNqqJJSQ O/6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :ironport-sdr:ironport-sdr; bh=vY+/q6sdKEYV2DAriRXKibIhY11DFSLEAOfFrSKSjzE=; b=eNOo6CLmvwbWeAS8xonQ9ZD0P2yao9+ZsA2zqnUUF6gKupBS4rrkb/F9lM5UUmzD1i RU317eV5wEAD2tw8Uc9HiuIxQvJMIjqORv9kb8keD5fCKQKi6IrHyeWd5fxkNKNnFTGi RiEaKEhcIUKsJd6GlcRQ/SclbojNbT+7peB2ZFCTCo87Y0yVub08uxmbOb/anhnS5SJZ yKD+J3TAA7hc3cw0XZWOg/7xIYQ+sYDtmeSN6kMWjn2n7DeGaWXugfF4Pahl88obxbVQ us9egw5Z6Zz5PKueo0fGOfV9WDDxMZNFG643SZwD+7JZOeQxbb0dQHhl/hH1EZ88JjcS kuAw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t11si2251099oig.108.2020.03.19.21.15.00; Thu, 19 Mar 2020 21:15:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726878AbgCTENk (ORCPT + 99 others); Fri, 20 Mar 2020 00:13:40 -0400 Received: from mga05.intel.com ([192.55.52.43]:43744 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725883AbgCTENk (ORCPT ); Fri, 20 Mar 2020 00:13:40 -0400 IronPort-SDR: hgnp9zsyY4P543Fz98pSRroNCBHaBx0bn5gfkSAa+luUMY8L7Rl6mzxaT0fD0FSwXCGpFFoelJ 5j4khqtOo6bA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Mar 2020 21:13:40 -0700 IronPort-SDR: uxiOACeS7AKxwG4i39xyV7/w0YwwudVfRMUAkx5aOajcw2D7JckXPGHQ7UAWXlbPNbjXdSIt/C g8h6CdaAietQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,283,1580803200"; d="scan'208";a="280306857" Received: from kmp-skylake-client-platform.sc.intel.com ([172.25.112.108]) by fmsmga002.fm.intel.com with ESMTP; 19 Mar 2020 21:13:38 -0700 From: Kyung Min Park To: x86@kernel.org, linux-kernel@vger.kernel.org Cc: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, gregkh@linuxfoundation.org, ak@linux.intel.com, tony.luck@intel.com, ashok.raj@intel.com, ravi.v.shankar@intel.com, fenghua.yu@intel.com, kyung.min.park@intel.com Subject: [PATCH v2 0/2] x86/delay: Introduce TPAUSE instruction Date: Thu, 19 Mar 2020 21:13:22 -0700 Message-Id: <1584677604-32707-1-git-send-email-kyung.min.park@intel.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Intel processors that support the WAITPKG feature implement the TPAUSE instruction that suspends execution in a lower power state until the TSC (Time Stamp Counter) exceeds a certain value. Update the udelay() function to use TPAUSE on systems where it is available. Note that we hard code the deeper (C0.2) sleep state because exit latency is small compared to the "microseconds" that usleep() will delay. ChangeLog: - Change from v1 to v2: 1. The patchset applies after Thomas's cleanup patch as below: https://lkml.org/lkml/diff/2020/3/18/893/1 2. Change function/variable names as suggested by Thomas i.e. a. Change to delay_halt_fn/delay_halt_mwaitx/delay_halt_tpause from wait_func/mwaitx/tpause. b. Change variable name loops to cycles. c. Change back to the original name delay_fn from delay_platform. 3. Organize comments to use full width. 4. Add __ro_after_init for the function pointer delay_halt_fn. 5. Change patch titles as suggested by Thomas. Kyung Min Park (2): x86/delay: Refactor delay_mwaitx() for TPAUSE support x86/delay: Introduce TPAUSE delay arch/x86/include/asm/mwait.h | 17 ++++++++++ arch/x86/lib/delay.c | 75 +++++++++++++++++++++++++++++++++----------- 2 files changed, 73 insertions(+), 19 deletions(-) -- 2.7.4