From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id F3512C3DA4A for ; Thu, 22 Aug 2024 16:15:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5FA146B00C2; Thu, 22 Aug 2024 12:15:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5A9C36B02DE; Thu, 22 Aug 2024 12:15:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3FE0E6B02DF; Thu, 22 Aug 2024 12:15:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 1C7F16B02DE for ; Thu, 22 Aug 2024 12:15:33 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 81903A16D1 for ; Thu, 22 Aug 2024 16:15:32 +0000 (UTC) X-FDA: 82480381704.21.B7BC36B Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf23.hostedemail.com (Postfix) with ESMTP id A0369140025 for ; Thu, 22 Aug 2024 16:15:30 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724343222; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=p1lgM9ITvw6fuCy4dL1RLtZ983NhZ+UFVIbO1dNmvpQ=; b=MMUFX9X+dwmFOj3oD7WrL3h2AGhVyu80lPAeKXEWJzRLyn9RwSjzo9pw2EmlJyymSWwBX9 DgxfWpH4GBf4SIDee8JOpk3g3aEk4hb2WKV8/RH+eOidX+VwivsuJwVvgJDKqSUt8kzVaF DWmIWUbIPZZpYPca40BGKGff1Gf3Yv8= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none; spf=pass (imf23.hostedemail.com: domain of cmarinas@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=cmarinas@kernel.org; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none) ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724343222; a=rsa-sha256; cv=none; b=oy8wpUR1B//BOo8zT47r94Z8KGlgROvY0RF7rwBQseBPOsiRhnldIs84YbhUgff2qn96G9 qNtTcUi0OpDygpWj8SfQkdF1f5+hPdVQtiD1U7gQ3Vc8uyq/PoYThhgBd98n3l1IW+gOd+ FZkUxCIN0TmKV44niUUuEb4A9OuVy44= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 5B8BD61221; Thu, 22 Aug 2024 16:15:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 39F58C32782; Thu, 22 Aug 2024 16:15:23 +0000 (UTC) Date: Thu, 22 Aug 2024 17:15:20 +0100 From: Catalin Marinas To: Mark Brown Cc: Will Deacon , Jonathan Corbet , Andrew Morton , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Arnd Bergmann , Oleg Nesterov , Eric Biederman , Shuah Khan , "Rick P. Edgecombe" , Deepak Gupta , Ard Biesheuvel , Szabolcs Nagy , Kees Cook , "H.J. Lu" , Paul Walmsley , Palmer Dabbelt , Albert Ou , Florian Weimer , Christian Brauner , Thiago Jung Bauermann , Ross Burton , Yury Khrustalev , Wilco Dijkstra , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, kvmarm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org Subject: Re: [PATCH v11 20/39] arm64/gcs: Context switch GCS state for EL0 Message-ID: References: <20240822-arm64-gcs-v11-0-41b81947ecb5@kernel.org> <20240822-arm64-gcs-v11-20-41b81947ecb5@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240822-arm64-gcs-v11-20-41b81947ecb5@kernel.org> X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: A0369140025 X-Stat-Signature: j8gckzqn8c6f1om3p56i5tfptn86k68o X-Rspam-User: X-HE-Tag: 1724343330-276631 X-HE-Meta: U2FsdGVkX1/qDaQoQ0XrF7exonRGjTrlSPfhkXJMXa+0HnmUKWNgQwACpThejrhBPRxmCFydK40ET90Xwz5sI0skac4yPfHWp28AzAxRElEhpIvT016B3LVx9EDPXQ8sWMnXH0cVNeMpsjdqiYE7opBp2ht/ecv7JzVGhsNdHiVmQ6f1+R7P0HyTl9yiLMUaLFaU5o2Qk+P0OEduzyK0eqx+gSzeO1jtwarLzjHxMzA60S/i2771b6Q56o96MIyyZnfb5CvIBc+tYayGmEHJjRme3k6IiV5cgK55RwA65P31us8mCg6hmbErRLJy1b3j3bD4Hdnoh75hCeuCH+39GCcgTFow0UWwaveJeBIzFhayktnAj0UXf4i4BOkysbvKnDAhcZGQY6eKUGym355zXElrtsZ46SQ1dNMH71+xC680rcAac6OgTxAoTdhJZaRR2H55TkjUdUAD0aw2un9ltiTlk3H3FiQ67xDePzAiVvaywGiEUBv77kxZq7v+BwyY3VIBiyUmOgpwd0WNGxvpO6AjFQIwF0GYVksJGKGGpWH7CjKQCwTKi4s+squ7TkGG+RWL/33jvEdPPqPyCiq2sdMmIKxQ3yX1S7FG2AEHiKzdE54kL2Kt1nUN+GpLV4lFzBKs/4B1+BPONXnoAB2Ol+Yzpfe/Rwpc5eoShfkbSps5yl46YnzOn4D5Ra6+JtepfkGi0ajQ1EkNVcElXQxx/0Vr0HWAjJzod5zLsFoLqdQLliyiIe/IYxvGax6ctKieEoDlr5Cx/+QMeSOaiLkLFaSLMrj0A4KOwQWCBgxVo+gzZYNjIChKyzLC7Z1/9dh2yPWi8NI6r4MfAL59jGLqKtk6+JZXSbCKU/38DDMgSUUTai9fmBlJMuBL97ociOL9Yt5t6qphQhupK98prNtHDARVMzCyLGCYoldQctegEqKalp2gkuTf3vznQQJbhc1rRvdIcDfYY1PSaCxXICT mctGI/Tv 6gGmWerAv1dB49l6Chl6nk3ItVvwmQZYtJ0usixUR30tBQOTXK0b38a62zwdviOpUuemf953zQDALQ6YMYfDQrhLtB/yaxKt5C1S1p2HUdWBmEpM1jWFVejQL67O/BQgllRTTYTeue2KBeEVVOaJvajUQIxKD1i9cLIsIt3FsVsGquD61yrJymu5Sl8o50maE03TnhxEFlKQYlJzIh+4clT4i/b+fkrAXsbmuc4C2a3dSZuYenVWwQISfNzX6H4TC30PJfAI058McqFtvkGl19KxSitLky2RD8YFz7/S+pclo19iU0+VGVtCtIjEZ8nMYz31GogiRpw1fb5J19NOITMEc2ZUvBHOZkPIShpHYql4ZN0mqVeHykOMHFU4Ipu/SZcREVZg9KPYoZCqNPbsiEPo1CZ8eMQb/VfYWk6rn4G6Adp+l/FVjKFikdbSqAUPX+q6YMcSnoo8PrCiKq43td8q6Dt+yDcQDyKXCrxXjAmV7V743tCbleRm5p2fI4lBbTCS7M+pOgyjnTYwxXcHAkepQCxc6TBUZZaBv X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, Aug 22, 2024 at 02:15:23AM +0100, Mark Brown wrote: > There are two registers controlling the GCS state of EL0, GCSPR_EL0 which > is the current GCS pointer and GCSCRE0_EL1 which has enable bits for the > specific GCS functionality enabled for EL0. Manage these on context switch > and process lifetime events, GCS is reset on exec(). Also ensure that > any changes to the GCS memory are visible to other PEs and that changes > from other PEs are visible on this one by issuing a GCSB DSYNC when > moving to or from a thread with GCS. > > Since the current GCS configuration of a thread will be visible to > userspace we store the configuration in the format used with userspace > and provide a helper which configures the system register as needed. > > On systems that support GCS we always allow access to GCSPR_EL0, this > facilitates reporting of GCS faults if userspace implements disabling of > GCS on error - the GCS can still be discovered and examined even if GCS > has been disabled. > > Signed-off-by: Mark Brown We could do with a bit more code comments around GCSB DSYNC but otherwise it looks fine now. Reviewed-by: Catalin Marinas