# Linux 7.4 y RISC-V: copias de memoria más rápidas en kernels de distribución, crash hotplug y la extensión B

- **Publicado el:** 2026-10-31
- **Categoría:** Noticias
- **Página original:** https://linuxgratis.com/articulos/linux-7-4-risc-v

Linus Torvalds fusionó el 29 de octubre de 2026 los cambios de RISC-V para Linux 7.4. La optimización de copias a usuario con accesos desalineados rápidos pasa a decidirse al arrancar, así que llega a los kernels genéricos; además hay crash hotplug, soporte de la extensión B y de Zic64b y un refuerzo del shadow stack.

---

La ventana de integración de **Linux 7.4** se abrió tras la publicación de Linux 7.3 el 18 de octubre, y el **29 de octubre de 2026** Linus Torvalds fusionó la tanda de cambios de **RISC-V** que le envió **Paul Walmsley**, uno de los mantenedores de la arquitectura. Son 28 commits sin grandes titulares, pero con varias mejoras que llegarán a cualquiera que use un kernel de distribución en hardware RISC-V.

## Copias a usuario más rápidas, ahora también en kernels genéricos

El cambio más práctico es de **Andy Chiu**. Cuando el kernel copia datos entre su memoria y la de un programa (*user copy*), incluye código que alinea los accesos por software para los procesadores que llevan mal los accesos desalineados. En los núcleos que los manejan bien, saltarse ese código **sube el ancho de banda de la copia hasta un 11,4 %**, según la medición del propio parche.

Esa optimización ya existía, pero solo al compilar: dependía de `HAVE_EFFICIENT_UNALIGNED_ACCESS`, que a su vez exige marcar el kernel como no portable. Ninguna distribución hace eso, porque su kernel tiene que arrancar en placas muy distintas. En Linux 7.4 la decisión pasa al **arranque**: el kernel mide la velocidad de los accesos desalineados y, si la CPU es rápida, convierte el salto al código de alineado en una instrucción vacía mediante una *static key*. El resultado es que el mismo kernel genérico de Debian, Fedora o Ubuntu aprovecha la mejora donde el hardware lo permite.

## Crash hotplug y otras piezas del kernel

- **Crash hotplug** (Rui Qi): si se añaden o quitan CPU o memoria en caliente, la cabecera que describe el sistema al kernel de captura de fallos (`elfcorehdr`) se actualiza. Sin esto, un fallo tras un cambio de topología dejaba un volcado `vmcore` que no se correspondía con la máquina real. La implementación sigue el modelo de x86.
- **Tablas de páginas** (Jisheng Zhang): las funciones `pgtable_l4_enabled()` y `pgtable_l5_enabled()`, que dicen si se usan 4 o 5 niveles de paginación, devuelven un valor que no cambia una vez arrancado el sistema. Ahora se parchean en el arranque temprano o se fijan en Kconfig para kernels hechos a medida, con las nuevas opciones `RISCV_ISA_SV48` y `RISCV_ISA_SV57`.
- **Cambio de contexto**: se evita una lectura innecesaria del registro `sstatus` y se reorganiza el cambio de contexto de la unidad vectorial para optimizaciones que vendrán. Hay además un test de `kselftest` para la copia vectorizada.
- **PCIe**: la reasignación de buses pasa a depender del indicador `PCI_REASSIGN_ALL_BUS`, como en ARM64.
- `RISCV_ALTERNATIVE` deja de ser opcional, ahora que el soporte de kernels XIP ya se eliminó.

## Extensiones nuevas que ve el espacio de usuario

**Andrew Jones** añade la **extensión «B»** a `hwcap` y a `hwprobe`, la interfaz con la que los programas preguntan qué sabe hacer la CPU. «B» agrupa las extensiones de manipulación de bits Zba, Zbb y Zbs, y el kernel garantiza que, si informa de B, también marca las tres. Así un programa puede consultarla directamente, igual que ya pasaba con F, D, C o V.

También se puede declarar e informar de **Zic64b**, que indica que los bloques de caché son de 64 bytes. Se ha añadido a los árboles de dispositivos de los SoC **SpacemiT K1 y K3** y del **Sophgo SG2044**. Y la validación de los árboles de dispositivos obliga ahora a indicar el tamaño de bloque de las operaciones de gestión de caché (extensiones Zicbom, Zicbop y Zicboz).

## Seguridad y erratas

**Samuel Holland** refuerza el *shadow stack*, la pila protegida contra ataques que reescriben direcciones de retorno: ahora se comprueban los límites de la dirección del token de restauración antes de usarlo, para que no sirva de vector de ataque. Otro arreglo hace que las funciones de control del shadow stack y de los destinos de salto indirecto solo toquen el registro `envcfg` cuando operan sobre la tarea actual.

En hardware de MIPS con RISC-V se pueden aplicar erratas desde el arranque temprano, y en los **P8700** el kernel deja de usar la instrucción `WFI`, que tiene un fallo en ese chip, y la sustituye por `mips.pause`.

## KVM

Por el árbol de KVM llegan también los cambios de virtualización RISC-V para 7.4: soporte del `ioctl` `KVM_PRE_FAULT_MEMORY`, un arreglo en la entrega de interrupciones entre procesadores cuando los `vcpu_id` no van en orden y la posibilidad de exponer a los invitados las extensiones Zicclsm, Ziccamoa, Ziccif y Za64rs.

## Cuándo llega

Si se cumplen las dos semanas habituales de ventana de integración, la primera *release candidate*, Linux 7.4-rc1, saldrá este **domingo 1 de noviembre**, y la versión final hacia finales de diciembre o principios de enero. Las versiones del kernel y sus fechas las tienes en la [ficha de Linux](/linux-kernel). Si quieres ver cómo se aprovechan extensiones concretas de la arquitectura en una distribución, mira cómo [usar instrucciones personalizadas de RISC-V en Ubuntu](/articulos/ubuntu-risc-v-instrucciones-personalizadas). Y para comparar con un ciclo anterior, aquí tienes lo que trajo [Linux 7.1](/articulos/linux-kernel-7-1).

**Fuentes:** [merge «riscv-for-linus-7.4-mw1»](https://git.kernel.org/torvalds/c/1b8b67503725fa6deb3a4f00ea61f982bd00c152) y [merge «kvm-riscv-7.4-1»](https://git.kernel.org/torvalds/c/7e60162b16f9da0d2fa83da5c1723b6853a0ac1d) en el árbol de Linus Torvalds; commits de Andy Chiu («riscv: optmize ucopy for has_fast_unaligned_accesses»), Rui Qi («riscv: crash: Add crash hotplug support») y Andrew Jones («riscv: Add B to hwcap and hwprobe»).
