From patchwork Mon Dec 18 23:39:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 13497691 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D5F5CC35274 for ; Mon, 18 Dec 2023 23:40:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Message-Id:MIME-Version:Subject: Date:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=JZ9f16+mMX4q4nuOE8NRZSV+zi0kkPZ/OcaU5Di2BgY=; b=1p+GmE9xq3Cx3z dOOpsfK0SzcfeXIdff+4K5+DBMK97ZertNZOLOdlkI1Yd2DRX+qJe+tpzDVJIX/60VuvfvPeLbMOJ Yaw8REyoRHslsKfLfrTyzBnT8SQDXs/eGxq+4W8eA85b2IugWVjDMxZ4K5gBfSC839NiYACKQBtFG SnzpBgPrXZ9wH2s3vkyaPBt+8wSNv/scQi+WqiGXyx64rWINigmum1SQLRJ9j5yjedEDxCmqUswNx SK2STsNkCxjVrQUNMk4czBw5Nd1La/BWwTMUJg4EPuqgUn89z+cv2ZYT+dJgJXZU2P/tWXlI/ppeP IH9w8MV9142NJWSpgURA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rFND6-00CLao-1q; Mon, 18 Dec 2023 23:39:44 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rFND3-00CLa8-02 for linux-arm-kernel@lists.infradead.org; Mon, 18 Dec 2023 23:39:42 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id AC8F161166; Mon, 18 Dec 2023 23:39:39 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D8325C433C7; Mon, 18 Dec 2023 23:39:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1702942779; bh=OcRwwaGGPxRicGDvk46gVxGH6DVGcgRe9WWBzbdRGGM=; h=From:Date:Subject:To:Cc:From; b=DwFSCxq+IoCWYsleB/Bj3cyZYXmVUJ1ld5+sAbfQOmHgN+6bEtEUc0IOowBrzcpYQ lgQZWWjZPabP6jsPQKNHOCPdOpDVXjaC2Cpa4bhV+DBcvV/VdJ8QzEQproTRmdihVm Rx5NYYn9v+JprVYNzfdOMOKVAk6Tn2+NKJeFV6zp1/4jN7Ogk+yw5omG/dE5WJVAnc qIoxYEwqTY5q4XFBWeU0m+kUYtJ6aVUZZ+0mKxS5QLV2vIG3G4QktQDU8S3PA4wS99 6qNXijpCaEZ3AzkOtqo8LEI/viRbEgdXdYaEP5DnmdFDDhrG17TMeauqRaZOlZw/p4 H1naZ3K+7raLQ== From: Mark Brown Date: Mon, 18 Dec 2023 23:39:32 +0000 Subject: [PATCH] kselftest/arm64: Don't probe the current VL for unsupported vector types MIME-Version: 1.0 Message-Id: <20231218-kselftest-arm64-vec-syscfg-rdvl-v1-1-0ac22d47e81f@kernel.org> X-B4-Tracking: v=1; b=H4sIADPYgGUC/x3NQQ6CMBBG4auQWTuJrRWDVzEsmvIXJyKaGdJIC Hencflt3tvIoAKje7ORoojJZ65wp4bSM84jWIZq8md/cd5d+WWY8gJbOOq7DVyQ2FZLeWQdysS 3LgS4LqY2ZKqVryLL73949Pt+AGmRVcFxAAAA To: Catalin Marinas , Will Deacon , Shuah Khan Cc: linux-arm-kernel@lists.infradead.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-5c066 X-Developer-Signature: v=1; a=openpgp-sha256; l=2217; i=broonie@kernel.org; h=from:subject:message-id; bh=OcRwwaGGPxRicGDvk46gVxGH6DVGcgRe9WWBzbdRGGM=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBlgNg4KHZ2pT1ckQPky4CBUbPiGTOrGmXr2vzLyyfh S9O7o+KJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZYDYOAAKCRAk1otyXVSH0CWZB/ 4xFWcfFuKsRc3GM3Qca5XgAyj0mt0s2/BrDYnFcb6qZH74/ugBfR8JbCLlQgHwDWRYpEanyvckehrj VCuySg5d5xRuouwJQOeq2uvvFPruFGWSn3vluFrqtyX+gaAewnoWVyZGhrcZiFVbBVruAYrQUuJjB5 zbkJwMgbYD9E9O6nzsYXiHmxa3x22hWlzXzzvu7qRySXs3SMr8xZQJacWjcLMSGDsMx13laMv94yB3 h/34XnAMtOvmHkQbFV353HWh5nWmCMNtcyWd6T2/C8hZFSca2m8uUgrB1QeA+CfZtQxZ8vG4X/4Vm6 AB/1jC/675E60GZmemgC7CrthdsKC/ X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231218_153941_155572_C1DCDFDC X-CRM114-Status: GOOD ( 14.91 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The vec-syscfg selftest verifies that setting the VL of the currently tested vector type does not disrupt the VL of the other vector type. To do this it records the current vector length for each type but neglects to guard this with a check for that vector type actually being supported. Add one, using a helper function which we also update all the other instances of this pattern. Signed-off-by: Mark Brown --- tools/testing/selftests/arm64/fp/vec-syscfg.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) --- base-commit: 2cc14f52aeb78ce3f29677c2de1f06c0e91471ab change-id: 20231215-kselftest-arm64-vec-syscfg-rdvl-7944e19ac64f Best regards, diff --git a/tools/testing/selftests/arm64/fp/vec-syscfg.c b/tools/testing/selftests/arm64/fp/vec-syscfg.c index 5f648b97a06f..ea9c7d47790f 100644 --- a/tools/testing/selftests/arm64/fp/vec-syscfg.c +++ b/tools/testing/selftests/arm64/fp/vec-syscfg.c @@ -66,6 +66,11 @@ static struct vec_data vec_data[] = { }, }; +static bool vec_type_supported(struct vec_data *data) +{ + return getauxval(data->hwcap_type) & data->hwcap; +} + static int stdio_read_integer(FILE *f, const char *what, int *val) { int n = 0; @@ -564,8 +569,11 @@ static void prctl_set_all_vqs(struct vec_data *data) return; } - for (i = 0; i < ARRAY_SIZE(vec_data); i++) + for (i = 0; i < ARRAY_SIZE(vec_data); i++) { + if (!vec_type_supported(&vec_data[i])) + continue; orig_vls[i] = vec_data[i].rdvl(); + } for (vq = SVE_VQ_MIN; vq <= SVE_VQ_MAX; vq++) { vl = sve_vl_from_vq(vq); @@ -594,7 +602,7 @@ static void prctl_set_all_vqs(struct vec_data *data) if (&vec_data[i] == data) continue; - if (!(getauxval(vec_data[i].hwcap_type) & vec_data[i].hwcap)) + if (!vec_type_supported(&vec_data[i])) continue; if (vec_data[i].rdvl() != orig_vls[i]) { @@ -765,7 +773,7 @@ int main(void) struct vec_data *data = &vec_data[i]; unsigned long supported; - supported = getauxval(data->hwcap_type) & data->hwcap; + supported = vec_type_supported(data); if (!supported) all_supported = false;