Helpottaakseen Rust-ohjelmointikielen tutkimista Linux-tallennustarkoituksiin ytimessä Samsungin insinööri Andreas Hindborg on julkaissut tällä muistia säästävällä ohjelmointikielellä kirjoitetun nollalohkoohjaimen.

Rust-nolla-ajuri on tarkoitettu arvioimaan ytimen lohkokerroksen Rust-sidoksia, paljastamaan Rust useammille Linux-tallennuskehittäjille ja palvelemaan samankaltaisia ​​tarkoituksia auttamaan Rust-ja Linux-tallennusajureiden”potkussa”.

Andreas Hindborg kirjoitti tiedotteessaan tästä uudesta Rust-ohjaimesta:

“Koska pieni ja yksinkertainen nollalohkoohjain on hyvä paikka esitellä Linux-ytimen tallennusyhteisö Rustille. Tämä auttaa valmistamaan yhteisöä tuleviin Rust-projekteihin ja helpottaa näiden projektien parempaa ylläpitoprosessia.

Edellisen viestini tilastot osoittavat, että C null block-ohjaimella on ollut huomattava määrä muistin turvallisuuteen liittyviä ongelmia Aiemmin. 41 % C-nollalohko-ohjaimeen yhdistetyistä korjauksista on korjauksia muistin turvallisuusongelmiin. Tämä tekee nollalohko-ohjaimesta hyvän ehdokkaan uudelleenkirjoitettavaksi Rustissa.

Tässä taulukossa jokainen solu näyttää Rust-ajurin suhteellisen suorituskyvyn C-ajuriin nähden C-ajurin suorituskyvyn ollessa suluissa:”rel_read rel_write (read_miops write_miops)”. Esim: Rust-ajuri toimii 4,74 prosenttia paremmin kuin C-ajuri fio randreadissa kahdella työllä 16 KiB:n lohkokoolla.

Yli 432 benchmark-kokoonpanoissa Rust-ohjaimen suhteellinen suorituskyky C-ajuriin nähden (IOPS:n suhteen) on 6,8–11,8 prosenttia, ja lukuarvot ovat keskimäärin 0,2 prosenttia parempia. Kirjoituksille jänneväli on 16,8–4,5 prosenttia ja keskimäärin 0,9 prosenttia parempi.”

Rust-nolla-ajuri tukee jo BLK-MQ-monijonoa, I/:n suora loppuunsaattaminen. O, luku-/kirjoituspyynnöt, valinnainen muistin tuki ja paljon muuta. On kuitenkin muita ominaisuuksia, jotka tekevät tästä ohjaimesta verrattavissa olemassa olevaan C-pohjaiseen nollalohko-ohjaimeen, kuten NUMA-tuki, biopohjainen lähetys, I/O-ajoitusmääritykset, vyöhykkeen tallennustuki ja paljon muuta.

Lisätietoja tästä varhaisesta Rust-nollalohkokerrosohjaimesta, joka auttaa edelleen Rust-ohjelmointikieltä Linux-tallennuskielessä, on osoitteessa tämä korjaustiedostosarja.

Categories: IT Info