Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756535AbeAHKkw (ORCPT + 1 other); Mon, 8 Jan 2018 05:40:52 -0500 Received: from smtp.eu.citrix.com ([185.25.65.24]:42898 "EHLO SMTP.EU.CITRIX.COM" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755247AbeAHKku (ORCPT ); Mon, 8 Jan 2018 05:40:50 -0500 X-IronPort-AV: E=Sophos;i="5.46,330,1511827200"; d="scan'208";a="65727804" X-DWL: YES Subject: Re: [tip:x86/pti] x86/cpu/AMD: Use LFENCE_RDTSC instead of MFENCE_RDTSC To: Thomas Gleixner , , , , , , , , , , , , CC: References: <20180105160756.23786.4220.stgit@tlendack-t1.amdoffice.net> From: Andrew Cooper Message-ID: <1b179b8b-6cc8-d736-81dc-2445be4baf02@citrix.com> Date: Mon, 8 Jan 2018 10:40:48 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Content-Language: en-GB X-ClientProxiedBy: AMSPEX02CAS01.citrite.net (10.69.22.112) To AMSPEX02CL02.citrite.net (10.69.22.126) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On 08/01/18 10:08, Thomas Gleixner wrote: > On Sat, 6 Jan 2018, tip-bot for Tom Lendacky wrote: > >> Commit-ID: 0bf17c102177d5da9363bf8b1e4704b9996d5079 >> Gitweb: https://git.kernel.org/tip/0bf17c102177d5da9363bf8b1e4704b9996d5079 >> Author: Tom Lendacky >> AuthorDate: Fri, 5 Jan 2018 10:07:56 -0600 >> Committer: Thomas Gleixner >> CommitDate: Sat, 6 Jan 2018 21:57:40 +0100 >> >> x86/cpu/AMD: Use LFENCE_RDTSC instead of MFENCE_RDTSC >> >> With LFENCE now a serializing instruction, set the LFENCE_RDTSC >> feature since the LFENCE instruction has less overhead than the >> MFENCE instruction. > Second thoughts on that. As pointed out by someone in one of the insane > long threads: > > What happens if the kernel runs as a guest and > > - the hypervisor did not set the LFENCE to serializing on the host > > - the hypervisor does not allow writing MSR_AMD64_DE_CFG > > That would bring the guest into a pretty bad state or am I missing > something essential here? What I did in Xen was to attempt to set it, then read it back and see.  If LFENCE still isn't serialising, using repoline is the only available mitigation. My understanding from the folk at AMD is that retpoline is safe to use, but has higher overhead than the LFENCE approach. ~Andrew