Pour aider à faciliter l’exploration du langage de programmation Rust à des fins de stockage Linux dans le noyau, l’ingénieur Samsung Andreas Hindborg a publié un pilote de bloc nul écrit dans ce langage de programmation sécurisé en mémoire.
Le pilote de bloc nul Rust est destiné à servir à évaluer les liaisons Rust pour la couche de bloc du noyau, à exposer Rust à davantage de développeurs de stockage Linux et à servir à des fins similaires pour aider à”démarrer les pneus”autour des pilotes de stockage Rust et Linux.
Andreas Hindborg a écrit dans l’annonce de ce nouveau pilote Rust :
“Étant petit et simple, le pilote de bloc nul est un bon endroit pour présenter la communauté de stockage du noyau Linux à Rust. Cela aidera à préparer la communauté pour les futurs projets Rust et facilitera un meilleur processus de maintenance pour ces projets.
Les statistiques présentées dans mon message précédent montrent que le pilote de bloc nul C a eu une quantité importante de problèmes liés à la sécurité de la mémoire dans le passé. 41 % des correctifs fusionnés pour le pilote de bloc nul C sont des correctifs pour des problèmes de sécurité de la mémoire. Cela fait du pilote de bloc nul un bon candidat pour la réécriture dans Rust.
…
Dans ce tableau, chaque cellule montre les performances relatives du pilote Rust par rapport au pilote C avec le débit du pilote C entre parenthèses :”rel_read rel_write (read_miops write_miops)”. Ex : le pilote Rust est 4,74 % plus performant que le pilote C pour fio randread avec 2 tâches à une taille de bloc de 16 Kio.Sur les 432 configurations de référence, les performances relatives du pilote Rust par rapport au pilote C (en termes d’IOPS) se situent entre 6,8 et-11,8 % avec une moyenne de 0,2 % de mieux pour les lectures. Pour les écritures, l’étendue est de 16,8 à-4,5 % avec une moyenne de 0,9 % de mieux.”
Le pilote de bloc nul Rust prend déjà en charge la multi-file d’attente BLK-MQ, l’achèvement direct de I/O, requêtes de lecture/écriture, sauvegarde de mémoire en option, etc. Il existe encore d’autres fonctionnalités pour rendre ce pilote comparable au pilote de bloc nul basé sur C existant, telles que la prise en charge de NUMA, la soumission bio-basée, la configuration du planificateur d’E/S, prise en charge du stockage zoné, et plus encore.
Plus de détails sur ce premier pilote de couche de bloc nul Rust pour aider plus loin le langage de programmation Rust pour le stockage Linux peuvent être trouvés via cette série de correctifs.