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 DB1E6C04FE2 for ; Wed, 16 Aug 2023 18:16:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2E9FA280027; Wed, 16 Aug 2023 14:16:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2982C8D0001; Wed, 16 Aug 2023 14:16:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 138EC280027; Wed, 16 Aug 2023 14:16:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id F2EBB8D0001 for ; Wed, 16 Aug 2023 14:16:06 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id A3795A03E0 for ; Wed, 16 Aug 2023 18:16:06 +0000 (UTC) X-FDA: 81130771932.30.05AD010 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf28.hostedemail.com (Postfix) with ESMTP id 99617C0023 for ; Wed, 16 Aug 2023 18:16:04 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=djQMSkko; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf28.hostedemail.com: domain of broonie@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=broonie@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692209764; 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:dkim-signature; bh=jsf7FLyU27m3+toxUnlXiv8YtTxJMlFw4G7r6iMHvJ4=; b=lFTn7nlIiZxJA23X+a538gaskX/HWzM088laRc3I1SO5Txn4wSLUySO2JxWXTRRkCqjDrV AQfeg0SjaG9UNwZ5BvopsDmJ1PGGU/Yb15W9tj26gNsBLtYs1zKG/hXze2L+kMzRPQvXH5 e4Tw/X+b1Ew5vYbKB7S6X++uA3/kDiU= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=djQMSkko; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf28.hostedemail.com: domain of broonie@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=broonie@kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692209764; a=rsa-sha256; cv=none; b=EnQF5I83h6S6Uu9WeNVstVv1NeKZIGN87gDJS2LQ1Bn+jue91LvIGx/gVkE055xavxbyRA Y3+0lny9u70iNr3p4EaLkX3FXBt4j7Pvoi8NVg0xySM8oFh3Dn2OFGpUMdEi4gVm2R73Jc J82sZbLfQxPuRTB05nUIUMEmjbTYr+c= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 2B11A63981; Wed, 16 Aug 2023 18:16:03 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C596DC433C7; Wed, 16 Aug 2023 18:15:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692209762; bh=TgK016C/w5t6JQKrQP4E8mcD6V8oPi/S+UCWzSu2Rbc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=djQMSkkoGjtLgUNe6JiG+uUbjTG+u7ie7eym1Qc/s0ITrVmBOvMdk78mSJmK4ub/N BH/UchLawIzBNwHe6rSkOxpgF+9ayCmXUe+Jm7bBi6IIIFDF2HmzCsSA8IKIPjtzYy vqUXL/PRWiYVHhJKMQDXe+LpZ7bDavgxVmYjSYwsV4NqVBdnLJnwgUEnP9jySYJcMj UlvkUii28ef0E+WUplhkuFmFDfhE+PqklMByDsCChsqfuljh2qr6ywU/K+qtnnWyZy aaaXhGNFfTCa6SGlKE6Cz/VqFo4RwngUUKGxQ6a30H5DdMlCF9ksxaqQXcnOfoRwXX NWfU0nIwFHXfw== Date: Wed, 16 Aug 2023 19:15:53 +0100 From: Mark Brown To: Catalin Marinas Cc: Will Deacon , Jonathan Corbet , Andrew Morton , Marc Zyngier , Oliver Upton , James Morse , Suzuki K Poulose , Arnd Bergmann , Oleg Nesterov , Eric Biederman , Kees Cook , Shuah Khan , "Rick P. Edgecombe" , Deepak Gupta , Ard Biesheuvel , Szabolcs Nagy , "H.J. Lu" , Paul Walmsley , Palmer Dabbelt , Albert Ou , 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 v4 18/36] arm64/gcs: Context switch GCS state for EL0 Message-ID: <28a61b5f-db65-427e-8e92-60dd61549da5@sirena.org.uk> References: <20230807-arm64-gcs-v4-0-68cfa37f9069@kernel.org> <20230807-arm64-gcs-v4-18-68cfa37f9069@kernel.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="w/BKAb+ClmJrMdeD" Content-Disposition: inline In-Reply-To: X-Cookie: Old soldiers never die. Young ones do. X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 99617C0023 X-Stat-Signature: db3jsnwyt3bdi97ou3njortxfazjpmj9 X-Rspam-User: X-HE-Tag: 1692209764-162589 X-HE-Meta: U2FsdGVkX184rZB+ZCsxrr1RiFvSXN/T3tKBgfbxOjf49NLH3PuKl/9LHPihER1wjtq7764PA8kQnZp+de+CMAhyicZpIXlhFLryha/529CR0WLz25Y59h4EJqDN6oNisdWrrRSig6FY+RIOpP4glS0OzbFWE0kh6E6+Eyhyp09PmEeLgtBXhMy3ou3alfGl2WQLXPxUJKufJ73XN0k66htZKAfFEF4MB6f7opeKwY83FGhvUEPazJFcEsJiJ17uKJlGtQzWlFBtYW9TsAwjviiHP8/5BMp+S4bdqM9j2mWCB3MMZehZB7gzZCrYDBq7ZnuiGtUCDzVUyTTg911ooBSH5hlmk1ec8+X9iUNDL24dq1NCpqerNIC8ESFY0C1btahROacmCwBsf4oW75VHjMR4TmxYz0HT6gFojhqc2oNhwewEn59GwFSVvdsEb2JBBq2RGbc4E/stmClmv9cilLRyhXNZKG3cLw2FvR/8WeFm47dmEpLIAH0fovhBKtAtTiPNMDNtuGmsW152/CHszhRU/zBafkoeXIA7hLhh3BP7bjhJ9lbVjdw1YC2DBCcdX9r8aJfT+R1rel48Ept2Tt7uobDERCikUQGOH3IJPoQsycfCs9vKElkdoqX5J9PX2FQtMOGaAQ1OPz6I6xKgyOHOLQKT4Q0yrpDF0k9H5w5NRCHg4Cev+EyHyHpkMztAEHI0HzUNLwkkITvLECBinUA53KT4c4Xzce5pTk2JeF1HHRpYg9V6t7USPL4x6/DiLEDdopD9q3CbEW4HpNG9QgBuN4YpXvEbN3oMVqG7UucE4eO397nPIVICseq3dsPENFbECxatgJrVRNLnwPCwZ+VXYNbX4FOnqq6dFQozET42VyqJKa79LyGeqPnK/9WGybkyw+3+yGTHj4dQPgPENVJRsS05e6G8tV0D5L3n6F6krcvNBOhEJMxlZ9TIGdJQUnW+xB/dqcFKXzvhFnf 8QjW5eF0 UWr7GVawY6EDzl5tgZe2n4VHt1s4C9IJuzp/fqL5ds+rM8iDLdPN5g6xqlLCYQ2H8nseG5x12uQmPkXST0d01mhWI28Rbwssz39qhFusHR79a/WlTgGPPuGQWg/kM8qAqGzTe12+kaN31lSEGtwnGRjFt2ldWS5RC3Q3LzReHtzt6lEirnvn24zhPKUNc8xXS7Iah1hNwUkkJ8G/vSfNiUoiAlsiYilFWWAHWsPdVgwpRVPAP0O+vJd2yPwX7AhC68raKwAfjbwa5xX6Hvq9eMDnuQz8fxqCqZr0mrdrc/ZtjVz1kx9CqSYcqCszXOWB++MqCzlXLFvvaHiQERMxznbu5AD84NtRGRv1jVsJbpQysBBI2BwTZVcT15miZnaJzY6zMMxXG3BX59WRghS23s2SiRNdMODAAlaMcjvB7KhaYyLY= 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: --w/BKAb+ClmJrMdeD Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Fri, Aug 11, 2023 at 04:32:10PM +0100, Catalin Marinas wrote: > On Mon, Aug 07, 2023 at 11:00:23PM +0100, Mark Brown wrote: > > + gcs_free(current); > > + current->thread.gcs_el0_mode = 0; > > + write_sysreg_s(0, SYS_GCSCRE0_EL1); > > + write_sysreg_s(0, SYS_GCSPR_EL0); > > + } > > +} > Do we need and isb() or there's one on this path? If it's only EL0 > making use of this register, we should be fine with the ERET before > returning to user. Not sure whether the kernel uses this, GCSSTTR > doesn't need it. They're only used by EL0, at EL1 we do read GCSPR for signal handling but AIUI that shouldn't be any more of an issue than it is for the TPIDRs which we don't have a barrier for. It's possible I'm misunderstanding though. > > + /* > > + * Ensure that GCS changes are observable by/from other PEs in > > + * case of migration. > > + */ > > + if (task_gcs_el0_enabled(current) || task_gcs_el0_enabled(next)) > > + gcsb_dsync(); > What's this barrier for? The spec (at least the version I have) only > talks about accesses, nothing to do with the registers that we context > switch here. Right, it's for the GCS memory rather than the registers. I'm fairly sure it's excessive but but was erring on the side of caution until I have convinced myself that the interactions between GCS barriers and regular barriers were doing the right thing, until we have physical implementations to contend with I'd guess the practical impact will be minimal. --w/BKAb+ClmJrMdeD Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmTdElkACgkQJNaLcl1U h9AWogf/YEdfvtUHD2e4VQoupNYTIQwE4lzBKY5h7rikxnt03b6khOwEnmScy/XC 1TB3W5zmAGwyJdWCumepeAk5BTRzsKZWV9cdvP0YvcmTlzMqj/1ueNfpHfEu0NQs Udxb7QLhxyd8wdlIZn+ycumv7YnckO8stcBNRbenMRsLqKpTsXlM3zcsul9zvSPK zWPmyj/57XvYpeEmXgL+2zyLRmGfWEQB97ImfCgO0EkoAxFA6TUugdIAa6g0DWoO hZKEu0+mqQUN0RTXOLAqYQXJLGD2lVzT5G3L8HTPyR2GNZIruqNzD+8ZkhSSMm51 QjFuF+aVfUlZwpNuSsl7bhqHNJmB5w== =8c8E -----END PGP SIGNATURE----- --w/BKAb+ClmJrMdeD--