WD is developing a NVMe drive in Rust. Experiments with Rust in FreeBSD

at the Linux Plumbers 2022 conference, engineer from Western Digital was with class on the development of an experimental driver for SSD-drives with the NVM-Express interface (NVME), written in the language written in the language. Rust and working at the level of the Linux nucleus. Despite the fact that the driver is still at the early stage of development and is not specifically optimized, testing showed that the performance of the NVMe drive in Rust corresponds to the NVMe Driver available in the nucleus written in SI.




The report says that the current NVME-drive in the SI language completely suits the developers, but the NVME subsystem is a good platform for studying the advisability of developing drivers in the Rust language, since it is quite simple, widely used, makes high performance requirements, has A proven reference implementation for comparison and supports various interfaces (DEV, PCI, DMA, BLK-MQ, Gendisk, Sysfs).

It is noted that the PCI NVME driver on Rust already provides functionality necessary for work, but is not yet ready for wide use, as it requires separate improvements. Among the plans for the future is the deliverance of the code from the available UNSAFE blocks, support for the operations of removing the device and unloading the driver, support for the SYSFS interface, the implementation of delayed initialization, the creation of the driver for BLK-MQ and experiments using an asynchronous programming model for Queue_rq.


You can additionally note the NCC Group experiments According to development Rust drivers for the FreeBSD nucleus. As an example, the simple echo-drive

/Media reports.