Започна напредъкът в ядрото на Linux на драйвера Nova за GPU NVIDIA.

Инженерите от компания Red Hat предложиха първия набор патчове за включване в ядрото на Linux с реализиран драйвер Nova. Драйверът е предназначен за работа с GPU NVIDIA, оборудвани с GSP фърмуери, които се използват от серия NVIDIA GeForce RTX 2000, основана на микроархитектурата Turing. В подобни GPU операциите по инициализация и управление се реализират във фърмуера и се изпълняват от отделен микроконтролер GSP (GPU System Processor). Предполага се, че в дългосрочен план Nova ще замени драйвера Nouveau за GPU с поддръжка на GSP.

Новият драйвер е написан на езика Rust и, тъй като инфраструктурата за разработка на Rust драйвери все още се развива, кодът на Nova ще бъде пренесен в основния състав на ядрото поетапно, в зависимост от появата на необходимите обвивки за езика Rust. На първия етап за включване в ядрото е предложен драйверът „nova-core“, състоящ се от 232 реда код. Nova-core реализира основно ниво абстракции над софтуерните интерфейси на GSP фърмуерите и предоставя API, независим от версиите на фърмуерите.

На следващия етап планират включване на DRM драйвер nova-drm (Direct Rendering Manager) в ядрото за взаимодействие с GPU от пространството на потребителя, а също и VFIO драйвер с мениджър vGPU, позволяващ използването на виртуални GPU NVIDIA в системи за виртуализация.

Основната причина за напредъка на новия драйвер Nova е възможността да се избегнат усложненията, присъщи на драйвера Nouveau, и да се постигне значително опростяване чрез използването на налични обработвачи, предоставяни от фърмуера GSP, и отхвърляне на товара от поддръжката на стари GPU. Nova също така ще реши архитектурни проблеми, които в Nouveau изискват значителна переработка на кодовата база, като например проблемите с блокировките в кода VMM/MMU. Езикът Rust е избран за намаляване на вероятността от грешки при работа с паметта, а също и като възможност за комбиниране на работата по работещ драйвер със създаването на обвивки и абстракции за разработка на драйвери на Rust.

Възпроизведи видео

Що се отнася до напредъка в добавянето на възможности за разработка на драйвери на езика Rust в ядрото на Linux, в състава на версия 6.14 са приети обвивки на Rust за PCI, платформи, Open Firmware, символни устройства и някои функции за вход/изход. Грег Кроа-Хартман (Greg Kroah-Hartman), отговорен за поддръжката на стабилната версия на ядрото на Linux, в pull-заявката с актуализацията на драйверите за ядрото 6.14, характеризира текущото състояние като "почти готовност за написване на реален драйвер на Rust."

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster