Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

VORTEXM4: s2_usable() runs RDSVL before the SME2 check (SIGILL without SME)

Abierto
#6,150 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@tesch1 ya está trabajando en esto.

Desde el 21/10/2026.

  • #6153 de @tesch1 — abierto

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
c

Línea de trabajo

Start by reading kernel/arm64/sme2_gemm_detect.h and inspect how s2_usable() evaluates the SME2 check and svcntsw(). The issue points to disassembly of sme_sgemm_kernel.o as evidence of the SIGILL; compare that behavior with the fix described in linked pull request #6153. Done means s2_usable() does not execute RDSVL when SME2 is absent.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

s2_usable() in kernel/arm64/sme2_gemm_detect.h computes ok = sme2 && svcntsw() == 16;. Clang treats svcntsw() (RDSVL) as free of side effects and if-converts the expression, so RDSVL runs before the FEAT_SME2 result is tested. Disassembly of sme_sgemm_kernel.o (Apple clang 21):

bl    _sysctlbyname
ldr   w8, [sp, #0x8fc]      ; FEAT_SME2 value
rdsvl x9, #0x1              ; runs whether or not SME is present
lsr   x9, x9, #2
cmp   x9, #0x10
cset  w9, eq
cmp   w8, #0x0
csel  w8, wzr, w9, eq

On a CPU without SME this is SIGILL. A VORTEXM4 build is not meant to run on M1-M3, but before #6074 its level-3 routines still worked there on NEON kernels; now they reach the SME2 kernels' s2_usable() and crash. #6142 contains a fix (the vector length read in a separate noinline inline-asm function, called only when SME2 is present). That fix could also go in on its own, ahead of #6142.

Lenguaje dominante
C
Estrellas
7.6k
Forks
1.7k
Merge medio
1 d 17 h
PR fusionados (30 d)
47

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de OpenMathLib/OpenBLAS

Todos los issues de OpenMathLib/OpenBLAS

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.