De nieuwste versie van de Linux-kernel, versie 7.2, introduceert een belangrijke prestatieverbetering voor gebruikers van 32-bit ARM-systemen. Deze update zorgt ervoor dat de controles op datacorruptie veel sneller verlopen, wat de betrouwbaarheid en snelheid van opslag op deze apparaten ten goede komt. Het is een welkome optimalisatie voor een architectuur die nog steeds veel wordt gebruikt in bijvoorbeeld embedded systemen en oudere single-board computers.
Concreet gaat het om de implementatie van NEON-versnelde CRC64-NVMe code. Dat klinkt misschien technisch, maar het komt erop neer dat een speciale instructieset (NEON) op ARM-processors wordt ingezet om ‘checksums’ te berekenen. Een checksum is een soort digitale vingerafdruk van data, die helpt controleren of informatie tijdens het opslaan of overdragen niet beschadigd is geraakt. Eerder was deze versnelde code al beschikbaar voor de krachtigere 64-bit ARM-systemen (vanaf Linux 7.1), waar het de prestaties van deze controles tot wel zes keer verbeterde.
Voorheen vormde de generieke code voor deze controles een knelpunt, vooral bij het werken met NVMe-opslag en andere onderdelen van het opslagsysteem binnen de Linux-kernel. Nu is deze efficiënte, versnelde code ook aangepast om te werken op 32-bit ARM-processors. In de praktijk betekent dit dat apparaten zoals oudere Raspberry Pi’s, bepaalde NAS-systemen of industriële controllers die op 32-bit ARM draaien, nu sneller en efficiënter hun data kunnen verifiëren. Dit kan leiden tot een merkbaar vlottere werking van het systeem, vooral bij taken die veel dataverkeer met opslag met zich meebrengen.
Deze ontwikkeling toont aan dat de Linux-gemeenschap blijft investeren in het optimaliseren van de kernel voor een breed scala aan hardware, inclusief systemen die al langer meegaan. Het zorgt ervoor dat ook oudere ARM-apparaten kunnen profiteren van moderne prestatieverbeteringen, wat bijdraagt aan de algehele stabiliteit en efficiëntie van Linux op deze platformen.
Bron: https://www.phoronix.com/news/Linux-CRC64-NEON-On-ARM32
