12 января 2024 года Линус Торвальдс обозвал %^!@$% новый код Intel Xe для DRM (Direct Rendering Manager) в Linux 6.8. Он сам исправил его огрехи и призвал сторонних разработчиков и мейнтейнеров проекта тестировать, тестировать и ещё раз тестировать свои патчи.
В списке рассылки Торвальдс выразил разочарование по поводу тестирования, которого «серьёзно не хватает», когда дело касается фрагментов нового кода GPU Intel Xe. В итоге присланные коммиты от разработчиков даже не билдятся, так как там изменили тип переменной intel_wakeref_t с depot_stack_handle_t на unsigned long, а в итоге посыпались ошибки и сборка завершается с ошибкой. Также в файлах заголовков drm есть эта отвратительная вещь: файл header включает в себя файл C, что противно.
«Я пересобрал патч, исправив сломанный заголовочный файл совместимости с Xe, но это определенно НЕ то, как все должно было работать. Как это вообще до меня дошло без какого-либо тестирования сборки? И почему %^!@$% файл заголовка включает файл C? Это неправильно, независимо от этой ошибки», — заявил Торвальдс.Your testing is seriously lacking.
This doesn't even build. The reason seems to be that commit b49e894c3fd8 ("drm/i915: Replace custom intel runtime_pm tracker with ref_tracker library") changed the 'intel_wakeref_t' type from a 'depot_stack_handle_t' to 'unsigned long', and as a result did this:
drm_dbg(&i915->drm, "async_put_wakeref %un",
drm_dbg(&i915->drm, "async_put_wakeref %lun", power_domains->async_put_wakeref);
meanwhile, the Xe driver has this:
drivers/gpu/drm/xe/compat-i915-headers/intel_wakeref.h:
typedef bool intel_wakeref_t;
which has never been valid, but now the build fails with
drivers/gpu/drm/i915/display/intel_display_power.c: In function ‘print_async_put_domains_state’:
drivers/gpu/drm/i915/display/intel_display_power.c:408:29: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘int’ [-Werror=format=]
because the drm header files have this disgusting thing where a header file includes a C file:
In file included from ./include/drm/drm_mm.h:51,
from drivers/gpu/drm/xe/xe_bo_types.h:11,
from drivers/gpu/drm/xe/xe_bo.h:11,
from
./drivers/gpu/drm/xe/compat-i915-headers/gem/i915_gem_object.h:11,
from ./drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h:15,
from drivers/gpu/drm/i915/display/intel_display_power.c:8:
nasty.
I made it build by fixing that broken Xe compat header file, but this is definitely NOT how things should have worked. How did this ever get to me without any kind of build testing?
And why the %^!@$% does a header file include a C file? That's wrong regardless of this bug.
Linus
В конце июля 2023 года Линус Торвальдс разочаровался в одном из решений разработчиков AMD, связанном с аппаратной реализацией генератора случайных чисел, и сообщил, что устал от «глупых» ошибок fTPM (Firmware-based Trusted Platform Module). Он обратился к мейнтейнерам Linux с просьбой отключить эту опцию в ОС по умолчанию.
«Давайте просто отключим эту дурацкую штуку fTPM hwrnd. Зачем кому-то использовать эту дрянь, если она есть на любой машине? Я не вижу ничего плохого в том, чтобы просто сказать: "Эта штука с fTPM не работает". Даже если в будущем это сработает — альтернативы ничем не хуже. Исправления AMD, которые мы видели и о которых сообщали разработчики, "очевидно, не оправдались"», — пояснил Торвальдс.
В 2018 году Торвальдс решил отказаться от своей позиции разгневанного оратора в общении с прессой и компаниями. Он сделал перерыв в работе с ядром Linux, чтобы поработать над своим поведением по отношению к другим разработчикам. Разобравшись с этим, Торвальдс вернулся к ядру. С тех пор он стал гораздо мягче. Торвальдс недавно подтвердил свою сдержанность в интервью на саммите Open Source в Японии. Он сказал, что больше не будет «показывать пальцем на какую-то компанию. Я усвоил урок».
Источник новости: habr.com