Linux kernel 6.17
Introducció
El Linux Kernel 6.17 no introdueix una gran revolució, sinó que consolida i optimitza àrees clau del sistema: millores de rendiment en sistemes de fitxers, optimitzacions de gestió de CPU i NUMA, nous mecanismes de seguretat i més suport per a maquinari recent (Intel, AMD, Apple, Raspberry Pi). És una release que continua la transició cap a folis als sistemes de fitxers, neteja de codi antic (com el suport single-core) i amplia compatibilitat amb tecnologies modernes (GPU, big.LITTLE, virtualització).
Sistemes de fitxers
BTRFS
Al sistema de BTRFS s’han implementat optimitzacions:
-
Cachejar el free space bitmap
El mapa de bits d’espais lliures (free space bitmap) mostra on són les àrees de memòria lliures i on les àrees ocupades. Ara Btrfs pot cachejar aquest mapa, guanyant fins a un 20% de rendiment extra.
-
Millor lectura seqüencial per dades comprimides
S’ha implementat readahead per dades comprimides, és a dir, el sistema de fitxers pot carregar blocs previsibles abans que siguin necessaris.
-
Xarray més dens per extent buffers
Els extent buffers contenen l’estructura interna d’arbres de Btrfs. Tenir xarrays més densos vol dir que tenim menys nodes i fulles, pel que l’accès a dades és més ràpid i costa menys consultes al disc.
ext4
S’ha millorat la implementació per large folios implementada a la versió anterior del kernel.
A més, el codi d’assignació de blocs és més eficient, oferint menys fragmentació.
També ha millorat molt el rendiment, fins a 1468% en benchmarks específics i un 18% en càrregues reals. Fins i tot supera a XFS en alguns entorns.
VFS i altres FS
Noves syscalls:
-
file_getattr() i file_setattr(), que substitueixen les antigues FS_IOC_GETXATTR i FS_IOC_SETXATTR, més clares i robustes.
-
Nova flag per reservar espai a un disc omplint-lo de zeros: FSALLOC_WRITE_ZEROES. Aprofita les instruccions natives dels discos SSD enlloc d’escriure zeros manualment (com podria ser amb dd if=/dev/zero), fent-ho molt més eficient i requerint menys cicles d’escriptura.
-
Multi-device FS lost disk: Fins ara, si un disc es perdia es tancava el sistema de fitxers. Això no té massa sentit en sistemes de fitxers com certs tipus de RAID o similars que poden seguir treballant sense un dels discos. Ara quan es perd un disc, VFS enviarà un avís que permet al sistema de fitxers decidir com reaccionar. Encara no hi ha FS que ho implementin.
-
f2fs: Ara es troba sota la nova mounting API i suporta folis.
-
HFS (antic FS d’Apple): Han entrat nous mantenidors d’aquest sistema de fitxers.
-
EROFS: Permet comprimir metadata i millora readdir().
-
NTFS: Ja suporta symlinks creats a Windows i paths relatives.
CPU i SMP
SMP incondicional
El kernel ja només es compilarà amb suport SMP (multicore), ja que actualment pràcticament no existeixen els sistemes amb un sol nucli. Amb això, els sistemes mononucli seguiran funcionant però podrien tenir pitjor rendiment.
Priority inversion fix
Quan un procés de baixa prioritat té un mutex i un de prioritat alta el necessita, podria quedar bloquejat per processos de prioritat mitjana. Ara, el procés de baixa prioritat eleva temporalment la seva prioritat fins a alliberar el mutex.
Això permet millorar entorns crítics i en temps real.
SMP calls i NUMA-aware
Ara el kernel és més conscient de la tecnologia NUMA i assigna les tasques als nuclis més propers, fent els sistemes més eficients.
AMD Hardware Firmware Interface (HFI)
Ara té millor suport per arquitectures big.LITTLE (nuclis d’alt rendiment i nuclis d’alta eficiència). L’scheduler pot identificar quin tipus de nucli és quin i assignar les tasques de manera òptima.
CPUID faulting support
Permet interceptar instruccions CPUID fora del kernel, per exemple dins màquines virtuals. Així es pot simular característiques de la CPU als sistemes guest. Intel ja ho tenia i ara Linux ho integra de manera més transparent.
GPU i gràfics
-
Hibernació de GPU
Fins ara, quan un sistema entrava en hibernació, la VRAM de la GPU passava a memòria RAM i després a la memòria swap. Ara pot anar directament a l’espai de memòria swap, estalviant passes. A més, al tornar de la hibernació la GPU recarrega la memòria on-demand, fent més eficient el procès.
-
Suport complet per Intel XE3 (Panther Lake) a OpenGL i Vulkan.
-
AMD Smart Mux
Gestió més eficient en sistemes amb GPU dedicada + integrada.
-
DRM panic support
Ara es pot mostrar codis QR d’informació de kernel panic a pantalles amb GPUs Intel i Hyper-V.
Criptografia i seguretat
-
S’han eliminat optimitzacions antigues que resultaven més lentes que les implementacions normals.
-
Attack Vector Controls
S’ha afegit una nova classificació de mitigacions segons els vectors (user→kernel, user→user, guest→host, . Es poden activar selectivament per no afectar tant el rendiment del sistema.
Hardware i drivers
Intel
Suport per IPU7 (Image Processing Unit) a processadors Lunar Lake i Panther Lake.
Apple
Suport per System Management Controller (permetent reiniciar correctament, controlar la temperatura, el voltatge i la energia).
També s’ha desenvolupat suport inicial per als Touchbar dels MacBook Pro.
Raspberry Pi
Suport per al controlador d’E/S de Raspberry Pi 1 integrat dins la Pi 5 (encarregat d’USB2, USB3, càmera i display).
Altres
Nou driver EVAC per la correcció d’errors.
Suport per tecles F13-F24.
Nou codi “ice-key” per optimitzacions de rendiment en certs portàtils.
Rendiment i benchmarks
En aquesta nova versió del kernel veiem que, com hem comentat abans, ext4 ha millorat considerablement el rendiment, superant inclús a XFS en alguns workloads.
Amb les millors en CPU i NUMA, veiem fins a un 37% de rendiment extra en alguns benchmarks.
BCacheFS
Després de repetides discussions amb Kent Overstreet (mantenidor de BCacheFS), el projecte queda marcat com a “externally maintained”. Això fa que, tot i que està fora del kernel, es pot afegir.
I fins aquí el post d’avui. Si t’ha semblat útil pots deixar un comentari i compartir-lo. Ens veiem al següent!