Започна популяризиране на ядрото на 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