Kun kaksi vuotta sitten Linux 5.16:ssa monitoimilaitteen kiintolevytuki yhdistettiin, kehitysvaiheessa olevaan Linux 6.3-ytimeen BFQ I/O-aikataulutin on nyt viritetty monitoimilaiteasemia.
Usean toimilaitteen asemat ovat alkaneet tulla esille yritysten kiintolevyille, joissa useita toimilaitteita on jaettu levyaseman levyjen väliin ja jotka voivat liikkua toisistaan riippumatta parantaakseen suorituskykyä yhden toimilaitteen levyasemaan verrattuna. Aiemman lohkoalijärjestelmän monitoimilaitteen tuen lisäksi Linux 6.3 sisältää virityksen BFQ I/O-ajastinta varten, jotta tämä uudempi kiintolevytekniikka käsittelee paremmin.
Linaron Paolo Valente, joka on työskennellyt yli tusinaa tarkistuskierrosta läpikäyneiden korjaustiedostojen parissa, on varmasti iloinen nähdessään tämän työn vihdoin yhdistetyn. Paolo selitti tämän BFQ-monitoimilaitteen tuen korjaustiedostosarjassa:
“Tämä laajennus korjaa seuraavan ongelman. Yhden LUN-monitoimilaitteen SCSI-asemat sekä kaikki monitoimilaitteen SATA-asemat näkyvät yhtenä laitteena I/O-alijärjestelmässä. Silti ne osoittavat komennot eri toimilaitteille sisäisesti loogisen lohkoosoitteen (LBA:n) funktiona. Tietty sektori on tavoitettavissa vain yhdellä toimilaitteista. Esimerkiksi Seagaten Serial Advanced Technology Attachment (SATA)-versio sisältää kaksi toimilaitetta ja yhdistää SATA LBA-tilan alaosan alempaan toimilaitteeseen ja ylemmän puolen ylempään toimilaitteeseen.
Ilmeisesti toimilaitteita ei saa jättää käyttämättömäksi tai vajaakäyttöiseksi, jotta toimilaitteita voidaan hyödyntää täysimääräisesti. kun sitä varten on odottava I/O. Tämän tavoitteen saavuttamiseksi lohkokerroksen on jollain tavalla ohjattava kunkin toimilaitteen kuormitusta erikseen. Tämä sarja rikastaa BFQ:ta tällaisella toimilaitekohtaisella ohjauksella, ensimmäisenä askeleena. Sitten se lisää myös yksinkertainen mekanismi takaamaan th toimilaitteita, joissa on odottava I/O, ei koskaan jätetä käyttämättä.”
Siellä on myös tämä Linaro-blogiviesti, joka kattaa BFQ-työn monitoimilaitteiden asemissa.
Tämä tuki yhdistettiin osaksi estää muutokset Linux 6.3:lle. Koodiin sisältyy myös erilaisia NVMe-päivityksiä, jatkuvaa työtä DRBD:n out-of-tree-ja mainline-asemien yhdistämiseksi sekä useita korjauksia.