* [PATCH v2 1/2] selftest/arm64: Fix sve2p1_sigill() to hwcap test
2026-03-05 1:36 [PATCH v2 0/2] selftests/arm64: Fix sve2p1_sigill() and add cmpbr_sigill() for hwcap test Yifan Wu
@ 2026-03-05 1:36 ` Yifan Wu
2026-03-05 1:36 ` [PATCH v2 2/2] selftests/arm64: Implement cmpbr_sigill() " Yifan Wu
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Yifan Wu @ 2026-03-05 1:36 UTC (permalink / raw)
To: catalin.marinas, will, shuah, broonie, yeoreum.yun,
jonathan.cameron, wuyifan50, linux-kernel, linux-arm-kernel,
linux-kselftest, linuxarm
Cc: xiaqinxin, prime.zeng, wangyushan12, xuwei5, fanghao11, wangzhou1
The FEAT_SVE2p1 is indicated by ID_AA64ZFR0_EL1.SVEver. However,
the BFADD requires the FEAT_SVE_B16B16, which is indicated by
ID_AA64ZFR0_EL1.B16B16. This could cause the test to incorrectly
fail on a CPU that supports FEAT_SVE2.1 but not FEAT_SVE_B16B16.
LD1Q Gather load quadwords which is decoded from SVE encodings and
implied by FEAT_SVE2p1.
Fixes: c5195b027d29 ("kselftest/arm64: Add SVE 2.1 to hwcap test")
Signed-off-by: Yifan Wu <wuyifan50@huawei.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
---
tools/testing/selftests/arm64/abi/hwcap.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/arm64/abi/hwcap.c b/tools/testing/selftests/arm64/abi/hwcap.c
index 9d2df1f3e6bb..c2661a312fc9 100644
--- a/tools/testing/selftests/arm64/abi/hwcap.c
+++ b/tools/testing/selftests/arm64/abi/hwcap.c
@@ -475,8 +475,8 @@ static void sve2_sigill(void)
static void sve2p1_sigill(void)
{
- /* BFADD Z0.H, Z0.H, Z0.H */
- asm volatile(".inst 0x65000000" : : : "z0");
+ /* LD1Q {Z0.Q}, P0/Z, [Z0.D, X0] */
+ asm volatile(".inst 0xC400A000" : : : "z0");
}
static void sve2p2_sigill(void)
--
2.33.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v2 2/2] selftests/arm64: Implement cmpbr_sigill() to hwcap test
2026-03-05 1:36 [PATCH v2 0/2] selftests/arm64: Fix sve2p1_sigill() and add cmpbr_sigill() for hwcap test Yifan Wu
2026-03-05 1:36 ` [PATCH v2 1/2] selftest/arm64: Fix sve2p1_sigill() to " Yifan Wu
@ 2026-03-05 1:36 ` Yifan Wu
2026-03-05 14:15 ` Mark Brown
2026-03-06 12:26 ` [PATCH v2 0/2] selftests/arm64: Fix sve2p1_sigill() and add cmpbr_sigill() for " Will Deacon
2026-03-27 12:58 ` (subset) " Catalin Marinas
3 siblings, 1 reply; 8+ messages in thread
From: Yifan Wu @ 2026-03-05 1:36 UTC (permalink / raw)
To: catalin.marinas, will, shuah, broonie, yeoreum.yun,
jonathan.cameron, wuyifan50, linux-kernel, linux-arm-kernel,
linux-kselftest, linuxarm
Cc: xiaqinxin, prime.zeng, wangyushan12, xuwei5, fanghao11, wangzhou1
The function executes a CBEQ instruction which is valid if the CPU
supports the CMPBR extension. The CBEQ branches to skip the following
UDF instruction, and no SIGILL is generated. Otherwise, it will
generate a SIGILL.
Signed-off-by: Yifan Wu <wuyifan50@huawei.com>
---
tools/testing/selftests/arm64/abi/hwcap.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/arm64/abi/hwcap.c b/tools/testing/selftests/arm64/abi/hwcap.c
index c2661a312fc9..e22703d6b97c 100644
--- a/tools/testing/selftests/arm64/abi/hwcap.c
+++ b/tools/testing/selftests/arm64/abi/hwcap.c
@@ -56,7 +56,8 @@ static void atomics_sigill(void)
static void cmpbr_sigill(void)
{
- /* Not implemented, too complicated and unreliable anyway */
+ asm volatile(".inst 0x74C00040\n" /* CBEQ w0, w0, +8 */
+ "udf #0" : : : "cc"); /* UDF #0 */
}
static void crc32_sigill(void)
--
2.33.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH v2 2/2] selftests/arm64: Implement cmpbr_sigill() to hwcap test
2026-03-05 1:36 ` [PATCH v2 2/2] selftests/arm64: Implement cmpbr_sigill() " Yifan Wu
@ 2026-03-05 14:15 ` Mark Brown
0 siblings, 0 replies; 8+ messages in thread
From: Mark Brown @ 2026-03-05 14:15 UTC (permalink / raw)
To: Yifan Wu
Cc: catalin.marinas, will, shuah, yeoreum.yun, jonathan.cameron,
linux-kernel, linux-arm-kernel, linux-kselftest, linuxarm,
xiaqinxin, prime.zeng, wangyushan12, xuwei5, fanghao11, wangzhou1
[-- Attachment #1: Type: text/plain, Size: 333 bytes --]
On Thu, Mar 05, 2026 at 09:36:38AM +0800, Yifan Wu wrote:
> The function executes a CBEQ instruction which is valid if the CPU
> supports the CMPBR extension. The CBEQ branches to skip the following
> UDF instruction, and no SIGILL is generated. Otherwise, it will
> generate a SIGILL.
Reviewed-by: Mark Brown <broonie@kernel.org>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/2] selftests/arm64: Fix sve2p1_sigill() and add cmpbr_sigill() for hwcap test
2026-03-05 1:36 [PATCH v2 0/2] selftests/arm64: Fix sve2p1_sigill() and add cmpbr_sigill() for hwcap test Yifan Wu
2026-03-05 1:36 ` [PATCH v2 1/2] selftest/arm64: Fix sve2p1_sigill() to " Yifan Wu
2026-03-05 1:36 ` [PATCH v2 2/2] selftests/arm64: Implement cmpbr_sigill() " Yifan Wu
@ 2026-03-06 12:26 ` Will Deacon
2026-03-27 5:59 ` wuyifan
2026-03-27 12:58 ` (subset) " Catalin Marinas
3 siblings, 1 reply; 8+ messages in thread
From: Will Deacon @ 2026-03-06 12:26 UTC (permalink / raw)
To: catalin.marinas, shuah, broonie, yeoreum.yun, jonathan.cameron,
linux-kernel, linux-arm-kernel, linux-kselftest, linuxarm,
Yifan Wu
Cc: kernel-team, Will Deacon, xiaqinxin, prime.zeng, wangyushan12,
xuwei5, fanghao11, wangzhou1
On Thu, 05 Mar 2026 09:36:36 +0800, Yifan Wu wrote:
> This patch series fixes and adds two selftests in the arm64 hwcap
> test suite.
>
> Patch 1/2 fixes the sve2p1_sigill() test to correctly detect the
> FEAT_SVE2p1 feature. Previously, the test incorrectly assumed that
> the presence of FEAT_SVE2.1 implied support for the BFADD
> instruction, which actually depends on the FEAT_SVE_B16B16 feature.
> The test is updated to use the LD1Q instruction, which is
> unambiguously implied by FEAT_SVE2p1.
>
> [...]
Applied first patch to arm64 (for-next/fixes), thanks!
[1/2] selftest/arm64: Fix sve2p1_sigill() to hwcap test
https://git.kernel.org/arm64/c/d87c828daa7e
Cheers,
--
Will
https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH v2 0/2] selftests/arm64: Fix sve2p1_sigill() and add cmpbr_sigill() for hwcap test
2026-03-06 12:26 ` [PATCH v2 0/2] selftests/arm64: Fix sve2p1_sigill() and add cmpbr_sigill() for " Will Deacon
@ 2026-03-27 5:59 ` wuyifan
0 siblings, 0 replies; 8+ messages in thread
From: wuyifan @ 2026-03-27 5:59 UTC (permalink / raw)
To: Will Deacon, catalin.marinas, shuah, broonie, yeoreum.yun,
jonathan.cameron, linux-kernel, linux-arm-kernel, linux-kselftest,
linuxarm
Cc: kernel-team, xiaqinxin, prime.zeng, wangyushan12, xuwei5,
fanghao11, wangzhou1
HiWill,
Gentle ping on patch 2/2. I have received a Reviewed-by from Mark Brown
and there have been no further review comments so far.
Could you please consider applying it if everything looks good?
On 3/6/2026 8:26 PM, Will Deacon wrote:
> On Thu, 05 Mar 2026 09:36:36 +0800, Yifan Wu wrote:
>> This patch series fixes and adds two selftests in the arm64 hwcap
>> test suite.
>>
>> Patch 1/2 fixes the sve2p1_sigill() test to correctly detect the
>> FEAT_SVE2p1 feature. Previously, the test incorrectly assumed that
>> the presence of FEAT_SVE2.1 implied support for the BFADD
>> instruction, which actually depends on the FEAT_SVE_B16B16 feature.
>> The test is updated to use the LD1Q instruction, which is
>> unambiguously implied by FEAT_SVE2p1.
>>
>> [...]
> Applied first patch to arm64 (for-next/fixes), thanks!
>
> [1/2] selftest/arm64: Fix sve2p1_sigill() to hwcap test
> https://git.kernel.org/arm64/c/d87c828daa7e
>
> Cheers,
Thanks,
Yifan
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: (subset) [PATCH v2 0/2] selftests/arm64: Fix sve2p1_sigill() and add cmpbr_sigill() for hwcap test
2026-03-05 1:36 [PATCH v2 0/2] selftests/arm64: Fix sve2p1_sigill() and add cmpbr_sigill() for hwcap test Yifan Wu
` (2 preceding siblings ...)
2026-03-06 12:26 ` [PATCH v2 0/2] selftests/arm64: Fix sve2p1_sigill() and add cmpbr_sigill() for " Will Deacon
@ 2026-03-27 12:58 ` Catalin Marinas
2026-03-27 13:00 ` Catalin Marinas
3 siblings, 1 reply; 8+ messages in thread
From: Catalin Marinas @ 2026-03-27 12:58 UTC (permalink / raw)
To: will, shuah, broonie, yeoreum.yun, jonathan.cameron, linux-kernel,
linux-arm-kernel, linux-kselftest, linuxarm, Yifan Wu
Cc: xiaqinxin, prime.zeng, wangyushan12, xuwei5, fanghao11, wangzhou1
On Thu, 05 Mar 2026 09:36:36 +0800, Yifan Wu wrote:
> This patch series fixes and adds two selftests in the arm64 hwcap
> test suite.
>
> Patch 1/2 fixes the sve2p1_sigill() test to correctly detect the
> FEAT_SVE2p1 feature. Previously, the test incorrectly assumed that
> the presence of FEAT_SVE2.1 implied support for the BFADD
> instruction, which actually depends on the FEAT_SVE_B16B16 feature.
> The test is updated to use the LD1Q instruction, which is
> unambiguously implied by FEAT_SVE2p1.
>
> [...]
Applied to arm64 (for-kernelci), thanks!
[2/2] selftests/arm64: Implement cmpbr_sigill() to hwcap test
https://git.kernel.org/arm64/c/74cd4e0e5399
--
Catalin
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: (subset) [PATCH v2 0/2] selftests/arm64: Fix sve2p1_sigill() and add cmpbr_sigill() for hwcap test
2026-03-27 12:58 ` (subset) " Catalin Marinas
@ 2026-03-27 13:00 ` Catalin Marinas
0 siblings, 0 replies; 8+ messages in thread
From: Catalin Marinas @ 2026-03-27 13:00 UTC (permalink / raw)
To: will, shuah, broonie, yeoreum.yun, jonathan.cameron, linux-kernel,
linux-arm-kernel, linux-kselftest, linuxarm, Yifan Wu
Cc: xiaqinxin, prime.zeng, wangyushan12, xuwei5, fanghao11, wangzhou1
On Fri, Mar 27, 2026 at 12:58:11PM +0000, Catalin Marinas wrote:
> On Thu, 05 Mar 2026 09:36:36 +0800, Yifan Wu wrote:
> > This patch series fixes and adds two selftests in the arm64 hwcap
> > test suite.
> >
> > Patch 1/2 fixes the sve2p1_sigill() test to correctly detect the
> > FEAT_SVE2p1 feature. Previously, the test incorrectly assumed that
> > the presence of FEAT_SVE2.1 implied support for the BFADD
> > instruction, which actually depends on the FEAT_SVE_B16B16 feature.
> > The test is updated to use the LD1Q instruction, which is
> > unambiguously implied by FEAT_SVE2p1.
> >
> > [...]
>
> Applied to arm64 (for-kernelci), thanks!
Wrong branch, it's for-next/kselftest (script got confused).
^ permalink raw reply [flat|nested] 8+ messages in thread