From patchwork Tue Jun 25 14:57:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 13711453 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 5D288C2BBCA for ; Tue, 25 Jun 2024 15:04:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E10316B00C2; Tue, 25 Jun 2024 11:04:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DBCFA6B00C3; Tue, 25 Jun 2024 11:04:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C0F486B00C4; Tue, 25 Jun 2024 11:04:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 9AACE6B00C2 for ; Tue, 25 Jun 2024 11:04:05 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 50CD11A012E for ; Tue, 25 Jun 2024 15:04:04 +0000 (UTC) X-FDA: 82269731208.02.B228962 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf27.hostedemail.com (Postfix) with ESMTP id 6E7EA40056 for ; Tue, 25 Jun 2024 15:03:55 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=RVcHIs3e; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf27.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=1719327824; a=rsa-sha256; cv=none; b=NAmUA4spFUYQV4/WvsT4cGcRtydGe1QdUIDKIVJfy4umVAtU/O2Rw4YqOrGAP+EtX5JCce aM9ZbLlR/hZ7YNHNbDHeRAcmgUcsqgm9YdGtckmERXimb/OX84ZqL/Gj0Wtz/93GQJbw89 rG6xLYrfYDbD5VnDM1Bbscpuq4XeYwE= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=RVcHIs3e; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf27.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=1719327824; 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=lx1e4QZxBbCVWVB0QayIR7s4g0rsUX9FuY+HasyH2g8=; b=b7Svpqip0V9wwUS+Tr0xr2i+ys7GcHbmeTFgosFgnAj2btLieGxVWJCrmrOyPEjVAqpt35 oACV5jGSwGitvds4p2c69H+mGbR9XeVoCzeJHs0sAsEHE7vsJiAJNdhvzq910N7mdHDB9N Iv+Wo9vMszYww1sLeFT+521s5x1qGkA= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 7380660BAF; Tue, 25 Jun 2024 15:03:54 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3D40BC4AF0B; Tue, 25 Jun 2024 15:03:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1719327834; bh=oHs0edHK2ZH//P9wlXUiorha791DOO+hA3lq1vKIHRU=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=RVcHIs3e0+1BTODXPOdXj48xTE6Ig2X77qbNnTIQRIsQ1F/J+hGQH3DoCpTsV74KQ LP4Qq7EwvxhXEaHHjIjrYyUvTxzK77ehOh//lQv8X7OkWgdjstOMorkAbbx+KHNX8q ROWqziyU952y0sO0yHkuO3MMdFFLczKsxuLA84f3p5kl05IXBvb14Owt3bAZqhg5ca dmGd1AnNLQrvvSqMYd/hpvNjgpq3P6QwCOEIgl3e5F7U6Sgudc33b1GrSWb3pdJmGz I2NzxVo+oIdHLb9gxBTnyjAvtRXZA9Ft3ss+7ArRfSNZRQDRf0jpb8Y1uP2KVUxvDI epU+0l3m7Vx5w== From: Mark Brown Date: Tue, 25 Jun 2024 15:57:55 +0100 Subject: [PATCH v9 27/39] kselftest/arm64: Verify the GCS hwcap MIME-Version: 1.0 Message-Id: <20240625-arm64-gcs-v9-27-0f634469b8f0@kernel.org> References: <20240625-arm64-gcs-v9-0-0f634469b8f0@kernel.org> In-Reply-To: <20240625-arm64-gcs-v9-0-0f634469b8f0@kernel.org> To: Catalin Marinas , 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 Cc: "H.J. Lu" , Paul Walmsley , Palmer Dabbelt , Albert Ou , Florian Weimer , Christian Brauner , Thiago Jung Bauermann , Ross Burton , 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, Mark Brown X-Mailer: b4 0.14-dev-d4707 X-Developer-Signature: v=1; a=openpgp-sha256; l=1288; i=broonie@kernel.org; h=from:subject:message-id; bh=oHs0edHK2ZH//P9wlXUiorha791DOO+hA3lq1vKIHRU=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBmetuHDmIv/1BR7AmyIP7TdZpBb0DyVJraa/k+giyf IMNNkZeJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZnrbhwAKCRAk1otyXVSH0GErB/ 9P0d2K2QWmEiq6MtR98YyQMB73y0NDVSTD0oL7snO1bVGdOgv3ptXZGHFRdCTsQEa39LCg09KHmEfQ uaxKzfCQgFpTtBTQ/V7TBQNmyNgv15eCxTBzb+bcJWTbQ69u7FmV9LUqaXf46j7gsK1RTSQPijNICB 43+McjEr3BipgL91KboTE8OffZ1hik0Lp3s5RXWvYgyHnYuwzaYNfGWKaFHiNm+XhLMBsFUJFBBODe S6XKVjZpD6+x8cR3DNl+jf0H/VUNt9Mv+ekTdgAOwCMdnCWAN9wXJ2khka98U9PvPIJEglltn1BqE3 D5k/13JN4yj/0zmk0jjehdcje46viA X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Rspamd-Queue-Id: 6E7EA40056 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: tq6hj6po7ft1ffzfgnfuxhguznsrox8z X-HE-Tag: 1719327835-299984 X-HE-Meta: U2FsdGVkX19J5wYyZPzM3Nsd2zE54SvJ2cMINlxQKKN5vjYu0jUdSR0f8a94QZNvKpMyu8VDMhVf99sacCssdZplulO/2W5lUwQeeKvBNtyIvoDIvuI7oDi1/rVH6BjrruHfWjIqxmm69GOQAh97hShfCSAZYnf8fhlbORZPB7NLWegOSBfV8a7P+L1BveJOZF1B0oj6Qxe3mQkg3pMOioGreGIOrfgiJEjpxeOKA6GqZkc/GNjjkdi7jNWBQ60XeafriMlOPPTuwTl91DS+UARXaRr/9F0j8cVN1zST6lHb4gsAT+DqnVySPMyHp/QwdMtS8XcILsZNmqh7hgw5bMqQhGdjexpeGF2wse/HXQFgUcQ6fo4508LYwIjZ/sT59ZHzMMPQ6iFQloJ4//eGQ60aNjifGpOzMY/9ahukV7FzDtWa6IerEkhRuD84jW+C8mfjBjOzv/lzkfaXu1kYDVGobsw/heKk6T1GRouxOwr4ZeIYWOG3Iji8pMAPzf69kKptuddi03MJdn3hCvR8qtjJtAlQFQInWRpXVcRr3xr5n3mA1mf2RF0XdqMpt3TarHaJM63NaH79m+iDzNXV8SlJ6V+FMWhJUWcggh7M+Mhw+W5swHIjVUKFMxhf3Sppeia6DoZi7/wvec3GeHfTx85NFRm6vgT4h/KFVgQdWwWfvTpAi2CUPCcxcS4qOmwCE9SmDFa0Qr+PtAqNbGKZWrDTTKhhdptcV0BRki79pSgpV4LXv50ocyRcRjoKZheyOkC7R+G7v61yiftYHHU5HSC6sXJDNJJsyAgnoFtGRe3gPhvl6HRWauIkwHMlgGfQ6PDc1w48R0OgiSpuuXC8lsCICD9rKsgZArdBt9rNotXlcJYHXvXpoRoNWcBOhDwIS8TyY96XU/H+0lJUyG5pFP6ggNR6ockK1rTyjYUnupf+qx3CAXaYJdIQvOpnsqEAATOd86rfUXpfOXSX3oX JiQ2i9Zz so4aVT0Xd7okVSlDEuaTyEnsF91jrSX4SKeUYlHIwqBXeGLLc2+YbmuvIfi097KeHqesjdjjy4TkXA7BFBRfaN3TTRULaiWKQKMLNe11J9Cxo9y47XVZoBVA+ABCzEPi/JDY5aXqCySMRxcvwGZab8v7waU6J1dL/umk7mbVdm6eU+yLLmRT0AZcGlg5Of9iEPqRC9i6IjE7/UbD0ogA8UuFYgMLPkIy9m+S3XXiuF7TTv1zWSUqwB+gvJsn25Im/dfK/AUjmbSI17rSCAn+5vwTar5lX9CZyZjZrGWGc6TeP7IGpWMrrRLwbg6BiQ8oMMz3aLq6M6LXyHE5AB/4XzOSiAYxa6r/mou2PaW0hFWLilxOBdb1inrL6M5gj/nbnymHg 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: Add coverage of the GCS hwcap to the hwcap selftest, using a read of GCSPR_EL0 to generate SIGILL without having to worry about enabling GCS. Reviewed-by: Thiago Jung Bauermann Signed-off-by: Mark Brown --- tools/testing/selftests/arm64/abi/hwcap.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tools/testing/selftests/arm64/abi/hwcap.c b/tools/testing/selftests/arm64/abi/hwcap.c index d8909b2b535a..dc54ae894fe5 100644 --- a/tools/testing/selftests/arm64/abi/hwcap.c +++ b/tools/testing/selftests/arm64/abi/hwcap.c @@ -98,6 +98,17 @@ static void fpmr_sigill(void) asm volatile("mrs x0, S3_3_C4_C4_2" : : : "x0"); } +static void gcs_sigill(void) +{ + unsigned long *gcspr; + + asm volatile( + "mrs %0, S3_3_C2_C5_1" + : "=r" (gcspr) + : + : "cc"); +} + static void ilrcpc_sigill(void) { /* LDAPUR W0, [SP, #8] */ @@ -528,6 +539,14 @@ static const struct hwcap_data { .sigill_fn = fpmr_sigill, .sigill_reliable = true, }, + { + .name = "GCS", + .at_hwcap = AT_HWCAP2, + .hwcap_bit = HWCAP2_GCS, + .cpuinfo = "gcs", + .sigill_fn = gcs_sigill, + .sigill_reliable = true, + }, { .name = "JSCVT", .at_hwcap = AT_HWCAP,