Originally posted by jacob
View Post
It's also already been established that not having compiler support for every architecture supported by linux is NOT a prerequisite for rust drivers landing. You can land a rust driver for anything you want. The only restriction is that it can't be non-optional core kernel code. Note that there's nothing in that contract that says your device can't simply not work on non rust platforms. It would be a dick move to take NVMe support away from whoever the hell can use it without a PCIe slot, but if I'm implementing support for a new serial port driven toaster, I'm within my rights to implement only a rust driver and simply leave the device unavailable to anyone running pure C.
Note my key points:
(1) It's perfectly reasonable for rust drivers to enjoy the following exception: there could be a C and a rust driver in-tree, with the rust driver being preferable and selected on architectures where available. (it's not normally the case to have two in-tree drivers for the same device)
(2) For the NVMe driver specifically, I don't think you can name an architecture supported by linux that has PCIe ports to which an NVMe drive could be attached, and yet doesn't have rust support, brand-new mips clone notwithstanding (see above). Thus, the NVMe driver requiring rust is, in practice, a near non-issue. All established architectures for which devices are being made and supported have rust, even esoteric ones like s390 from IBM.
Leave a comment: