Utsøking av Linux-kjerne 6.13

Etter to måneders utvikling presenterte Linus Torvalds utgivelsen av Linux-kjerne 6.13. Blant de mest betydningsfulle endringene er: modus for lat utskyting i oppgaveplanleggeren, støtte for atomær skriving i XFS og Ext4, mekanisme for «multigrain timestamps», adaptiv modus for polling i nettverksunderdelen, mulighet for kompilering med AutoFDO-optimiseringer, støtte for beskyttelsesmekanismen ARM65 Guarded Control Stack, isolering av virtuelle maskiner ved hjelp av ARM CCA-utvidelsen, separate stakker i BPF, fjerning av ReiserFS, driver virtual-cpufreq, netlink API net-shaper, tmpfs monteringsmodus med store bokstaver, støtte for POSIX-utvidelser i SMB3, driver AMD Cache Optimizer.

Den nye versjonen inneholder 14172 feilrettinger fra 2086 utviklere, patch-størrelsen er 46 MB (endringene berørte 15375 filer, 598707 linjer kode ble lagt til, 406294 linjer ble slettet). I forrige utgave var det 14607 feilrettinger fra 2167 utviklere, patch-størrelsen var 37 MB. Omtrent 52 % av alle endringene i 6.13 er relatert til enhetsdrivere, omtrent 13 % av endringene gjelder oppdatering av arkitekturspesifikk kode, 11 % er relatert til nettverksstakken, 4 % til filsystemer og 3 % til de interne subsystemene i kjernen.

Hovednyhetene i kjerne 6.13:

  • Disk subsystem, I/O og filsystemer
    • En mekanisme for «multigrain timestamps» er lagt til, som muliggjør å få informasjon om når filer endres eller åpnes med mer enn millisekundpresisjon, men uten negative effekter på ytelsen. Økningen i nøyaktigheten av tidsstempler fører til ekstra kostnader på grunn av økt intensitet av metadata-skriving til disk, så i det foreslåtte systemet blir mer nøyaktige stempler ikke opprettet for alle filer, men bare for de som prosesser ber om slike stempler via kallet getattr().
    • Støtte for atomære skriveoperasjoner er lagt til, der skriving av data som overstiger sektorstørrelsen, utføres atomært på lagringsenheter som tilbyr slik mulighet. For øyeblikket er atomær skriving implementert for XFS, Ext4 i O_DIRECT-modus (Direct I/O) og md RAID 0/1/10.
    • En ny mekanisme for referansetelling for filer er foreslått, noe som gir en ytelsesforbedring på 3-5 % i arbeidsoppgaver med mer enn 255 tråder.
    • Implementeringen av filsystemet ReiserFS er fjernet, som for to år siden ble erklært foreldet.
    • Ennytt sysctl-parametret «fs.dentry-negative» for å sette VFS-policy for å rydde opp i «dentry»-oppføringer (den interne representasjonen av katalogelementer) etter fjerning av relaterte filer. For noen typer belastning er det mer optimalt å beholde slike oppføringer om slettede filer, mens for andre er det bedre å slette dem. Derfor er det i kjernen gjort mulig å velge (standard er at «dentry» ikke slettes automatisk).
    • Det er lagt til et flagg til systemkallet statmount() kalt STATMOUNT_OPT_ARRAY for å returnere en liste over filsystemalternativer som et array av strenger, som avsluttes med null-tegn og ikke bruker escape-sekvensen «\000». Støtte for å returnere underkategori av FS (fs_subtype, for å bestemme bruken av FUSE), sikre monteringsalternativer og kilde superblokk (sb_source) er også lagt til.
    • I OverlayFS er det nå mulig å spesifisere lag gjennom filbeskriver, i stedet for filbanenavn.
    • Det er lagt til et monteringsalternativ «casefold» til filsystemet tmpfs for å fungere uten hensyn til store og små bokstaver, samt alternativet «strict_encoding» for å blokkere opprettelsen av filer med navn som inneholder ugyldige UTF-8-tegn.
    • Et nytt sett med systemkall for å håndtere utvidede filattributter er foreslått: setxattrat(), getxattrat(), listxattrat() og removexattrat(). I motsetning til systemkallene setxattr(), getxattr(), listxattr() og removexattr() krever de nye versjonene at filbeskriveren for katalogen, relatert til hvilken filbane som søkes, blir spesifisert.
    • I Btrfs er ioctl-operasjonen BTRFS_IOC_SUBVOL_SYNC_WAIT lagt til, som inkluderer venting på fullførelsen av opprydning av undervolumer, noe som lar en «btrfs subvolume sync»-kommando utføres av ikke-privilegerte brukere som ikke har tilgang til ioctl SEARCH_TREE (nyttig i sikkerhetskopieringsprogrammer som rydder opp undervolumer). ioctl-operasjonen ENCODED_READ er lagt til for lesing av kodede data via io_uring, for eksempel for direkte lesing av komprimerte ekstenter uten dekomprimering. Arbeidet med å gå over til bruk av minnesider (page folios) har fortsatt. Forekomsten av konkurrerende låser («lock contention») ved søk etter innebygde tilbakestrenger og ved gjennomgang av ekstentbufferne er redusert. Effektiviteten ved komprimering av ekstentkartet er forbedret.
    • I filsystemet EROFS (Extendable Read-Only File System), som er laget for bruk på partisjoner som kun er tilgjengelige for lesing, er det implementert muligheten for å bruke alternativene SEEK_HOLE og SEEK_DATA i systemanropet lseek().
    • I F2FS er støtte for enhetsrefleksjon («device aliasing») lagt til, noe som gjør det mulig å midlertidig reservere et område i F2FS for å bruke en del av et blokkdeksel i et annet FS. Etter at den eksterne operasjonen er fullført, kan det reserverte området returneres til F2FS. For eksempel kan du lage en filsystem ved hjelp av kommandoen «mkfs.f2fs -c /dev/vdc@vdc.file /dev/vdb», hvoretter innholdet på enheten /dev/vdc blir reservert og speilet i filen vdc.file, og partisjonen /dev/vdc kan brukes til egne behov, for eksempel formateres til et annet FS. For å returnere det reserverte innholdet, er det nok å slette filen vdc.file.
    • I XFS er støtte for kvoter for realtidsenheter lagt til. Støtte for en metadata-katalog (metadata directory) som inneholder alle inode med metadata, er også lagt til.
    • I FUSE-mekanismen er det mulig å dynamisk endre maksimalt antall sider (FUSE_MAX_MAX_PAGES) ved å bruke «sysctl fs.fuse.max_pages_limit». Driften involverer minnesider (page folios).
    • I SMB er støtte for POSIX-utvidelser for SMB3 som er nødvendige for lagring av spesielle filtyper, som fifo, enhetsfiler og symboliske lenker, implementert. Muligheten for å montere et partisjon med et alternativt passord, som brukes ved rotasjon av passord, er også lagt til. En ny monteringsalternativ «cifs.upcall» er innført for å definere navnerom. Gjenkjennelse av symboliske og blokkerte enhetsfiler opprettet i Windows NFS Server er sikret. Støtte for symboliske lenker i stil med WSL (Windows Subsystem for Linux) er også lagt til.
    • Filssystemene UBIFS, ADFS, BEFS, HFS, HFSPLUS, HPFS, JFS og ECRYPTFS er konvertert til å bruke det nye API-et for montering av partisjoner.
    • Filssystemene og ECRYPTFS, UFS og NILFS2 er overført til å bruke minnesider (page folios).
  • Minne og systemtjenester
    • I planleggeren er det implementert en modell for lat utskifting av oppgaver (PREEMPT_LAZY, lazy preemption), som tilsvarer modellen for full utskifting («full preemption») for realtime-oppgaver (RR/FIFO/DEADLINE), men forsinker utskiftingen av vanlige oppgaver (SCHED_NORMAL) til tikkingens grense. Den angitte forsinkelsen fører til færre tilfeller av utskifting av låseholdere, noe som gjør at ytelsen nærmer seg konfigurasjoner som bruker modellen for frivillig utskifting (voluntary preemption). Slik gjør den nye modellen det mulig å beholde mulighetene for full utskifting når det gjelder realtime-oppgaver, samtidig som nedgangen i ytelse for vanlige oppgaver minimeres. I tillegg forenkler den nye modellen logikken for utskifting av oppgaver i kjernen, takket være unntaket fra planleggingsprosessen av håndterere som er i andre komponenter av kjernen (utenfor oppgaveplanleggeren).
    • Ved kompilering med Clang-compiler er det mulighet for å bruke optimaliseringer

      Kilde: opennet.ru
Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster