Kernel Linux 5.14

Kernel Linux 5.14

Dopu dui mesi di sviluppu, Linus Torvalds introduttu liberazione di u kernel Linux 5.14. Trà i cambiamenti più notevuli: novi chjama di sistema quotactl_fd () è memfd_secret (), rimuzione di ide è driver crudi, novu controller di priorità I / O per cgroup, modalità di pianificazione di attività SCHED_CORE, infrastruttura per creà caricatori di prugramma BPF verificati.

A nova versione include 15883 correzioni da 2002 sviluppatori, a dimensione di u patch hè 69 MB (i cambiamenti anu affettatu 12580 file, 861501 linee di codice sò state aghjunte, 321654 linee sò state eliminate). Circa 47% di tutti i cambiamenti introdotti in 5.14 sò ligati à i driver di u dispositivu, circa 14% di i cambiamenti sò ligati à l'aghjurnamentu di codice specificu à l'architetture hardware, 13% sò ligati à a pila di rete, 3% sò ligati à i sistemi di schedari, è 3% sò ligati à i sottosistemi interni di u kernel.

menu innovazioni:

  • sottosistema di discu, input / output è sistemi di fugliale:
    • per cgroup implementatu novu controller di priorità I / O - rq-qos, chì pò cuntrullà a priorità di trattamentu di e dumande per bluccà i dispositi generati da i membri di ogni cgroup. Un novu supportu di cuntrollu di priorità hè statu aghjuntu à u pianificatore I / O mq-deadline;
    • nantu à u sistema di fugliale ext4 implementatu novu cumandamentu ioctl EXT4_IOC_CHECKPOINT, chì forza tutte e transazzioni pendenti da u logu è i buffers assuciati à u discu, è ancu overwrites l'area utilizata da u log in storage. U cambiamentu hè statu preparatu cum'è parte di una iniziativa per prevene i fughe di informazioni da i sistemi di schedari;
    • in Btrfs intruduttu Ottimisazioni di u rendiment: eliminendu u logu innecessariu di l'attributi estesi durante l'esekzione fsync, u rendiment di l'operazioni intensive cù attributi estesi aumentanu finu à u 17%. Inoltre, quandu eseguite operazioni di trim chì ùn anu micca influenza in estensioni, a sincronizazione completa hè disattivata, chì riduce u tempu di operazione da 12%. Un paràmetru hè statu aghjuntu à sysfs per limità a larghezza di banda I / O quandu verificate u FS. Aghjunghjite chjamate ioctl per annullà l'operazione di ridimensionamentu è di sguassà l'operazioni di u dispositivu;
    • in XFS rielaboratu implementazione di un buffer cache, chì hè trasferitu à l'assignazione di pagine di memoria in modu batch. efficienza di cache mejorata;
    • F2FS hà aghjustatu una opzione per travaglià in modu di sola lettura è hà implementatu un modu di caching di blocchi cumpressi (compress_cache) per migliurà a prestazione di lettura aleatoria. U supportu hè statu implementatu per cumpressione di i fugliali mappati in memoria cù l'operazione mmap (). Per disattivà selettivamente a compressione di u schedariu per maschera, una nova opzione di muntagna nocompress hè stata pruposta;
    • u travagliu hè statu fattu in u driver exFAT per migliurà a cumpatibilità cù l'almacenamiento di qualchi camera digitale;
    • chjamà sistema aghjuntu quotactl_fd(), chì vi permette di gestisce i quotes micca per mezu di un schedariu di u dispositivu speciale, ma per specificà un descriptor d'archiviu assuciatu cù u sistema di fugliale per quale a quota hè applicata;
    • I vechji drivers per i dispositi di bloccu cù l'interfaccia IDE sò stati eliminati da u kernel; sò longu rimpiazzati da u sottosistema libata. U supportu per i vechji dispositi hè statu mantinutu in tuttu, i cambiamenti riguardanu solu l'abilità di usà i vechji drivers, quandu si usanu chì i dischi eranu chjamati /dev/hd*, è micca /dev/sd*;
    • U driver "raw" hè statu eliminatu da u kernel, chì furnisce un accessu senza buffer à i dispositi bluccati via l'interfaccia /dev/raw. Sta funziunalità hè stata longa implementata in l'applicazioni chì utilizanu a bandiera O_DIRECT;
  • servizii di memoria è sistema:
    • un novu modu di pianificazione hè statu implementatu in u pianificatore di attività SCHED_CORE, chì vi permette di cuntrullà i prucessi chì ponu eseguisce inseme nantu à u stessu core CPU. Ogni prucessu pò esse assignatu un identificatore di cookie chì definisce u scopu di a fiducia trà i prucessi (per esempiu, appartenendu à u stessu utilizatore o cuntainer). Quandu urganizeghja l'esekzione di codice, u pianificatore pò assicurà chì un core di CPU hè spartutu solu trà i prucessi assuciati cù u stessu pruprietariu, chì pò esse usatu per bluccà certi attacchi Spectre impediscendu chì i travaglii affidabili è micca affidabili di eseguisce nantu à u stessu filu SMT (Hyper Threading). ;
    • per u mecanismu di cgroup, u supportu per l'operazione di uccisione hè statu implementatu, chì permette di tumbà tutti i prucessi assuciati à u gruppu in una volta (mandà SIGKILL) scrivendu "1" à u schedariu virtuale cgroup.kill;
    • capacità ampliate in relazione à risponde à a rilevazione di chjusi split ("split locks") chì si verificanu quandu accede à dati unaligned in memoria per u fattu chì quandu eseguisce una struzzione atomica, a dati attraversa duie linee di cache di CPU. Un tali bloccu porta à una calata significativa di u rendiment, cusì prima era pussibule di finisce in forza l'applicazione chì hà causatu u bloccu. A nova versione aghjusta u paràmetru di a linea di cummanda di u kernel "split_lock_detect = ratelimit: N", chì permette di definisce un limitu in tuttu u sistema di u ritmu di l'operazioni di chjusi per seconda, dopu avè superatu chì qualsiasi prucessu chì hè diventatu a fonte di un lock split. esse obligatu à piantà per 20 ms invece di finisce;
    • U controller di larghezza di banda di cgroup CFS (controller di larghezza di banda CFS), chì determina quantu tempu di u processatore pò esse attribuitu à ogni cgroup, hà a capacità di definisce limiti limitati da una determinata durata d'azzione, chì permette una regulazione megliu di carichi sensibili à a latenza. Per esempiu, stabilisce cpu.cfs_quota_us à 50000 è cpu.cfs_period_us à 100000 permetterà à un gruppu di prucessi per perdi 100ms di tempu CPU ogni 50ms;
    • aghjustatu infrastruttura iniziale per a creazione di caricatori di prugramma BPF, chì permetterà ancu di scaricà solu i prugrammi BPF firmati cù una chjave digitale di fiducia;
    • aghjunghje una nova operazione futex FUTEX_LOCK_PI2, chì usa un timer monotonicu per calculà u timeout, chì piglia in contu u tempu passatu da u sistema in modu di sonnu;
    • per l'architettura RISC-V, supportu per grandi pagine di memoria (Transparent Huge-Pages) è a capacità di utilizà KFENCE per identificà l'errore quandu u travagliu cù a memoria;
    • in a chiamata di sistema madvise(), chì furnisce un mezzu per ottimisà a gestione di a memoria di prucessu, aghjustatu Bandiere MADV_POPULATE_READ è MADV_POPULATE_WRITE per generà un "errore di pagina" in tutte e pagine di memoria mappate per operazioni di lettura o scrittura, senza fà una lettura o scrittura vera (prefault). L'usu di i bandieri pò esse utile per riduce i ritardi in l'esekzione di u prugramma, grazia à l'esekzione proattiva di u gestore di "colpa di pagina" per tutte e pagine micca allocate in una volta, senza aspittà per l'accessu propiu à elli;
    • in un sistema di teste di unità cunit aghjustatu supportu per l'esecuzione di teste in l'ambiente QEMU;
    • novi traccianti aghjustatu: "osnoise" per seguità i ritardi di l'applicazioni causati da a gestione di l'interruzzione, è "timerlat" per visualizà infurmazioni detallate nantu à i ritardi quandu si sveglia da un signalu di timer;
  • virtualizazione è sicurità:
    • aghjuntu chjama di sistema memfd_secret(), chì permette di creà una zona di memoria privata in un spaziu di indirizzu isolatu, visibile solu à u prucessu di u pruprietariu, micca riflessu in altri prucessi è micca direttamente accessibile à u kernel;
    • in u sistema di filtru di chjama di u sistema seccomp, quandu si move i manipulatori di serratura in u spaziu di l'utilizatori, hè pussibule aduprà una operazione atomica per creà un descrittore di file per un compitu isolatu è rinvià quandu si tratta una chjama di sistema. L'operazione pruposta risolve prublema cù l'interruzzione di u gestore in u spaziu di l'utilizatori quandu un signale arriva;
    • aghjuntu novu mecanismu per gestisce a limitazione di risorsa in u spaziu di nomi di l'ID d'utilizatore, chì unisce i contatori rlimit individuali à un utilizatore in u "spaziu di nomi d'utilizatore". U cambiamentu risolve u prublema cù l'usu di cuntatori di risorse cumuni quandu un utilizatore esegue prucessi in cuntenituri diffirenti;
    • l'ipervisore KVM per i sistemi ARM64 hà aghjustatu a capacità di utilizà l'estensione MTE (MemTag, Memory Tagging Extension) in i sistemi invitati, chì vi permette di ligà tag à ogni operazione d'allocazione di memoria è urganizà a verificazione di l'usu currettu di puntatori per bluccà a sfruttamentu di vulnerabilità causate da l'accessu à i blocchi di memoria digià liberati, overflows buffers, accesss before initialization and use outside the current context;
    • L'autenticazione di puntatore furnita da a piattaforma ARM64 pò avà esse cunfigurata separatamente per u kernel è u spaziu di l'utilizatori. A tecnulugia permette d'utilizà struzzioni ARM64 specializate per verificà l'indirizzi di ritornu cù e firma digitale chì sò almacenati in i bits superiori inutilizati di u puntatore stessu;
    • in u modu d'utilizatore Linux aghjustatu supportu per l'usu di driver per i dispositi PCI cù un bus PCI virtuale, implementatu da u driver PCI-over-virtio;
    • per i sistemi x86, aghjustatu supportu per u dispositivu paravirtualizatu virtio-iommu, chì permette di mandà richieste IOMMU, cum'è ATTACH, DETACH, MAP è UNMAP, sopra u trasportu virtio senza emulà e tavule di pagina di memoria;
    • Per i CPU Intel, da a famiglia Skylake à Coffee Lake, l'usu di Intel TSX (Transactional Synchronization Extensions), chì furnisce strumenti per migliurà a prestazione di l'applicazioni multi-threaded eliminendu dinamicamente l'operazioni di sincronizazione inutili, hè disattivatu per difettu. L'estensioni sò disattivate per via di a pussibilità di attacchi Zombieload, manipulendu a fuga di l'infurmazioni attraversu i canali di terzu chì si trova durante l'operazione di u mecanismu per l'interruzzione asincrona di l'operazioni (TAA, TSX Asynchronous Abort);
  • sottosistema di rete:
    • integrazione cuntinuata in u core di MPTCP (MultiPath TCP), una estensione di u protocolu TCP per urganizà l'operazione di una cunnessione TCP cù a consegna di pacchetti simultaneamente longu parechje rotte attraversu diverse interfacce di rete assuciate cù diversi indirizzi IP. In u novu numeru aghjuntu un mecanismu per stabilisce e vostre propiu pulitiche di hash di trafficu per IPv4 è IPv6 (pulitica di hash multipath), chì permette da u spaziu di l'utilizatori per determinà quali campi in pacchetti, cumpresi quelli incapsulati, seranu utilizati à u calculu di l'hash chì determina a scelta di u percorsu. per u pacchettu;
    • U supportu di socket hè statu aghjuntu à u virtio di trasportu virtuale SOCK_SEQPACKET (trasmissione ordinata è affidabile di datagrammi);
    • E capacità di u mecanismu di socket SO_REUSEPORT sò state allargate, chì permette à parechji sockets d'ascoltu per cunnette à un portu à una volta per riceve e cunnessione cù a distribuzione di e richieste entrate simultaneamente in tutti i sockets cunnessi via SO_REUSEPORT, chì simplifica a creazione di applicazioni di servitore multi-threaded. . In a nova versione aghjustatu i mezi di trasferimentu di cuntrollu à un altru socket in casu di fallimentu durante u processu di una dumanda da u socket inizialmente sceltu (risolve u prublema cù a perdita di cunnessione individuali quandu si riavvia i servizii);
  • equipaggiu:
    • in u driver amdgpu implementatu supportu per a nova serie di GPU AMD Radeon RX 6000, codenamed "Beige Goby" (Navi 24) è "Yellow Carp", è ancu un supportu migliuratu per Aldebaran GPU (gfx90a) è Van Gogh APU. Aggiunta a capacità di travaglià simultaneamente cù parechji pannelli eDP. Per APU Renoir, u supportu per travaglià cù buffers criptati in memoria video (TMZ, Trusted Memory Zone) hè statu implementatu. Aggiuntu supportu per e carte grafiche hot-unplug. Per i GPU Radeon RX 6000 (Navi 2x) è i GPU AMD più antichi, u supportu per u mecanismu di risparmiu di energia ASPM (Active State Power Management) hè attivatu per difettu, chì prima era attivatu solu per Navi 1x, Vega è Polaris GPU;
    • per i chips AMD, u supportu per a memoria virtuale sparta (SVM, memoria virtuale spartuta) hè stata aghjuntu basatu annantu à u sottusistema HMM (gestione di memoria heterogenea), chì permette l'usu di i dispositi cù e so unità di gestione di memoria (MMU, unità di gestione di memoria), chì ponu accede à a memoria principale. Includendu l'usu di HMM, pudete urganizà un spaziu di indirizzu cumuni trà a GPU è CPU, in quale a GPU pò accede à a memoria principale di u prucessu;
    • aghjustatu supportu tecnulugia iniziale AMD Smart Shift, chì cambia in modu dinamicu i paràmetri di cunsumu d'energia di u CPU è a GPU nantu à i laptops cù un chipset è una carta grafica AMD per rinfurzà a prestazione in u ghjocu, l'editazione di video è a rendering 3D;
    • in u driver i915 per e carte video Intel inclusu supportu per i chips Intel Alderlake P;
    • aghjustatu u driver drm/hyperv per l'adattatore graficu virtuale Hyper-V;
    • aghjuntu Driver graficu simpledrm chì usa u framebuffer EFI-GOP o VESA furnitu da u firmware UEFI o BIOS per l'output. U scopu principale di u driver hè di furnisce capacità di output gràficu durante e fasi iniziali di boot, prima chì un driver DRM cumpletu pò esse usatu. U cunduttore pò ancu esse usatu cum'è una suluzione tempurale per l'equipaggiu chì ùn hà micca ancu cunduttori DRM nativi;
    • aghjustatu supportu di computer all-in-one Rubu Pi 400;
    • Aggiuntu driver dell-wmi-privacy per sustene l'interruttori di hardware di càmera è microfonu inclusi in i laptop Dell;
    • per i laptop Lenovo aghjuntu Interfaccia WMI per cambià i paràmetri di u BIOS via sysfs /sys/class/firmware-attributes/;
    • allargatu supportu per i dispositi cù interfaccia USB4;
    • aghjustatu supportu per schede sonu è codecs AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 è Texas Instruments TAS2505. Supportu audio migliuratu nantu à i laptop HP è ASUS. Aggiuntu patches per riduce i ritardi prima chì l'audio cumencia à ghjucà nantu à i dispositi cù una interfaccia USB.

Fonte - opennet.ru.

Source: linux.org.ru