Линус Торвальдс представил новую версию 30 августа. Речь идёт о релиз-кандидате Linux 7.3-rc1. Общий объём кода достиг внушительных 41 миллиона строк. Драйвер AMDGPU занял в этом объёме более 6,5 миллиона строк. Доля драйвера составляет около 16 процентов от всего ядра.
Главной причиной такого разрастания стал массовый вклад компании AMD. Сам Торвальдс объяснил ситуацию в официальном анонсе релиза. По его словам, разница в объёме выглядит вполне ожидаемо.
Причина кроется в очередной порции регистровых дампов видеочипов AMD. На этот раз речь идёт о заголовочных файлах DCN6. Эти файлы традиционно отличаются гигантским размером. Код и заголовочные файлы AMD заняли примерно треть всего патча rc1.
Отдельного внимания заслуживает содержимое каталога drivers/gpu/drm/amd. Здесь находится драйвер AMDGPU, вычислительный модуль AMDKFD и код дисплея. Суммарный объём этого каталога достигает 6,52 миллиона строк кода. Речь идёт исключительно об этой директории без учёта классического драйвера Radeon DRM.
В версии Linux 7.2 тот же каталог занимал 6,35 миллиона строк. Новая версия 7.3 добавила к этому показателю ещё около 170 тысяч строк. Общий объём кода ядра вырос с прежних 40,42 миллиона строк. Прирост составил примерно 560 тысяч строк относительно предыдущей версии.
Утилита cloc детально разобрала структуру всех 41 миллиона строк релиза. Реальный исполняемый код составил около 30,94 миллиона строк. Комментарии в коде заняли примерно 4,91 миллиона строк. Оставшиеся пустые строки добавили ещё около 5,13 миллиона строк общего объёма. Судя по текущей динамике, версия Linux 7.4 наверняка легко преодолеет отметку в 41 миллион строк.
С практической точки зрения регистровые дампы AMD DCN 6.0 несут конкретную функцию. Они закладывают поддержку модуля отображения для будущего графического железа компании. Аппаратные спецификации переводятся в код через директивы препроцессора языка C. Каждый регистр и каждый бит железа описывается отдельным макроопределением в коде.
Такой подход действительно резко раздувает общий объём кодовой базы ядра. Но взамен разработчики получают готовую поддержку будущего оборудования из коробки.
