Инженер по программному обеспечению Intel Яни Никула ответил на критику Линуса Торвальдса по поводу гадкого (turds) кода тестирования hdrtest для проекта драйвера ядра Intel Xe.
«Скройте все отвратительные гадости в подкаталогах.hdrtest в build tree и поместите дополнительные проверки build‑time для drm за опцию kconfig», — посоветовал Никула Торвальдсу.
Исходный текст из письма Никула в оригинале: «Hide all the disgusting turds in.hdrtest subdirectories in the build tree, and put the extra drm build‑time checks behind a kconfig option».
В конце марта 2025 года Линус Торвальдс раскритиковал код тестирования hdrtest, который собирается как часть полной сборки ядра, а также оставляет после себя гадости (turds). По мнению Торвальдса, этот код «должен умереть» (needs to die), по крайней мере, с точки зрения разработчиков драйверов без DRM.
Новый код hdrtest предназначен для драйвера ядра Intel Xe и призван помочь гарантировать, что опция DRM header files является самодостаточной и проходит базовые проверки и тесты kernel-doc.
Грр. Я сделал pull, разрешил (тривиальные) конфликты, но я заметил, что в итоге это содержало отвратительную ерунду hdrtest, которая:
(a) замедляет сборку, потому что это делается для обычной сборки allmodconfig, а не для какой-то простой вещи, которую вы, ребята, можете запустить по мере необходимости;
(b) также оставляет случайные гадости hdrtest в каталогах include.
Разработчики уже жаловались на это отдельно. Это никогда не должно было попасть ко мне в таком сломанном виде.
Какого черта это тестирование выполняется как обычная часть сборки?
И черт возьми, мы не добавляем случайные гадкие файлы для зависимостей, которые затем портят исходное дерево.
То, что заставило меня заметить, что это все еще там, было то, что git status жалуется на то, что глупые гадости не игнорируются.
Но что еще важнее, эти гадости также ломают автодополнение имен файлов! Так что нет, добавление его в gitignore на самом деле не решает проблему, просто я бы не заметил ее так быстро.
Эта штука должна умереть.
Если вы хотите сделать эту штуку hdrtest, сделайте это как часть своих собственных проверок. Не заставляйте всех остальных видеть эту отвратительную штуку и не держите эти гадости в своих ветках.
Я просто отключу его, отметив его как BROKEN на данный момент. Вы, ребята, можете решить, что вы хотите сделать, но нет, заставлять других видеть эти вещи — это не выход.
Я бы посоветовал вам вообще не делать это частью настройки Kconfig и обычной сборки, а сделать так, чтобы вы могли запустить это как часть своих тестов (то есть сделать это как что-то вроде «make drm-hdrtest», а не как часть обычных сборок).
Линус.
Исходный текст из письма Торвальдса в оригинале
Grr. I did the pull, resolved the (trivial) conflicts, but I notice that this ended up containing the disgusting «hdrtest» crap that
(a) slows down the build because it’s done for a regular allmodconfig build rather than be some simple thing that you guys can run as needed
(b) also leaves random ‘hdrtest’ turds around in the include directories
People already complained separately about this. It should never have made it to me in this broken form.
Why the heck is this testing being done as a regular part of the build?
And dammit we don’t add random turd files for dependencies that then make the source tree nasty.
The thing that made me notice that it was still there was that «git status» complains about the stupid turds not being ignored.
But more importantly, those turds also break filename completion! So no, adding it to gitignore doesn’t actually fix the problem, it would just have made me not notice as quickly.
This thing needs to die.
If you want to do that hdrtest thing, do it as part of your own checks. Don’t make everybody else see that disgusting thing and have those turds in their trees.
I’ll just disable it by marking it BROKEN for now. You guys can figure out what you want to do, but no, forcing others to see those things is not the answer.
I would suggest you not make this part of the Kconfig setup and normal build at all, but be something where you can run it as part of your tests (ie do it as a «make drm-hdrtest» kind of thing, not as part of regular builds).
Linus.
В январе 2024 года Линус Торвальдс обозвал%^!@$% новый код Intel Xe для DRM (Direct Rendering Manager) в Linux 6.8. Он сам исправил его огрехи и призвал сторонних разработчиков и мейнтейнеров проекта тестировать, тестировать и ещё раз тестировать свои патчи.
В июле 2023 года Линус Торвальдс разочаровался в одном из решений разработчиков AMD, связанном с аппаратной реализацией генератора случайных чисел, и сообщил, что устал от «глупых» ошибок fTPM (Firmware‑based Trusted Platform Module). Он обратился к мейнтейнерам Linux с просьбой отключить эту опцию в ОС по умолчанию.
«Давайте просто отключим эту дурацкую штуку fTPM hwrnd. Зачем кому‑то использовать эту дрянь, если она есть на любой машине? Я не вижу ничего плохого в том, чтобы просто сказать: „Эта штука с fTPM не работает“. Даже если в будущем это сработает — альтернативы ничем не хуже. Исправления AMD, которые мы видели и о которых сообщали разработчики, „очевидно, не оправдались“», — пояснил Торвальдс.
В 2018 году Торвальдс решил отказаться от своей позиции разгневанного оратора в общении с прессой и компаниями. Он сделал перерыв в работе с ядром Linux, чтобы поработать над своим поведением по отношению к другим разработчикам. Разобравшись с этим, Торвальдс вернулся к ядру. С тех пор он стал гораздо мягче. Торвальдс недавно подтвердил свою сдержанность в интервью на саммите Open Source в Японии. Он сказал, что больше не будет «показывать пальцем на какую‑то компанию. Я усвоил урок».
Источник: habr.com