LINUX.ORG.RU
ФорумTalks

Красношапка анонсировала драйвер для Nvidia-видеокарт на Rust

 , , ,


0

6

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.

benefit from from more memory safety offered by the Rust programming language
from from

Они даже по-английски с трудом пишут, дровописатели :).
Позитивная новость, ведь мечта плюсишников, Rust в системном программировании, всё ближе.

Virtuos86 ★★★★★
()
Последнее исправление: Virtuos86 (всего исправлений: 1)

We just started to work

Вау, счастье-то какое.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)

Мало того, что онм ревесом занимаются, так теперь ещё и изучать новый ЯП...

xwicked ★★☆
()

Т.е. нуво не получился, будут писать нову...

Shadow ★★★★★
()

Напоминает перестановку кроватей в борделе.

imul ★★★★★
()

Ну теперь-то заживём!
Очевидно, развитию НВ дров больше всего мешало отсутствия раста...

GAMer ★★★★★
()

Сначала им надо английский выучить, а потом на раст переходить

to take the chance to contribute to

А можно как-то не тутукать, я конечно понимаю что я когда пост пишу, то тот ещё поток сознания выливаю, но это даже для меня перебор. Про from from уже выше написали. Вообще в тексте много слов want и мало слов которые означают что что-то было сделано.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)

Так недавно объявили же NVK …

Вот и поглядим кто теперь победит NVK или NOVA.

mx__ ★★★★★
()
Ответ на: комментарий от Behem0th

Ну допусим. Кто по вашей классификации nuvoeua ? (может не совсем точно написал).

И не совсем понял зачем нужен драйвер в ядре, там уже есть открытый от нвидиа. Зачем там 2ой ?

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 1)
Ответ на: комментарий от mx__

nuvoeua

Их два. Один в ядре, другой в месе. Ядерная часть сейчас поддерживает весь спектр карт. Они хотят поддержку новых карт в ядре вынести в сабжевый драйвер. А старый ядерный нуво оставить для старых карт.

там уже есть открытый от нвидиа. Зачем там 2ой ?

Открытой нвидией драйвер не приняли и как мне кажется не примут в ядро. В ядро не принимают драйверную часть без открытой юзерспейс реализации. Но благодаря открытому нвидией коду ядерный нуво сильно допилили для новых карт.

Кстати есть еще NVK, это вулкан драйвер в месе для карт 2ххх и выше.

Behem0th ★★★★★
()
Последнее исправление: Behem0th (всего исправлений: 1)
Ответ на: комментарий от Behem0th

А еще в месе есть прослойка zink которая позволяет не писать отдельный OpenGL драйвер а транслировать в вулкан код. И вроде были мысли для новых карт не писать нуво ОпенГЛ драйвер в месе а использовать НВК вулкан драйвер там иже и зик прослойку для рабочего ОпенГЛ.

Behem0th ★★★★★
()
Ответ на: комментарий от Behem0th

Кстати есть еще NVK, это вулкан драйвер в месе для карт 2ххх и выше.

Он не в МЕСЕ а отдельный, а в МЕСУ его уже занесли … https://www.opennet.ru/opennews/art.shtml?num=60151

А то что открытые модули ядра от НВИДИА не принимают в ядро это уже …

В текущем виде включение опубликованных модулей в основной состав ядра невозможно, так как они не соответствуют требованиям ядра к стилю кодирования и соглашениям по архитектуре, но компания NVIDIA намерена совместно с Canonical, Red Hat и SUSE заняться решением этого вопроса и стабилизацией программных интерфейсов драйверов.

Это писали в середине 2022 года.

mx__ ★★★★★
()
Ответ на: комментарий от mx__

Он не в МЕСЕ а отдельный, а в МЕСУ его уже занесли …

Не понимаю тебя. Он в месе или отдельный от месы?

Это писали в середине 2022 года.

Почти 2 года назад.

Behem0th ★★★★★
()
Ответ на: комментарий от mx__

Он отдельный.

Что ты подразумеваешь под отдельный?

Он входит в состав месы. Но он не галлиум.

Не знаю как ситуация сейчас, не нашел.

Потому что ничего не изменилось. Правила принятия кода драйверов в ядро остались прежними. Не принимают ядерную часть без открытой юзерспейс части. Нвидия открыла ядерную часть, юзерспейс закрыта.

Но на основе этого кода допилили ядерный нуво драйвер.

И на его же основе будут пилить сабжевый драейвер.

Behem0th ★★★★★
()
Последнее исправление: Behem0th (всего исправлений: 3)

Ту-ту-ту-ту-ту-ту!

Чух чух чух чух

Уоооооооонтттт!

Пшшшшщщщщ

Это было краткое изложение сути новости

James_Holden ★★★★
()
Ответ на: комментарий от mx__

Все тот же Нуво.

Чтобы не было разночтений в названиях и путаницы

Nouveau читается как нуво.

Новый драйвер о котором новость Nova - нова

Behem0th ★★★★★
()
Последнее исправление: Behem0th (всего исправлений: 1)
Ответ на: комментарий от Behem0th

Ну теперь более менее понятно. Зная Шапку с 90х годов, можно забыть про NVK.

mx__ ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)