4 декабря 2024 года Линус Торвальдс заявил, что уровни функций архитектуры AMD64 и x86-64 — это «полностью сломанный мусор», который «должен умереть».
Обсуждая изменения и дополнения к новой сборке Linux KConfig (конфигурация ядра), Торвальдс выразил своё раздражение и неодобрение уровней функций архитектуры AMD64 и x86-64.
«Поразмыслив, давайте не будем переходить на микроархитектурные уровни x86-64. «Это глупое место».
Все эти наименования «v2», «v3», «v4» и так далее, похоже, являются каким-то безумным артефактом glibc, они глупые и должны умереть.
Они не имеют никакого отношения ни к чему. Пожалуйста, не вносите этот бред в исходники ядра.
Я понятия не имею, кто придумал этот мусор про «уровни микроархитектуры», но, насколько я могу судить, это совершенно неофициально, и это полностью сломанная модель.
Существует вполне реальная модель для микроархитектурных функций, и это биты CPUID. Попытка линеаризировать эти биты технически неверна, поскольку эти вещи просто не являются какой-то линейной прогрессией.
И что еще хуже, это «упрощение», которое буквально добавляет сложности. Теперь вместо того, чтобы спрашивать «поддерживает ли этот процессор инструкцию cmpxchgb16?», вместо этого вопрос становится «что, черт возьми, означает «v3» ещё раз?»
Так что нет. Мы НЕ вводим это идиотизм в ядре»,
— написал Торвальдс.
Эти уровни микроархитектуры x86-64 были введены ещё в 2020 году Флорианом Ваймером из Red Hat. Изначально были предложены «Уровни A, B и C», а позже был добавлен «Уровень D». По сути, эти уровни классифицируют функции ЦП во временном/хронологическом порядке, пытаясь упростить улучшение совместимости оборудования и ОС/ПО и синергии для лучшей оптимизации компиляции:
x86-64-v2 обеспечивает поддержку (помимо прочего) векторных инструкций вплоть до Streaming SIMD Extensions 4.2 (SSE4.2) и Supplemental Streaming SIMD Extensions 3 (SSSE3), инструкции POPCNT (полезной для анализа данных и битовой манипуляции в некоторых структурах данных) и CMPXCHG16B (двухсловная инструкция сравнения и обмена, полезная для параллельных алгоритмов).
x86-64-v3 добавляет векторные инструкции до AVX2, MOVBE (для доступа к данным с обратным порядком байтов) и дополнительные инструкции по битовой манипуляции.
x86-64-v4 включает векторные инструкции из некоторых вариантов AVX-512.
Линус Торвальдс считает, что эти уровни архитектуры делают вещи более запутанными, а не упрощают их, поскольку линеаризация прогрессии аппаратных инструкций и функций не является реалистичным подходом.
Эксперты считают, что заявления Торвальдса в этом случае имеют смысл, учитывая, что разработчики часто обнаруживают, что определённые инструкции ЦП, такие как, скажем, AVX, могут присутствовать в некоторых семействах процессоров, но позже исчезают. Недавним примером является Intel, которая представила AVX-512 в 11-м поколении Rocket Lake, а затем удалила его позже в последующих поколениях.
Следует отметить, что Торвальдс является участником недавно созданной консультативной группы по экосистеме x86, поэтому его вклад, безусловно, может иметь определённый вес.
Создатель Linux также добавил, что он выступает за снижение сложности опций сборки x86_64, поскольку большая часть настройки компилятора на конкретные процессоры на самом деле не имеет смысла для ядра. Вероятно, ядро Linux просто будет придерживаться общего x86_64 и, возможно, опции «-march=native» для оптимизации только для локальной системы.
В январе 2024 года Линус Торвальдс обозвал %^!@$% новый код Intel Xe для DRM (Direct Rendering Manager) в Linux 6.8. Он сам исправил его огрехи и призвал сторонних разработчиков и мейнтейнеров проекта тестировать, тестировать и ещё раз тестировать свои патчи.
В июле 2023 года Линус Торвальдс разочаровался в одном из решений разработчиков AMD, связанном с аппаратной реализацией генератора случайных чисел, и сообщил, что устал от «глупых» ошибок fTPM (Firmware-based Trusted Platform Module). Он обратился к мейнтейнерам Linux с просьбой отключить эту опцию в ОС по умолчанию.
В 2018 году Торвальдс решил отказаться от своей позиции разгневанного оратора в общении с прессой и компаниями. Он сделал перерыв в работе с ядром Linux, чтобы поработать над своим поведением по отношению к другим разработчикам. Разобравшись с этим, Торвальдс вернулся к ядру. С тех пор он стал гораздо мягче. Торвальдс подтвердил свою сдержанность в интервью на саммите Open Source в Японии. Он сказал, что больше не будет «показывать пальцем на какую-то компанию. Я усвоил урок».
Источник: habr.com