From: Mark Brown <broonie@kernel.org>
To: Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Shuah Khan <skhan@linuxfoundation.org>,
Shuah Khan <shuah@kernel.org>
Cc: Alan Hayward <alan.hayward@arm.com>,
Luis Machado <luis.machado@arm.com>,
Salil Akerkar <Salil.Akerkar@arm.com>,
Basant Kumar Dwivedi <Basant.KumarDwivedi@arm.com>,
Szabolcs Nagy <szabolcs.nagy@arm.com>,
linux-arm-kernel@lists.infradead.org,
linux-kselftest@vger.kernel.org, Mark Brown <broonie@kernel.org>
Subject: [PATCH v4 12/33] arm64/sme: Implement sysctl to set the default vector length
Date: Thu, 21 Oct 2021 19:07:01 +0100 [thread overview]
Message-ID: <20211021180722.3699248-13-broonie@kernel.org> (raw)
In-Reply-To: <20211021180722.3699248-1-broonie@kernel.org>
As for SVE provide a sysctl which allows the default SME vector length to
be configured.
Signed-off-by: Mark Brown <broonie@kernel.org>
---
arch/arm64/kernel/fpsimd.c | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/kernel/fpsimd.c b/arch/arm64/kernel/fpsimd.c
index 0b2c4dfdf9fb..65b6ccc3f8de 100644
--- a/arch/arm64/kernel/fpsimd.c
+++ b/arch/arm64/kernel/fpsimd.c
@@ -479,6 +479,30 @@ static int __init sve_sysctl_init(void)
static int __init sve_sysctl_init(void) { return 0; }
#endif /* ! (CONFIG_ARM64_SVE && CONFIG_SYSCTL) */
+#if defined(CONFIG_ARM64_SME) && defined(CONFIG_SYSCTL)
+static struct ctl_table sme_default_vl_table[] = {
+ {
+ .procname = "sme_default_vector_length",
+ .mode = 0644,
+ .proc_handler = vec_proc_do_default_vl,
+ .extra1 = &vl_info[ARM64_VEC_SME],
+ },
+ { }
+};
+
+static int __init sme_sysctl_init(void)
+{
+ if (system_supports_sme())
+ if (!register_sysctl("abi", sme_default_vl_table))
+ return -EINVAL;
+
+ return 0;
+}
+
+#else /* ! (CONFIG_ARM64_SME && CONFIG_SYSCTL) */
+static int __init sme_sysctl_init(void) { return 0; }
+#endif /* ! (CONFIG_ARM64_SME && CONFIG_SYSCTL) */
+
#define ZREG(sve_state, vq, n) ((char *)(sve_state) + \
(SVE_SIG_ZREG_OFFSET(vq, n) - SVE_SIG_REGS_OFFSET))
@@ -1673,6 +1697,9 @@ static int __init fpsimd_init(void)
if (cpu_have_named_feature(SME) && !cpu_have_named_feature(SVE))
pr_notice("SME is implemented but not SVE\n");
- return sve_sysctl_init();
+ sve_sysctl_init();
+ sme_sysctl_init();
+
+ return 0;
}
core_initcall(fpsimd_init);
--
2.30.2
next prev parent reply other threads:[~2021-10-21 18:08 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-21 18:06 [PATCH v4 00/33] arm64/sme: Initial support for the Scalable Matrix Extension Mark Brown
2021-10-21 18:06 ` [PATCH v4 01/33] arm64/sve: Make sysctl interface for SVE reusable by SME Mark Brown
2021-10-21 18:06 ` [PATCH v4 02/33] arm64/sve: Generalise vector length configuration prctl() for SME Mark Brown
2021-10-21 18:06 ` [PATCH v4 03/33] kselftest/arm64: Parameterise ptrace vector length information Mark Brown
2021-10-21 18:06 ` [PATCH v4 04/33] kselftest/arm64: Allow signal tests to trigger from a function Mark Brown
2021-10-21 18:06 ` [PATCH v4 05/33] tools/nolibc: Implement gettid() Mark Brown
2021-10-21 18:06 ` [PATCH v4 06/33] arm64/sme: Provide ABI documentation for SME Mark Brown
[not found] ` <VI1PR08MB3919C2F171F2185FB3500DD08B839@VI1PR08MB3919.eurprd08.prod.outlook.com>
2021-10-26 13:47 ` Mark Brown
2021-10-27 11:14 ` Szabolcs Nagy
2021-10-21 18:06 ` [PATCH v4 07/33] arm64/sme: System register and exception syndrome definitions Mark Brown
2021-10-21 18:06 ` [PATCH v4 08/33] arm64/sme: Define macros for manually encoding SME instructions Mark Brown
2021-10-21 18:06 ` [PATCH v4 09/33] arm64/sme: Early CPU setup for SME Mark Brown
2021-10-21 18:06 ` [PATCH v4 10/33] arm64/sme: Basic enumeration support Mark Brown
2021-10-21 18:07 ` [PATCH v4 11/33] arm64/sme: Identify supported SME vector lengths at boot Mark Brown
2021-10-21 18:07 ` Mark Brown [this message]
2021-10-21 18:07 ` [PATCH v4 13/33] arm64/sme: Implement vector length configuration prctl()s Mark Brown
2021-10-21 18:07 ` [PATCH v4 14/33] arm64/sme: Implement support for TPIDR2 Mark Brown
2021-10-21 18:07 ` [PATCH v4 15/33] arm64/sme: Implement SVCR context switching Mark Brown
2021-10-21 18:07 ` [PATCH v4 16/33] arm64/sme: Implement streaming SVE " Mark Brown
2021-10-21 18:07 ` [PATCH v4 17/33] arm64/sme: Implement ZA " Mark Brown
2021-10-21 18:07 ` [PATCH v4 18/33] arm64/sme: Implement traps and syscall handling for SME Mark Brown
2021-10-21 18:07 ` [PATCH v4 19/33] arm64/sme: Implement streaming SVE signal handling Mark Brown
2021-10-21 18:07 ` [PATCH v4 20/33] arm64/sme: Implement ZA " Mark Brown
2021-10-21 18:07 ` [PATCH v4 21/33] arm64/sme: Implement ptrace support for streaming mode SVE registers Mark Brown
2021-10-21 18:07 ` [PATCH v4 22/33] arm64/sme: Add ptrace support for ZA Mark Brown
2021-10-21 18:07 ` [PATCH v4 23/33] arm64/sme: Disable streaming mode and ZA when flushing CPU state Mark Brown
2021-10-21 18:07 ` [PATCH v4 24/33] arm64/sme: Save and restore streaming mode over EFI runtime calls Mark Brown
2021-10-21 18:07 ` [PATCH v4 25/33] arm64/sme: Provide Kconfig for SME Mark Brown
2021-10-21 18:07 ` [PATCH v4 26/33] kselftest/arm64: sme: Add streaming SME support to vlset Mark Brown
2021-10-21 18:07 ` [PATCH v4 27/33] kselftest/arm64: Add tests for TPIDR2 Mark Brown
2021-10-21 18:07 ` [PATCH v4 28/33] kselftest/arm64: Extend vector configuration API tests to cover SME Mark Brown
2021-10-21 18:07 ` [PATCH v4 29/33] kselftest/arm64: sme: Provide streaming mode SVE stress test Mark Brown
2021-10-21 18:07 ` [PATCH v4 30/33] kselftest/arm64: Add stress test for SME ZA context switching Mark Brown
2021-10-21 18:07 ` [PATCH v4 31/33] kselftest/arm64: signal: Add SME signal handling tests Mark Brown
2021-10-21 18:07 ` [PATCH v4 32/33] kselftest/arm64: Add streaming SVE to SVE ptrace tests Mark Brown
2021-10-21 18:07 ` [PATCH v4 33/33] kselftest/arm64: Add coverage for the ZA ptrace interface Mark Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211021180722.3699248-13-broonie@kernel.org \
--to=broonie@kernel.org \
--cc=Basant.KumarDwivedi@arm.com \
--cc=Salil.Akerkar@arm.com \
--cc=alan.hayward@arm.com \
--cc=catalin.marinas@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=luis.machado@arm.com \
--cc=shuah@kernel.org \
--cc=skhan@linuxfoundation.org \
--cc=szabolcs.nagy@arm.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox