Received: by 2002:a05:6358:f14:b0:e5:3b68:ec04 with SMTP id b20csp1077504rwj; Fri, 23 Dec 2022 12:14:37 -0800 (PST) X-Google-Smtp-Source: AMrXdXsZ5KTohFyePlxtR7psildgPJCJi/EK9+7YaVftdUSKifKm2WINGROMS/xetYQz+xhzMCHU X-Received: by 2002:a17:906:7046:b0:7ae:8194:7e06 with SMTP id r6-20020a170906704600b007ae81947e06mr9499363ejj.56.1671826476901; Fri, 23 Dec 2022 12:14:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671826476; cv=none; d=google.com; s=arc-20160816; b=bdVX27D+5xIagCbpcjQVhKXxhzAe5SHnA027uUX1m33HVwEzAcldMztLw0NaPX8K7G H0oFx7nQgAZLRAKws9TNL1KXUPWFWA0PqYpWrR1zvsEomwpFQZGe/ws/J8Yzdg0O2KTo 47sFiColc0QU55Cku5+MdiE/x5NFcPPks/3T1QAUlMaK8+Z9+ZfN/H0hu01QF8+cYg2O JEqW4NUzdrUeeKzD+u2D+R38y3M9taOgoLSgCAN6slXDrlaAmnRXaR0yJ63N62pqG4TE RmLsWPjY1/0+g4s8lNndpm1GlJ3zBbsVgdunn1TcxA1yKgoRiuiRNbr1IVvfVOUlPmf3 A7ZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:references:in-reply-to:user-agent:subject:cc:to:from :date:dkim-signature:dkim-filter; bh=6InhouiQkFuN92U4rKDip7N9T/oVeeUpKZew3FNxOHo=; b=Z9Y4R7+el+zwKUsU6lIyTJcKeCg5/S6Ocjl4SdgaDdGy0M1aS9cPaqQrQoSynfevMB wlDfxXkshs17zCW6eNjrMQ0gAGUxP5UI2993VssQ6C18c7d47UDr/Z9+32rjLnFLyVCF sC4+tFyJxOe2YPrU/WfuyX03ulwG6UB7wCQ4f39CHCdqxPm62R+jBa4eic/3eHZcMNZy 2S3Tm0yIowLM4XWT/fhnOstDJLflSF5ZMU4Gz9nlhq+zKwoAfYC9M45RZ5nijz77+t+C l3d4GFXOpNHcqHcqJQBoAqRnY3suGuxtNpRxW/HVtG5HseeP5Vg8bw9Z+fsl7YLutz3F xQ3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@zytor.com header.s=2022120601 header.b=HcYyEgJA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zytor.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id xd1-20020a170907078100b007d7c0cbf1e4si3257099ejb.698.2022.12.23.12.14.21; Fri, 23 Dec 2022 12:14:36 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@zytor.com header.s=2022120601 header.b=HcYyEgJA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=zytor.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231615AbiLWTnH (ORCPT + 65 others); Fri, 23 Dec 2022 14:43:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44894 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233327AbiLWTmr (ORCPT ); Fri, 23 Dec 2022 14:42:47 -0500 Received: from mail.zytor.com (unknown [IPv6:2607:7c80:54:3::138]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3159B21880; Fri, 23 Dec 2022 11:42:26 -0800 (PST) Received: from [127.0.0.1] ([73.223.250.219]) (authenticated bits=0) by mail.zytor.com (8.17.1/8.17.1) with ESMTPSA id 2BNJg9H13006325 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NO); Fri, 23 Dec 2022 11:42:10 -0800 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.zytor.com 2BNJg9H13006325 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zytor.com; s=2022120601; t=1671824531; bh=6InhouiQkFuN92U4rKDip7N9T/oVeeUpKZew3FNxOHo=; h=Date:From:To:CC:Subject:In-Reply-To:References:From; b=HcYyEgJAa5XbojShSOc0wzxA5elK4pUPOu3/sqGHMVCx5VGIJLBlPH3NPuF2izdz5 0l4igTczqb/garVMR+wkV7kW2cGtTwJe/UVneVxX2RAYVoMzBRKBqefe2G8r3Vbn54 AhuWxvUR3XrqsChhnqaByaWKATUhnyHS1yPfbNdInvNA0jk0LGoNzNsVCLoaoeWhYN 4hiNxpCtxbcKkUOCgCBje03otpEexRT7B7uIYYqwMQZ8qcL0aiLkPs9Cji4s+9mBUf WjVk+DdJ/0fJ2LN/TJ+aFaoOWkfEtRe0mfx7+LdME/xDMPYk10vhynLPX1tKQF0s1P NtrbD9qYuSTIw== Date: Fri, 23 Dec 2022 11:42:08 -0800 From: "H. Peter Anvin" To: Peter Zijlstra , Xin Li CC: linux-kernel@vger.kernel.org, x86@kernel.org, kvm@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, andrew.cooper3@citrix.com, seanjc@google.com, pbonzini@redhat.com, ravi.v.shankar@intel.com Subject: =?US-ASCII?Q?Re=3A_=5BRFC_PATCH_23/32=5D_x86/fred=3A_update?= =?US-ASCII?Q?_MSR=5FIA32=5FFRED=5FRSP0_during_task_switch?= User-Agent: K-9 Mail for Android In-Reply-To: References: <20221220063658.19271-1-xin3.li@intel.com> <20221220063658.19271-24-xin3.li@intel.com> Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RDNS_NONE,SPF_HELO_PASS, SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On December 20, 2022 1:48:44 AM PST, Peter Zijlstra wrote: >On Mon, Dec 19, 2022 at 10:36:49PM -0800, Xin Li wrote: >> From: "H=2E Peter Anvin (Intel)" >>=20 >> MSR_IA32_FRED_RSP0 is used during ring 3 event delivery, and needs to >> be updated to point to the top of next task stack during task switch=2E >>=20 >> Signed-off-by: H=2E Peter Anvin (Intel) >> Signed-off-by: Xin Li >> --- >> arch/x86/include/asm/switch_to=2Eh | 8 ++++++-- >> 1 file changed, 6 insertions(+), 2 deletions(-) >>=20 >> diff --git a/arch/x86/include/asm/switch_to=2Eh b/arch/x86/include/asm/= switch_to=2Eh >> index c08eb0fdd11f=2E=2Ec28170d4fbba 100644 >> --- a/arch/x86/include/asm/switch_to=2Eh >> +++ b/arch/x86/include/asm/switch_to=2Eh >> @@ -71,9 +71,13 @@ static inline void update_task_stack(struct task_str= uct *task) >> else >> this_cpu_write(cpu_tss_rw=2Ex86_tss=2Esp1, task->thread=2Esp0); >> #else >> - /* Xen PV enters the kernel on the thread stack=2E */ >> - if (static_cpu_has(X86_FEATURE_XENPV)) >> + if (cpu_feature_enabled(X86_FEATURE_FRED)) { >> + wrmsrl(MSR_IA32_FRED_RSP0, >> + task_top_of_stack(task) + TOP_OF_KERNEL_STACK_PADDING); > >Urgh, I'm assuming this is a *fast* MSR ? > >> + } else if (static_cpu_has(X86_FEATURE_XENPV)) { >> + /* Xen PV enters the kernel on the thread stack=2E */ >> load_sp0(task_top_of_stack(task)); >> + } >> #endif > > The performance here will be addressed by WRMSRNS/WRMSRLIST=2E It is not i= ncluded in the FRED patchset simply because there is a separate, parallel e= nabling effort going on for those instructions (which are useful in their o= wn right, especially for perf, and may be available before FRED) and we don= 't want unnecessary collisions=2E Those instructions weren't public when I wrote the first version of this p= atchset, but they are now in the ISE documentation=2E Xin, could you add that note to the patch documentation?