Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp5293612pxj; Wed, 9 Jun 2021 14:00:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwlP7veDz1XsSYZjpBedmDUj9Hd9aAS9HXxBsRhSy12t901AvIHeRYvrYqdQIesqvV65ULA X-Received: by 2002:a05:6402:612:: with SMTP id n18mr1223288edv.83.1623272424196; Wed, 09 Jun 2021 14:00:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623272424; cv=none; d=google.com; s=arc-20160816; b=loTvlaLefjjWAetgipu4fUi3AsepZrWZg76h91E4eglBYmk7PSAaICvO8Tn7kXxXAo Idofg353uDFJxsb6eebjAZE2B1oNuPvGpisCOEOxbwK41QEefQUXBbYNQEWs+pdZtTCT 3jmld7T52t2DR0nog5W7BNhIUBQWFAQVfZr5JyQw3O0klP0WUkBUUVcgR2o7l8RoQrtE HYwkwJ1r3+UpEZtBWQ8gDHJ32MiILXfx8teD+25Sli5SEiJPQW1/lbhHvStQwORs60sz n+Na46v/D9PFN8cH1dTspHvshT/HDJehEYqGrmCrIutLnCtDX30GuDu/5y0dlRfuu1w5 ++7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:ironport-sdr:ironport-sdr; bh=DBh61s6pRYrHy07E3TbJAWGL4lqzYelqqMDO7q2J2dk=; b=S9rIm3vr6D7fmUhzwRXC4H1Od54trA7zVcv248Xhz1VvgQymrz7b3qr63LLpmfUgO8 2srO9I1/neWPpnNHmm4Rvo8JwNCBjRGnPmvaODQSimSffPtkxAiaigsKCBnAGr7P5HTY sT2snAX6pRw/Ad3BGX8PWRhgVVt+VipbYlKgsogRynTywGV3e3ObO240u4d2H5lIqjH7 WHfikHkc5edn5KN+napcHmdzH9WnukmZGbUOQqovq7bx+ACxki5lJeVR4bHJEwFeJ1UD dVIfuAbgd1vVPi5AY/Ahn+4V4rCC7xLmrxnvJ2WIRiP0M+Tsip8TdUhFnjyzI5BLYXAb sXUA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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. [23.128.96.18]) by mx.google.com with ESMTP id 12si606518ejh.440.2021.06.09.14.00.00; Wed, 09 Jun 2021 14:00:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 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 S229989AbhFIU7t (ORCPT + 99 others); Wed, 9 Jun 2021 16:59:49 -0400 Received: from mga17.intel.com ([192.55.52.151]:14815 "EHLO mga17.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229527AbhFIU7s (ORCPT ); Wed, 9 Jun 2021 16:59:48 -0400 IronPort-SDR: 6ydu3P3hPy0oT3q+jLREh5j+5h7y/XLDE7VTemW17ulODucX5t5STVJ2VAwWYjfyAaXareu0JY jmMwrrbjDnhg== X-IronPort-AV: E=McAfee;i="6200,9189,10010"; a="185542152" X-IronPort-AV: E=Sophos;i="5.83,261,1616482800"; d="scan'208";a="185542152" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Jun 2021 13:57:53 -0700 IronPort-SDR: KOYjnwz2ThP2BC9vguBfhsThpjHf3oL8iNuFmUDeF/6N9D8ypthDqaM3Z9BkNGQ7Fy/7INUVz3 XIIZQ43OA5Cw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,261,1616482800"; d="scan'208";a="552108450" Received: from gupta-dev2.jf.intel.com (HELO gupta-dev2.localdomain) ([10.54.74.119]) by orsmga004.jf.intel.com with ESMTP; 09 Jun 2021 13:57:53 -0700 Date: Wed, 9 Jun 2021 13:58:02 -0700 From: Pawan Gupta To: Thomas Gleixner , Borislav Petkov Cc: Jonathan Corbet , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , x86@kernel.org, "H. Peter Anvin" , "Paul E. McKenney" , Randy Dunlap , Andrew Morton , "Maciej W. Rozycki" , Viresh Kumar , Vlastimil Babka , Tony Luck , Paolo Bonzini , Sean Christopherson , Kyung Min Park , Fenghua Yu , Ricardo Neri , Tom Lendacky , Juergen Gross , Krish Sadhukhan , Kan Liang , Joerg Roedel , Victor Ding , Srinivas Pandruvada , Pawan Gupta , Brijesh Singh , Dave Hansen , Mike Rapoport , Anthony Steinhauser , Anand K Mistry , Andi Kleen , Miguel Ojeda , Nick Desaulniers , Joe Perches , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org Subject: [PATCH 1/4] x86/msr: Define new bits in TSX_FORCE_ABORT MSR Message-ID: <4a258368e1797d592d4b16f124bd88cf9c21ac35.1623272033.git-series.pawan.kumar.gupta@linux.intel.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Intel client processors that support IA32_TSX_FORCE_ABORT MSR related to perf counter interaction [1] received a microcode update that deprecates Transactional Synchronization Extension (TSX) feature. MSR IA32_TSX_FORCE_ABORT bit FORCE_ABORT_RTM now defaults to 1, writes to this bit are ignored. A new bit TSX_CPUID_CLEAR clears the TSX related CPUID bits. Below is the summary of changes to IA32_TSX_FORCE_ABORT MSR: Bit 0: FORCE_ABORT_RTM (legacy bit, new default=1) Status bit that indicates if RTM transactions are always aborted. This bit is essentially !SDV_ENABLE_RTM(Bit 2). Writes to this bit are ignored. Bit 1: TSX_CPUID_CLEAR (new bit, default=0) When set, CPUID.HLE = 0 and CPUID.RTM = 0. Bit 2: SDV_ENABLE_RTM (new bit, default=0) When clear, XBEGIN will always abort with EAX code 0. When set, XBEGIN will not be forced to abort (but will always abort in SGX enclaves). This bit is intended to be SDV-only. If this bit is set transactional atomicity correctness is not certain. Performance monitoring counter 3 is usable in all cases, regardless of the value of above bits. A new CPUID bit CPUID.RTM_ALWAYS_ABORT (CPUID 7.EDX[11]) is added to indicate the status of always abort behavior. Define these new CPUID and MSR bits. [1] Performance Monitoring Impact of IntelĀ® Transactional Synchronization Extension Memory http://cdrdv2.intel.com/v1/dl/getContent/604224 Signed-off-by: Pawan Gupta Reviewed-by: Andi Kleen Reviewed-by: Tony Luck Tested-by: Neelima Krishnan --- arch/x86/include/asm/cpufeatures.h | 1 + arch/x86/include/asm/msr-index.h | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h index ac37830ae941..21c1855b5c14 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -378,6 +378,7 @@ #define X86_FEATURE_AVX512_VP2INTERSECT (18*32+ 8) /* AVX-512 Intersect for D/Q */ #define X86_FEATURE_SRBDS_CTRL (18*32+ 9) /* "" SRBDS mitigation MSR available */ #define X86_FEATURE_MD_CLEAR (18*32+10) /* VERW clears CPU buffers */ +#define X86_FEATURE_RTM_ALWAYS_ABORT (18*32+11) /* "" RTM transaction always aborts */ #define X86_FEATURE_TSX_FORCE_ABORT (18*32+13) /* "" TSX_FORCE_ABORT */ #define X86_FEATURE_SERIALIZE (18*32+14) /* SERIALIZE instruction */ #define X86_FEATURE_HYBRID_CPU (18*32+15) /* "" This part has CPUs of more than one type */ diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h index 211ba3375ee9..a7c413432b33 100644 --- a/arch/x86/include/asm/msr-index.h +++ b/arch/x86/include/asm/msr-index.h @@ -772,6 +772,10 @@ #define MSR_TFA_RTM_FORCE_ABORT_BIT 0 #define MSR_TFA_RTM_FORCE_ABORT BIT_ULL(MSR_TFA_RTM_FORCE_ABORT_BIT) +#define MSR_TFA_TSX_CPUID_CLEAR_BIT 1 +#define MSR_TFA_TSX_CPUID_CLEAR BIT_ULL(MSR_TFA_TSX_CPUID_CLEAR_BIT) +#define MSR_TFA_SDV_ENABLE_RTM_BIT 2 +#define MSR_TFA_SDV_ENABLE_RTM BIT_ULL(MSR_TFA_SDV_ENABLE_RTM_BIT) /* P4/Xeon+ specific */ #define MSR_IA32_MCG_EAX 0x00000180 -- git-series 0.9.1