Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Mark Brown <broonie@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] arm64: Add missing registrations of SF8MMx hwcaps
Date: Mon, 10 Feb 2025 18:41:09 +0000	[thread overview]
Message-ID: <Z6pHPKXXnQ1whg57@J2N7QTR9R3> (raw)
In-Reply-To: <20250210-arm64-fix-2024-dpisa-v1-1-d77f43c7b253@kernel.org>

On Mon, Feb 10, 2025 at 05:49:33PM +0000, Mark Brown wrote:
> Commit 819935464cb2 ("arm64/hwcap: Describe 2024 dpISA extensions to
> userspace") added definitions for HWCAP_F8MM8 and HWCAP_F8MM4 but did
> not include the crucial registration in arm64_elf_hwcaps.  Add it.

Looking again, it looks like KERNEL_HWCAP_FPRCVT also isn't wired up?

I did a quick check for suspects in that commit with:

| [mark@lakrids:~/src/linux]% git show 819935464cb2 | grep '^+\s' | grep -o 'KERNEL_HWCAP_[A-Z0-9_]\+' | sort | uniq -c | sort -n
|       1 KERNEL_HWCAP_F8MM4
|       1 KERNEL_HWCAP_F8MM8
|       1 KERNEL_HWCAP_FPRCVT
|       1 KERNEL_HWCAP_SME_SF8MM4
|       1 KERNEL_HWCAP_SME_SF8MM8
|       2 KERNEL_HWCAP_CMPBR
|       2 KERNEL_HWCAP_SME2P2
|       2 KERNEL_HWCAP_SME_AES
|       2 KERNEL_HWCAP_SME_SBITPERM
|       2 KERNEL_HWCAP_SME_SFEXPA
|       2 KERNEL_HWCAP_SME_SMOP4
|       2 KERNEL_HWCAP_SME_STMOP
|       2 KERNEL_HWCAP_SVE2P2
|       2 KERNEL_HWCAP_SVE_AES2
|       2 KERNEL_HWCAP_SVE_BFSCALE
|       2 KERNEL_HWCAP_SVE_ELTPERM
|       2 KERNEL_HWCAP_SVE_F16MM

... and while KERNEL_HWCAP_SME_SF8MM4 and KERNEL_HWCAP_SME_SF8MM8 are
gone now, KERNEL_HWCAP_FPRCVT is still around AFAICT.

Checking against a tree based on v6.14-rc1, it superficially looks like
we're not missing any other KERNEL_HWCAP_* bits per a coarse search,
which shows three missing entries in cpufeature.c:

| [mark@lakrids:~/src/linux]% git grep -oh 'KERNEL_HWCAP_[A-Z0-9_]\+' -- arch/arm64/include/asm/hwcap.h | wc -l              
| 112
| [mark@lakrids:~/src/linux]% git grep -oh 'KERNEL_HWCAP_[A-Z0-9_]\+' -- arch/arm64/include/asm/hwcap.h | sort | uniq | wc -l
| 112
| [mark@lakrids:~/src/linux]% git grep -oh 'KERNEL_HWCAP_[A-Z0-9_]\+' -- arch/arm64/kernel/cpuinfo.c | sort | uniq | wc -l
| 112
| [mark@lakrids:~/src/linux]% git grep -oh 'KERNEL_HWCAP_[A-Z0-9_]\+' -- arch/arm64/kernel/cpufeature.c | sort | uniq | wc -l
| 109

... but maybe that misses something, and I haven't checked
COMPAT_HWCAP(*) or COMPAT_HWCAP2(*).

Could you please go check if there's anything else missing more generally?

Mark.

> Fixes: 819935464cb2 ("arm64/hwcap: Describe 2024 dpISA extensions to userspace")
> Reported-by: Mark Rutland <mark.rutland@arm.com>
> Signed-off-by: Mark Brown <broonie@kernel.org>
> ---
>  arch/arm64/kernel/cpufeature.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
> index f0910f20fbf8c18fbeb63bcee18abf13371b1d5e..2cde1e6e309a1b840e0e8dc3a5a55f07f0aadd82 100644
> --- a/arch/arm64/kernel/cpufeature.c
> +++ b/arch/arm64/kernel/cpufeature.c
> @@ -3190,6 +3190,8 @@ static const struct arm64_cpu_capabilities arm64_elf_hwcaps[] = {
>  	HWCAP_CAP(ID_AA64FPFR0_EL1, F8FMA, IMP, CAP_HWCAP, KERNEL_HWCAP_F8FMA),
>  	HWCAP_CAP(ID_AA64FPFR0_EL1, F8DP4, IMP, CAP_HWCAP, KERNEL_HWCAP_F8DP4),
>  	HWCAP_CAP(ID_AA64FPFR0_EL1, F8DP2, IMP, CAP_HWCAP, KERNEL_HWCAP_F8DP2),
> +	HWCAP_CAP(ID_AA64FPFR0_EL1, F8MM8, IMP, CAP_HWCAP, KERNEL_HWCAP_F8MM8),
> +	HWCAP_CAP(ID_AA64FPFR0_EL1, F8MM4, IMP, CAP_HWCAP, KERNEL_HWCAP_F8MM4),
>  	HWCAP_CAP(ID_AA64FPFR0_EL1, F8E4M3, IMP, CAP_HWCAP, KERNEL_HWCAP_F8E4M3),
>  	HWCAP_CAP(ID_AA64FPFR0_EL1, F8E5M2, IMP, CAP_HWCAP, KERNEL_HWCAP_F8E5M2),
>  #ifdef CONFIG_ARM64_POE
> 
> ---
> base-commit: 21fed7c223e20e694b91dbf25936d922a50c8b19
> change-id: 20250207-arm64-fix-2024-dpisa-635a5961609c
> 
> Best regards,
> -- 
> Mark Brown <broonie@kernel.org>
> 


  reply	other threads:[~2025-02-10 19:35 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-10 17:49 [PATCH] arm64: Add missing registrations of SF8MMx hwcaps Mark Brown
2025-02-10 18:41 ` Mark Rutland [this message]
2025-02-10 19:14   ` Mark Brown
2025-02-11 11:37     ` Mark Rutland
2025-02-11 12:58       ` Mark Brown
2025-02-11 13:15         ` Mark Rutland
2025-02-11 13:30           ` 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=Z6pHPKXXnQ1whg57@J2N7QTR9R3 \
    --to=mark.rutland@arm.com \
    --cc=broonie@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --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