Hi all,
In this mail I briefly want to announce the Nova project and subsequently talk about the first efforts taken in order to upstream required Rust abstractions:
We just started to work on Nova, a Rust-based GSP-only driver for Nvidia GPUs. Nova, in the long term, is intended to serve as the successor of Nouveau for GSP-firmware-based GPUs.
With Nova we see the chance to significantly decrease the complexity of the driver compared to Nouveau for mainly two reasons. First, Nouveau’s historic architecture, especially around nvif/nvkm, is rather complicated and inflexible and requires major rework to solve certain problems (such as locking hierarchy in VMM / MMU code for VM_BIND currently being solved with a workaround) and second, with a GSP-only driver there is no need to maintain compatibility with pre-GSP code.
Besides that, we also want to take the chance to contribute to the Rust efforts in the kernel and benefit from from more memory safety offered by the Rust programming language. Ideally, all that leads to better maintainability and a driver that makes it easy for people to get involved into this project.
With the choice of Rust the first problem to deal with are missing C binding abstractions for integral kernel infrastructure (e.g. device / driver abstractions). Since this is a bit of a chicken and egg problem - we need a user to upstream abstractions, but we also need the abstractions to create a driver - we want to develop Nova upstream and start with just a driver stub that only makes use of some basic Rust abstractions.
In particular, we want to start with basic device / driver, DRM and PCI abstractions and a Nova stub driver making use of them.
Fortunately, a lot of those abstractions did already exist in various downstream trees (big thanks to all the authors). We started picking up existing work, figured out the dependencies, fixed a few issues and warnings and applied some structure by organizing it in the following branches.
Похожие темы
- Форум Nouveau теперь поддерживает 3D-ускорение на всех чипах NVidia (2013)
- Форум NVIDIA бросила ещё одну кость (2015)
- Форум [ubuntu] How to not collaborate with Debian (and upstream) (2008)
- Форум Сборка драйвера для Moxa (2013)
- Форум Нажал на Shift-Insert при конфигурировании ядра (2011)
- Форум Долгожданный драйвер 555 для Nvidia (2024)
- Форум Патрик что то написал. (2010)
- Форум [12309] Его опять пофиксили (2012)
- Форум Qt: уход фокуса из виджета возможен только с приходом фокуса в другой? (2013)
- Форум [ati][oss][gallium]Wanna try XvMC on R600 hardware? (2010)