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 C384DC4332F for ; Wed, 13 Dec 2023 19:59:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4A3F16B054C; Wed, 13 Dec 2023 14:59:59 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 453A26B054D; Wed, 13 Dec 2023 14:59:59 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3431E6B054E; Wed, 13 Dec 2023 14:59:59 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 22B0A6B054C for ; Wed, 13 Dec 2023 14:59:59 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id C474380888 for ; Wed, 13 Dec 2023 19:59:58 +0000 (UTC) X-FDA: 81562860876.12.AE0A35F Received: from mail-yb1-f171.google.com (mail-yb1-f171.google.com [209.85.219.171]) by imf24.hostedemail.com (Postfix) with ESMTP id 09C57180027 for ; Wed, 13 Dec 2023 19:59:56 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=V91bp7W+; spf=pass (imf24.hostedemail.com: domain of debug@rivosinc.com designates 209.85.219.171 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702497597; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=s31Qnl2jy9dVbfR9SU0O1e0gpO4gYzM2ckO1KK9cNWQ=; b=3g0KnqBpNw1uPiHBUQwXVw4web2FLLkd5ELl5p0o+2SGxmWvP7dDFPYxo4xQV5vTACUW6V CXa9BT8CXivE4DNgOm307VdKDQOnUsE1FY39hs/tNBh5YwGVKIao/eq+OOJCAxJkQLKAdq 8s2Y4OfpqGHDy4Dv+w4W75dof5KWhVA= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702497597; a=rsa-sha256; cv=none; b=4Xh22L8K21bDmUT0tI0uQKcz8RqOn2ETQRuFI2dfoq05UREbjvGFlBhSfmgTcyQJf3dl1+ C17YaR0A/taOmmGMwe+h4cRjgFxXZaKxAd512yoswBa1D+sUlZ5zvO+lodFciFgpz+cny1 S+I0FJIMpYdt/92THIFDvx/efxqhto4= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=V91bp7W+; spf=pass (imf24.hostedemail.com: domain of debug@rivosinc.com designates 209.85.219.171 as permitted sender) smtp.mailfrom=debug@rivosinc.com; dmarc=none Received: by mail-yb1-f171.google.com with SMTP id 3f1490d57ef6-dbcd4637b05so769740276.1 for ; Wed, 13 Dec 2023 11:59:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1702497596; x=1703102396; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=s31Qnl2jy9dVbfR9SU0O1e0gpO4gYzM2ckO1KK9cNWQ=; b=V91bp7W+pUAfN8/7XXxEC7lXLzm+rT8B3ZBYYNSfaigYNlFv8bg5gQtQmIJfviwyNk yR7h6XW3PBc7/MgMt79fysDBY1Kv5M5+nzI1+CK6F8akB0ZEe/Sgc/jOoXpE0Gfe3mNQ hIXtUjOSyRia7EUGM3eGNojKo+HTGDdwlGn0uxKyvrtGvMJ76u+wdICGWr6XU29c+1MW BxbX8ug0qRqybXLz2g4d2RRWMdqgUjr6kSrlbQjvGu+yKSBMRrbAyEha5jQGGcCH3YLb PDJuQ4kN0bsXMBWiWySxsxEWbPuaiIXuSjG3LMZbrQQ/3WjEmWgXh3LOkreWEgnqUWKz CLkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702497596; x=1703102396; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=s31Qnl2jy9dVbfR9SU0O1e0gpO4gYzM2ckO1KK9cNWQ=; b=SMLUw5zl0vnvgK9d3By+uGHao/MilsR+hZetISVSNr0Y2Gojb/4L3Qp9hkSFpdNvLz KslM9pMbaFemqt/EcRbtYeX5qto6wWNpRlOyBti6QC9D4Z22+Qpvo7GwbK2UxTQ7ymBw +U3VhDE5MAIiZEf7sslFUIjZO+xdlmXG/dDVf0DUYQ6m0Sls7g5KF+Ti0Auh3ccY1q+P /z88tjwb84Ibb1D/8Sas2HmSnqiRqoZbxhwR/okFHNXF3FVKl5qxqKSAvFeJKk12nXKC YQoKuikKDlDeKRObFVSklqjrPvdAd0Z4nSIURb+lJHZoGLmDVaRFcoiDuF2RqvPvvN0n lhlQ== X-Gm-Message-State: AOJu0Yy1M1Iu4ibK7dkvaGsAbHphI0VCxFNY74Nqk1qbGqukWDhH+5mv WCLxQNDiIie3MrtjTQUVYxDvBd/qmQzsOCBpqt291g== X-Google-Smtp-Source: AGHT+IGoanEfSAfWqtQw7++5uapiVETyiSe4lA5KkKISTBsZpDDCHd2EgxZu4V1rN9q+R/qEjWhYJ9uGnGBTlEe8bKg= X-Received: by 2002:a25:6ac4:0:b0:db7:dacf:3fb6 with SMTP id f187-20020a256ac4000000b00db7dacf3fb6mr4418808ybc.99.1702497596004; Wed, 13 Dec 2023 11:59:56 -0800 (PST) MIME-Version: 1.0 References: <20231122-arm64-gcs-v7-0-201c483bd775@kernel.org> <20231122-arm64-gcs-v7-20-201c483bd775@kernel.org> In-Reply-To: <20231122-arm64-gcs-v7-20-201c483bd775@kernel.org> From: Deepak Gupta Date: Wed, 13 Dec 2023 11:59:45 -0800 Message-ID: Subject: Re: [PATCH v7 20/39] arm64/gcs: Context switch GCS state for EL0 To: Mark Brown Cc: Catalin Marinas , 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" , Ard Biesheuvel , Szabolcs Nagy , "H.J. Lu" , Paul Walmsley , Palmer Dabbelt , Albert Ou , Florian Weimer , Christian Brauner , Thiago Jung Bauermann , 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: pde1zosqhtunimsw7ejgk8dn6y89nze8 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 09C57180027 X-Rspam-User: X-HE-Tag: 1702497596-819075 X-HE-Meta: U2FsdGVkX1+q/FMcmGruJhpv3CiahHigqwQIwiwJx1gOoA7KTrKQEMJ1jniSJu84ZdJDe4DCym1bDeXAL8sJmRrDn29uU/Xb3snXSD8rVmMaSO6Cknd255lbq0IR6caKS861PoT9YP0ERHnRfefCjas2chn3mVK1JsRyBXdimUn99n3498PHae6t9BhuHnGsQ8HZMPt3OPdHwFTpzJYGWkpjAvR+5yxAtVoeUuXUHjbNjSghVoPQ/HSV23YCs0dp8feaqebWp5McnIMG8hcpU6hGHQCFzZbk5+7mVPrnwSfw3ffZo6Hq78uhsthS3dw8mrElerzy/WZqewkS0fQZLqQUVfAvXe6fpmrtDNxq/qyfzrtmF06UwexP/QW+7fO2e5Pdwf8nC0yWrhh2yaVx/Yg/qoX7QpLuZoZ0oca/ZTBGzuOVxrLfxliPl4Fj7b7AYORMmxB4D/8XqR3rZ60I/K1x4shnnRW+EDD+64zweDHfyYpMN4YVKOd+0qUGZiBQohQRN0Y5K5/va012q9/7IW1I8VsTZVoRQ4jvSVmDSjbZh/wqn3QXqMnr2DOgPM9xqXWyo9QUkU60MF2UHHpHY/iapqA7gZQ/7hiEdXoxbIhI9DqDoD2glrNjhazpvYoQ/U1dP05pfYdRPvzxRchK+mMVkQaWw5AcXpWFFN1IDlXJX11XsQWElqk3N5Lp6fnnD1YsULGfO8OYYFRbV3vsZGlBjEMfc6ZPfliqVlNDUC4eJbOM6czUFgOJOWEVaCCGWYHbHhFuAZIL0tWo21QBGlmg36Ob65YqiWBFwzJponaRxEXY+rp5ZSihUoUwD0iHE7Usl/lpPSsdg1VWK+7IwddCVwOhj7YjbX+iIKAeI7IVxwbeo+B/NiJA6RrgpEyJJdW8hB84rxhTWLqqM1fblH4YmLlP3SuGmJR3Nu8kdtAN6ka6jx9OLxV1p0zG50vFr3q32itRkFlWX9+qX2x 2UFmPpb3 u2iWdDFjczbOKRasg7Qq1pRFFxyqUt4o47CnHmHS3mgKRIk4EM/PEOGxfNhUL3xqEd7BjBkEq2WHs0J+24ZCminq/XPwh8Ku6r6AdxMBH8poJfXUBZUU+GTS8knqfH3TZpWK5ZnBNJOSJaLvQ0W/jzAepcYnKPkbJZld/nvqN25seoIl/ufAzKbj1X82lnQkddU8sG7+fw3UGigQNpu9GfMo0DJtM4kFb+XnKsYM7mAaix8Hx9uItjOrNL0Ec8qhBtoA+Lvozkn/14WD8dTCbx/5NKLCu9+JFsFJKiaKQGrEm/akvIrJHE+uZxlj5q2QSqeLgOVHCyb3tEXxPOyjXPJv3IaVpdxVumroO0PrJ6SM2/nks+vSL0uo+aRjQFXnbPRwk+dNNdYW2Aj1guAEFn7pq/TqREKZl9s48jBcz+a0I4hsRPaf9b4ttN/nTNxq8CdgY 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 Wed, Nov 22, 2023 at 1:45=E2=80=AFAM Mark Brown wro= te: > + > +/* > + * Apply the GCS mode configured for the specified task to the > + * hardware. > + */ > +void gcs_set_el0_mode(struct task_struct *task) > +{ > + u64 gcscre0_el1 =3D GCSCRE0_EL1_nTR; > + > + if (task->thread.gcs_el0_mode & PR_SHADOW_STACK_ENABLE) > + gcscre0_el1 |=3D GCSCRE0_EL1_RVCHKEN | GCSCRE0_EL1_PCRSEL= ; If the intent is to disable, is the GCS stack freed or kept around? I expect if libc is taking the decision to disable, kernel should free it u= p. Is it freed in some other flow? > + > + if (task->thread.gcs_el0_mode & PR_SHADOW_STACK_WRITE) > + gcscre0_el1 |=3D GCSCRE0_EL1_STREn; > + > + if (task->thread.gcs_el0_mode & PR_SHADOW_STACK_PUSH) > + gcscre0_el1 |=3D GCSCRE0_EL1_PUSHMEn; > + > + write_sysreg_s(gcscre0_el1, SYS_GCSCRE0_EL1); > +}