«Отвратительный» исходный код Linux sched_ext изменили после жалобы Торвальдса

от автора

На прошлой неделе в Linux 7.2 были объединены основные изменения в sched_ext, включая продолжение работы над поддержкой подпланировщиков. Линус Торвальдс назвал код «отвратительным», и теперь в него внесли исправления.

Сам он не возражал против каких-либо функций, над которыми ведётся работа для расширяемой структуры планировщика, основанной на программах BPF пользовательского пространства. Однако Торвальдс был разочарован структурой новых исходных файлов C и заметил: «Пожалуйста, не делайте так отвратительно… правильные иерархические файловые системы существуют с 1965 года».

Ему не понравилось в запросе на слияние sched_ext на прошлой неделе то, что несколько новых файлов кода C и заголовочных файлов с префиксом ext_ были созданы в kernel//sched вместо того, чтобы просто создать новый подкаталог kernel/sched, например kernel/sched/ext/. Это позволило бы избежать добавления префиксов ко многим отдельным файлам.

Торвальдс объединил код, но оставил комментарий:

> create mode 100644 kernel/sched/ext_arena.c

> create mode 100644 kernel/sched/ext_arena.h

> create mode 100644 kernel/sched/ext_cid.c

> create mode 100644 kernel/sched/ext_cid.h

> create mode 100644 kernel/sched/ext_types.h

Пожалуйста, не делайте этого отвратительно. Подкаталоги существуют не просто так: они позволяют группировать файлы и разделять их.

Использование префиксов имён вместо каталогов — это отвратительно и неправильно. Если у вас так много случайных файлов sched-ext, их нужно обязательно почистить, а не устраивать такой беспорядок.

Я это удалил, но столкнулся с протестом. Правильные иерархические файловые системы существуют с 1965 года.

Теперь был отправлен новый pull request, направленный на реорганизацию исходного кода sched_ext с использованием kernel/sched/ext/. Торвальдс уже объединил код для реструктуризации файлов sched_ext.

В 2024 году Торвальдс обозвал %^!@$% новый код Intel Xe для DRM (Direct Rendering Manager) в Linux 6.8. Он сам исправил его огрехи и призвал сторонних разработчиков и мейнтейнеров проекта тестировать, тестировать и ещё раз тестировать свои патчи.

В 2025 году Торвальдс раскритиковал код тестирования hdrtest, который собирается как часть полной сборки ядра, а также оставляет после себя гадости (turds). Он заявил, что этот код «должен умереть» (needs to die), по крайней мере, с точки зрения разработчиков драйверов без DRM.

Тогда на его высказывание ответила инженер по программному обеспечению Intel Яни Никула: «Скройте все отвратительные гадости в подкаталогах .hdrtest в build tree и поместите дополнительные проверки build‑time для drm за опцию kconfig».

ссылка на оригинал статьи https://habr.com/ru/articles/1051648/