← Tornar als articles
Notícies· 4 min de lectura· David Carrero Fernández-Baillo

Linux 7.4 i RISC-V: còpies de memòria més ràpides en kernels de distribució, crash hotplug i l'extensió B

Commit de fusió de la branca riscv-for-linus-7.4-mw1 al repositori de Linus Torvalds, amb la llista de canvis de RISC-V enviada per Paul Walmsley
Captura: github.com/torvalds/linux (31-oct-2026)

La finestra d’integració de Linux 7.4 es va obrir després de la publicació de Linux 7.3 el 18 d’octubre, i el 29 d’octubre de 2026 Linus Torvalds va fusionar la tanda de canvis de RISC-V que li va enviar Paul Walmsley, un dels mantenidors de l’arquitectura. Són 28 commits sense grans titulars, però amb diverses millores que arribaran a qualsevol que faci servir un kernel de distribució en maquinari RISC-V.

Còpies a usuari més ràpides, ara també en kernels genèrics

El canvi més pràctic és d’Andy Chiu. Quan el kernel copia dades entre la seva memòria i la d’un programa (user copy), inclou codi que alinea els accessos per programari per als processadors que porten malament els accessos desalineats. En els nuclis que els gestionen bé, saltar-se aquest codi puja l’amplada de banda de la còpia fins a un 11,4 %, segons la mesura del mateix pedaç.

Aquesta optimització ja existia, però només en compilar: depenia de HAVE_EFFICIENT_UNALIGNED_ACCESS, que alhora obliga a marcar el kernel com a no portable. Cap distribució no ho fa, perquè el seu kernel ha d’arrencar en plaques molt diferents. A Linux 7.4 la decisió passa a l’arrencada: el kernel mesura la velocitat dels accessos desalineats i, si la CPU és ràpida, converteix el salt al codi d’alineació en una instrucció buida mitjançant una static key. El resultat és que el mateix kernel genèric de Debian, Fedora o Ubuntu aprofita la millora allà on el maquinari ho permet.

Crash hotplug i altres peces del kernel

  • Crash hotplug (Rui Qi): si s’afegeixen o es treuen CPU o memòria en calent, la capçalera que descriu el sistema al kernel de captura d’errors (elfcorehdr) s’actualitza. Sense això, un error després d’un canvi de topologia deixava un bolcat vmcore que no es corresponia amb la màquina real. La implementació segueix el model d’x86.
  • Taules de pàgines (Jisheng Zhang): les funcions pgtable_l4_enabled() i pgtable_l5_enabled(), que diuen si es fan servir 4 o 5 nivells de paginació, retornen un valor que no canvia un cop arrencat el sistema. Ara es pedacen a l’arrencada primerenca o es fixen a Kconfig per a kernels fets a mida, amb les noves opcions RISCV_ISA_SV48 i RISCV_ISA_SV57.
  • Canvi de context: s’evita una lectura innecessària del registre sstatus i es reorganitza el canvi de context de la unitat vectorial per a optimitzacions que vindran. També hi ha un test de kselftest per a la còpia vectoritzada.
  • PCIe: la reassignació de busos passa a dependre de l’indicador PCI_REASSIGN_ALL_BUS, com a ARM64.
  • RISCV_ALTERNATIVE deixa de ser opcional, ara que el suport de kernels XIP ja s’ha eliminat.

Extensions noves que veu l’espai d’usuari

Andrew Jones afegeix l’extensió «B» a hwcap i a hwprobe, la interfície amb què els programes pregunten què sap fer la CPU. «B» agrupa les extensions de manipulació de bits Zba, Zbb i Zbs, i el kernel garanteix que, si informa de B, també marca les tres. Així un programa la pot consultar directament, igual que ja passava amb F, D, C o V.

També es pot declarar i informar de Zic64b, que indica que els blocs de memòria cau són de 64 bytes. S’ha afegit als arbres de dispositius dels SoC SpacemiT K1 i K3 i del Sophgo SG2044. I la validació dels arbres de dispositius obliga ara a indicar la mida de bloc de les operacions de gestió de memòria cau (extensions Zicbom, Zicbop i Zicboz).

Seguretat i errates

Samuel Holland reforça el shadow stack, la pila protegida contra atacs que reescriuen adreces de retorn: ara es comproven els límits de l’adreça del testimoni de restauració abans de fer-la servir, perquè no serveixi de vector d’atac. Un altre arranjament fa que les funcions de control del shadow stack i de les destinacions de salt indirecte només toquin el registre envcfg quan actuen sobre la tasca actual.

En maquinari de MIPS amb RISC-V es poden aplicar errates des de l’arrencada primerenca, i als P8700 el kernel deixa de fer servir la instrucció WFI, que té un error en aquest xip, i la substitueix per mips.pause.

KVM

Per l’arbre de KVM arriben també els canvis de virtualització RISC-V per a la 7.4: suport de l’ioctl KVM_PRE_FAULT_MEMORY, un arranjament en el lliurament d’interrupcions entre processadors quan els vcpu_id no van en ordre i la possibilitat d’exposar als convidats les extensions Zicclsm, Ziccamoa, Ziccif i Za64rs.

Quan arriba

Si es compleixen les dues setmanes habituals de finestra d’integració, la primera release candidate, Linux 7.4-rc1, sortirà aquest diumenge 1 de novembre, i la versió final cap a finals de desembre o principis de gener. Les versions del kernel i les seves dates les tens a la fitxa de Linux. Si vols veure com s’aprofiten extensions concretes de l’arquitectura en una distribució, mira com fer servir instruccions personalitzades de RISC-V a Ubuntu. I per comparar amb un cicle anterior, aquí tens el que va portar Linux 7.1.

Fonts: merge «riscv-for-linus-7.4-mw1» i merge «kvm-riscv-7.4-1» a l’arbre de Linus Torvalds; commits d’Andy Chiu («riscv: optmize ucopy for has_fast_unaligned_accesses»), Rui Qi («riscv: crash: Add crash hotplug support») i Andrew Jones («riscv: Add B to hwcap and hwprobe»).