Une amélioration clé des performances pour l'architecture RISC-V a été intégrée dans le noyau Linux 7.4, remédiant aux limitations présentes dans les versions précédentes. Bien qu'une optimisation antérieure introduite dans Linux 7.3 ait permis aux noyaux de sauter l'alignement logiciel pour le matériel prenant en charge les copies mémoire non alignées rapides, elle exigeait que cette prise en charge soit compilée directement dans le noyau. Cette exigence au moment de la compilation entravait la portabilité, rendant difficile pour les builds génériques RISC-V d'utiliser cette fonctionnalité sur des configurations matérielles diverses où certains appareils pourraient ne pas prendre en charge des accès non alignés efficaces.
Avec l'arrivée de Linux 7.4, le mécanisme permettant de sauter l'alignement logiciel a été déplacé vers une détection à l'exécution. Le noyau vérifie désormais dynamiquement la capacité "HAVE_EFFICIENT_UNALIGNED_ACCESS" lors du traitement des copies utilisateur. Ce changement permet aux noyaux de distribution et à d'autres builds génériques d'inclure l'optimisation de manière universelle, garantissant que les systèmes disposant d'un matériel compatible bénéficient automatiquement d'une performance améliorée sans nécessiter de flags de compilation spécifiques.
Les tests menés par Tenstorrent, qui a initialement contribué à l'optimisation pour Linux 7.3, ont indiqué des améliorations de bande passante allant jusqu'à 11 % lorsque cette fonctionnalité est active. Au-delà de cette amélioration des copies utilisateur, la demande d'intégration RISC-V pour Linux 7.4 comprend plusieurs autres mises à jour. Ces ajouts englobent la prise en charge du hot-plug en cas de crash, des chemins de code optimisés pour certaines fonctions de table de pages et des améliorations de la commutation de contexte. De plus, la mise à jour intègre l'extension ISA "B" de RISC-V dans les rapports hwcap et hwprobe, ainsi que la prise en charge du signalement de l'extension ISA RISC-V Zic64b.
Sources: Phoronix.