Eine wesentliche Leistungsoptimierung für die RISC-V-Architektur wurde in den Linux-Kernel 7.4 integriert, um Einschränkungen früherer Versionen zu beheben. Während eine frühere Optimierung, die in Linux 7.3 eingeführt wurde, es Kernels ermöglichte, Software-Ausrichtung für Hardware zu überspringen, die schnelle nicht-ausgerichtete Speicherkopien unterstützt, erforderte dies, dass diese Unterstützung direkt in den Kernel kompiliert wird. Diese Anforderung zur Kompilierzeit behinderte die Portabilität und erschwerte es generischen RISC-V-Builds, die Funktion über verschiedene Hardwarekonfigurationen hinweg zu nutzen, bei denen einige Geräte möglicherweise keine effizienten nicht-ausgerichteten Zugriffe unterstützen.
Mit der Ankunft von Linux 7.4 wurde der Mechanismus zum Überspringen der Software-Ausrichtung auf die Erkennung zur Laufzeit verlagert. Der Kernel prüft nun dynamisch nach der Fähigkeit "HAVE_EFFICIENT_UNALIGNED_ACCESS", wenn er Benutzerkopien verarbeitet. Diese Änderung ermöglicht es, dass Distribution-Kernel und andere generische Builds die Optimierung universell einschließen können, wodurch Systeme mit kompatibler Hardware automatisch von verbesserter Leistung profitieren, ohne dass spezifische Kompilierungsflags erforderlich sind.
Tests, die von Tenstorrent durchgeführt wurden, der ursprünglich die Optimierung für Linux 7.3 beigesteuert hat, zeigten Bandbreitenverbesserungen von bis zu 11 %, wenn diese Funktion aktiv ist. Neben dieser Verbesserung bei Benutzerkopien umfasst der RISC-V-Pull-Request für Linux 7.4 mehrere andere Updates. Diese Ergänzungen umfassen die Unterstützung für Crash-Hot-Plug, optimierte Codepfade für bestimmte Seitentabellenfunktionen und Verbesserungen beim Kontextwechsel. Darüber hinaus integriert das Update die "B"-ISA-Erweiterung von RISC-V in die hwcap- und hwprobe-Berichterstattung sowie die Unterstützung für die Berichterstattung der RISC-V-Zic64b-ISA-Erweiterung.
Quellen: Phoronix.