pit
Na twee maanden ontwikkeling heeft Linus Torvalds de release aangekondigd van de nieuwe Linux-kernelversie 5.10 . Deze versie heeft de status van een branch met een lange ondersteuningsperiode, waarvan de updates gedurende minstens twee jaar zullen worden uitgebracht.
Opvallende wijzigingen in deze nieuwe versie zijn onder andere ondersteuning voor het MemTag-beveiligingsmechanisme voor ARM64-systemen, de "nosymfollow"-montageoptie, aanzienlijke Ext4-optimalisaties, een oplossing voor XFS 2038, een nieuwe systeemoproep process_madvise, verbeterde AMD SEV-ondersteuning via CPU-registerversleuteling en de mogelijkheid om BPF-programma's te pauzeren.
De nieuwe versie bevat 17470 bugfixes van 2062 ontwikkelaars; de patchgrootte bedraagt ​​64 MB (de wijzigingen betroffen 15101 bestanden, voegden 891932 regels code toe en verwijderden 619716 regels). Ongeveer 42% van alle wijzigingen in versie 5.10 heeft betrekking op apparaatstuurprogramma's , ongeveer 16% op het bijwerken van hardwarearchitectuurspecifieke code, 13% op de netwerkstack, 3% op bestandssystemen en 3% op interne kernelsubsystemen.
Belangrijkste nieuws in Linux 5.10
Een van de belangrijkste wijzigingen is de toevoeging van de fast_commit-modus voor ext4. Deze modus vermindert de vertraging bij veel bestandsbewerkingen aanzienlijk, doordat metadata sneller naar de schijf wordt weggeschreven bij het uitvoeren van een fsync()-aanroep. Normaal gesproken synchroniseert een fsync()-aanroep een redundante set metadata. In de fast_commit-modus wordt alleen de metadata die nodig is om het bestandssysteem te herstellen in geval van een crash naar het register overgebracht. Dit versnelt fsync()-aanroepen en verbetert de prestaties van bewerkingen die actief metadata manipuleren.
Terwijl voor Btrfs bevat belangrijke prestatie-optimalisaties met betrekking tot fsync()-bewerkingen. De vermindering van de log mutex-conflicten resulteerde in een toename van 4% in doorvoer en een vermindering van 14% in latentie bij het uitvoeren van de dbench-benchmark met 32 ​​clients. Het verwijderen van extra bevestigingen voor links en naamswijzigingen verhoogde de bandbreedte met 6% en verminderde de latentie met 30%. Door fsync te beperken om alleen te wachten op herschrijven, worden de prestaties met 10-40% verhoogd.
Bovendien heeft de Btrfs-implementatie van directe I/O (direct io) is verplaatst naar het iomap-framework.
XFS voegt wijzigingen toe aan de inode-metadata om overloopproblemen in het 32-bits datatype time_t in 2038 op te lossen. Vergelijkbare wijzigingen, waarbij de overloop van de tijdsteller naar het jaar 2468 werd verplaatst, werden toegevoegd aan de code voor het berekenen van de schijfquota. Het XFS V4-formaat wordt als verouderd beschouwd; gebruikers worden aangemoedigd om te upgraden naar het V5-formaat, maar er is voldoende tijd voor de upgrade, aangezien de ondersteuning voor V4 tot 2030 doorloopt. XFS heeft ook de grootte van de btree-inode aangepast, waardoor meer redundantiecontroles en snellere mounttijden mogelijk zijn.
Voor het FUSE-subsysteem geïmplementeerde ondersteuning voor DAX-bewerkingen voor directe toegang tot het bestandssysteem, waarbij de paginacache wordt omzeild zonder een blokkeringsapparaat op applicatieniveau dat wordt gebruikt om dubbele caching te voorkomen door de organisatie van gezamenlijke toegang tot gastsystemen, mappen en bestanden. Virtiofs voegt ook ondersteuning toe voor afzonderlijke montage van partities met verschillende koppelpunten op het hostsysteem.
Het F2FS-bestandssysteem voegt een nieuwe ATGC-modus (Age Threshold Garbage Collection) voor het verzamelen van ongewenste gegevens toe , verbeterde ondersteuning voor NVMe-apparaten met zones en snellere decompressie van gecomprimeerde gegevens.
In F2FS en Ext4 is de manier waarop met hoofdletterongevoelige bestandsnamen wordt gewerkt, herzien. Er is besloten om de implementatie van hoofdletterongevoelige bestandsnamen te uniformeren door de bijbehorende code naar een gemeenschappelijke bibliotheek te verplaatsen.
Een andere belangrijke wijziging betreft de asynchrone I/O-interface io_uring, die de mogelijkheid biedt om beperkte ringen te creëren die veilig kunnen worden gedeeld met een onbetrouwbaar proces. Deze functie stelt de basisapplicatie in staat om selectief de toegang tot alleen de eigen bestandsdescriptors te beperken voor gebruik door applicaties van derden via io_uring. Daarnaast is de vlag PIDFD_NONBLOCK toegevoegd aan de systeemoproep pidfd_open() om een ​​niet-vergrendelende bestandsdescriptor te creëren (vergelijkbaar met O_NONBLOCK voor pidfd).