Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp777106ybg; Wed, 10 Jun 2020 13:28:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwTqfxWQSE8XW/KYsLRTyWS1fh0QLh3xxfeMs6L1CVcyzCPekL8BCyRrfFXp2j73V8pCBEF X-Received: by 2002:a17:906:2e55:: with SMTP id r21mr4961245eji.338.1591820884829; Wed, 10 Jun 2020 13:28:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591820884; cv=none; d=google.com; s=arc-20160816; b=RxCKTliHvyaFrEDJPVdNcmXKy8FcGXizSFULZGkmIzEB0Xh9Tp19XoC8eMdSDPYlEo kMlcooPzXCPJxpd3PX5Ux0MdwyaYXz9ImkVm6WoMZa+ePBTnA4CngPFdxSORxhS9OTpM H0JSa/LS5VuJNyHUHyUKX/zikfw2T7ZN3FAAcmOZa4a12m+TQQAZvkPG8dfMiH6UoKEJ tuVqGOURkT7o23lTcKKQ7+hQlkbmpk4rZbX+2WPmMM4in4AFtWT4INOo+2RGcg54xvCn lT03Hw2XA36N9WnuTSIz6dqusxzQYNbZ+pgAN9WtY3u4qdmP8bGC3dqv8FqF0i/Pj5Yk mf8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:ironport-sdr:ironport-sdr; bh=aHA4IfxT/Hk0zCeagCjTtEC1sXUHpT0XvmRrjhZdzNQ=; b=zOkvOpvoS2CpEEayDeMC6NpXsk3Dgjm8xtw6IvvQAD4sWAGVlEGQ7+2ElMqbzsY5AC NJSQLs08u9rq2vyBNAp28yRwEmFVv3skA+RADT0xKugO+7hodMsvZKzqgi10c0UCboRu AOygivN1fsYTzGC+EMMly7kzCsPIDnd2wdRssn6aCwuous4pcvCEZjxKqV7mr5yKDQWw lJzOe9ZSsaj2FYoN+RBYifw+yiT8x3mwibTr15fWPZhzN3DKrpv49Bg05OAUTr0gK1s9 1fMV7RfAWsr1jgB/Z/IRa39FIdQrx7T/usGfzc8LMQzawbXt/Lcbf1C2CnzmkObNcJDE nf1Q== 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 n22si403325edy.377.2020.06.10.13.27.41; Wed, 10 Jun 2020 13:28:04 -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 S1728063AbgFJUV5 (ORCPT + 99 others); Wed, 10 Jun 2020 16:21:57 -0400 Received: from mga18.intel.com ([134.134.136.126]:53249 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727783AbgFJUVv (ORCPT ); Wed, 10 Jun 2020 16:21:51 -0400 IronPort-SDR: GrPLv8PZTtIDDB1GDzNZNyg2C8UNjBiKRFhP41uHf3YmyXcNrN1TX1JJfhSl1UJUyFNBfY1El0 AsNuzSBwB0kA== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2020 13:21:50 -0700 IronPort-SDR: 8lcjdtOHx4dqpqZ/3uWvLYf1TFhhxR1o5go7qMZglqwrXPXTpgcGfMkJruNB5BqLyBesVLkUgW O3SU+EVnFaXQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,497,1583222400"; d="scan'208";a="380178483" Received: from km-skylake-client-platform.sc.intel.com ([10.3.52.141]) by fmsmga001.fm.intel.com with ESMTP; 10 Jun 2020 13:21:50 -0700 From: Kyung Min Park To: x86@kernel.org, linux-kernel@vger.kernel.org Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, hpa@zytor.com, gregkh@linuxfoundation.org, ak@linux.intel.com, dave.hansen@intel.com, tony.luck@intel.com, ravi.v.shankar@intel.com, ricardo.neri@intel.com, Ricardo Neri Subject: [RFC PATCH 2/3] x86/cpufeatures: Add enumeration for SERIALIZE instruction Date: Wed, 10 Jun 2020 13:07:00 -0700 Message-Id: <20200610200701.16757-3-kyung.min.park@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200610200701.16757-1-kyung.min.park@intel.com> References: <20200610200701.16757-1-kyung.min.park@intel.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ricardo Neri This instruction gives software a way to force the processor to complete all modifications to flags, registers and memory from previous instructions and drain all buffered writes to memory before the next instruction is fetched and executed. The same effect can be obtained using the cpuid instruction. However, cpuid causes modification on the eax, ebx, ecx, and ecx regiters; it also causes a VM exit. A processor supports SERIALIZE instruction if CPUID.0x0x.0x0:EDX[14] is present. The CPU feature flag is shown as "serialize" in /proc/cpuinfo. Detailed information on the instructions and CPUID feature flag SERIALIZE can be found in the latest Intel Architecture Instruction Set Extensions and Future Features Programming Reference and Intel 64 and IA-32 Architectures Software Developer's Manual. Signed-off-by: Ricardo Neri --- arch/x86/include/asm/cpufeatures.h | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h index db189945e9b0..cd9b1ec022ec 100644 --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -364,6 +364,7 @@ #define X86_FEATURE_AVX512_VP2INTERSECT (18*32+ 8) /* AVX-512 Intersect for D/Q */ #define X86_FEATURE_MD_CLEAR (18*32+10) /* VERW clears CPU buffers */ #define X86_FEATURE_TSX_FORCE_ABORT (18*32+13) /* "" TSX_FORCE_ABORT */ +#define X86_FEATURE_SERIALIZE (18*32+14) /* SERIALIZE instruction */ #define X86_FEATURE_PCONFIG (18*32+18) /* Intel PCONFIG */ #define X86_FEATURE_SPEC_CTRL (18*32+26) /* "" Speculation Control (IBRS + IBPB) */ #define X86_FEATURE_INTEL_STIBP (18*32+27) /* "" Single Thread Indirect Branch Predictors */ -- 2.17.1