Received: by 10.223.176.46 with SMTP id f43csp2696296wra; Mon, 22 Jan 2018 01:47:26 -0800 (PST) X-Google-Smtp-Source: AH8x226puybHccI7f4t83zl/H9wpp5hVwB+keGhoXcH9GgoaAs1X+nvj3cvuJr/Ta44i4LPuT5Zg X-Received: by 2002:a17:902:2bc1:: with SMTP id l59-v6mr3109502plb.396.1516614446134; Mon, 22 Jan 2018 01:47:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516614446; cv=none; d=google.com; s=arc-20160816; b=SFAkQqEiEuI0eOWE+k3bxL+8P+f9Lt6B9Dub5/3XdSVIYM6ZYUP03yqefT38hF4SXa lnQdCaZGatavsdl6HK/CAp9nmAvxkydpV9tQHrq5gV625D0uWXsZkX4J0viTfbb1V9Dp bOYzSab1gMSSqv4dh7eEpnvuQOnHdk+Ei0zQ5PVNJo1tV6MiQeN92eSrewBSs/0R7XfI lC/v5rFVEKgj6m4f5mXt4cCE5g+GT3bXC/G7j1ckIzbCAanzDceqezhj/mp0waA9P9fj 4mrX8+vY7PmUjqMhuXr9GqPR48V3w+tsgjpE/9tvOvHyqThZcD79Q4bnYnjB+qdKKqCA rVZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=UD4H1liP1AfOhCjtjGTl1HuQinR/qH6hwllfj9dj48g=; b=0RKasXfyryje/pK+REkvAoLLfyQitIO82ZqXFxQUm8WY64SsNzxMXNKGKPBgbTWGCW c/j2s2kmaSb6xZuOtQwcmXc1LGSbDqnvsGyjtd63CHXuhZw+0LW0XMvEMZtjQAtjwG9J OWS4fh1tce27ParaK0XthfTxOJoOtM7/wCDg1mc1lpgY9Ml3tuOHtxqivySTOHPyHmwv xNkFrZzoghhXGUH8LjnvO6fC3tctE+ycRinhbacptKXfK0sHc+0LXVS+fcNusHP/q+k6 sjGcxpBH0w24RxnTM8xzAdgTpC3nvucz69j61VFiwV6h/6xJk3pPbD3GSG5nP0WnQ+Nh gQWw== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g2si13800667pgu.30.2018.01.22.01.47.11; Mon, 22 Jan 2018 01:47:26 -0800 (PST) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751500AbeAVJqV (ORCPT + 99 others); Mon, 22 Jan 2018 04:46:21 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:58476 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751354AbeAVIlZ (ORCPT ); Mon, 22 Jan 2018 03:41:25 -0500 Received: from localhost (LFbn-1-12258-90.w90-92.abo.wanadoo.fr [90.92.71.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 0AFA1EB3; Mon, 22 Jan 2018 08:41:24 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Tom Lendacky , Thomas Gleixner , "Reviewed-by: Borislav Petkov" , Peter Zijlstra , Tim Chen , Dave Hansen , Borislav Petkov , Dan Williams , Linus Torvalds , David Woodhouse , Paul Turner , Razvan Ghitulete , Greg Kroah-Hartman Subject: [PATCH 4.4 02/53] x86/cpu/AMD: Make LFENCE a serializing instruction Date: Mon, 22 Jan 2018 09:39:54 +0100 Message-Id: <20180122083910.411590683@linuxfoundation.org> X-Mailer: git-send-email 2.16.0 In-Reply-To: <20180122083910.299610926@linuxfoundation.org> References: <20180122083910.299610926@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Tom Lendacky commit e4d0e84e490790798691aaa0f2e598637f1867ec upstream. To aid in speculation control, make LFENCE a serializing instruction since it has less overhead than MFENCE. This is done by setting bit 1 of MSR 0xc0011029 (DE_CFG). Some families that support LFENCE do not have this MSR. For these families, the LFENCE instruction is already serializing. Signed-off-by: Tom Lendacky Signed-off-by: Thomas Gleixner Reviewed-by: Reviewed-by: Borislav Petkov Cc: Peter Zijlstra Cc: Tim Chen Cc: Dave Hansen Cc: Borislav Petkov Cc: Dan Williams Cc: Linus Torvalds Cc: Greg Kroah-Hartman Cc: David Woodhouse Cc: Paul Turner Link: https://lkml.kernel.org/r/20180108220921.12580.71694.stgit@tlendack-t1.amdoffice.net Signed-off-by: Razvan Ghitulete Signed-off-by: Greg Kroah-Hartman --- arch/x86/include/asm/msr-index.h | 2 ++ arch/x86/kernel/cpu/amd.c | 10 ++++++++++ 2 files changed, 12 insertions(+) --- a/arch/x86/include/asm/msr-index.h +++ b/arch/x86/include/asm/msr-index.h @@ -330,6 +330,8 @@ #define FAM10H_MMIO_CONF_BASE_MASK 0xfffffffULL #define FAM10H_MMIO_CONF_BASE_SHIFT 20 #define MSR_FAM10H_NODE_ID 0xc001100c +#define MSR_F10H_DECFG 0xc0011029 +#define MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT 1 /* K8 MSRs */ #define MSR_K8_TOP_MEM1 0xc001001a --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -746,6 +746,16 @@ static void init_amd(struct cpuinfo_x86 set_cpu_cap(c, X86_FEATURE_K8); if (cpu_has_xmm2) { + /* + * A serializing LFENCE has less overhead than MFENCE, so + * use it for execution serialization. On families which + * don't have that MSR, LFENCE is already serializing. + * msr_set_bit() uses the safe accessors, too, even if the MSR + * is not present. + */ + msr_set_bit(MSR_F10H_DECFG, + MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT); + /* MFENCE stops RDTSC speculation */ set_cpu_cap(c, X86_FEATURE_MFENCE_RDTSC); }