Выпущен процессор, в котором так много ядер, что от них ломается Linux. ОС срочно требуется исправление

Оказалось, что в Linux есть лимит количества поддерживаемых ядер в процессоре. Производитель серверных CPU Ampere доказал, что ОС ломается, если запустить ее на системе с двумя процессорами по 192 ядра в каждом. Патч уже готов, но встраивать его в ядро Linux разработчики не спешат.

Linux не всесилен

Linux оказался не способен работать в системах, укомплектованных несколькими процессорами со 192 ядрами. Как пишет Phoronix, это доказала компания Ampere, основанная экс-президентом Intel и выпускающая высокопроизводительные ARM-процессоры для серверов, дата-центров и систем хранения данных.

Эксперты Ampere установили, что Linux начинает сбоить, если установить его на систему с двум 192-ядерными чипами (в серверном сегменте многопроцессорные конфигурации – не редкость). Они выяснили, что суммарные 384 ядра – это слишком много для Linux, операционка на своем нынешнем этапе развития способа справиться лишь с 256 ядрами.

Обычно любые проблемы с совместимостью Linux решаются патчами – с их помощью можно как добавить поддержку новых устройств, например, процессоров, так и лишить Linux возможности корректно работать, к примеру, на системах с давно устаревшими CPU.

Linux не обучен работать с суперсовременными процессорами на уровне кода ядра

Как правило, такие исправления создают участники сообщества разработчиков Linux – за 32 года существования этой ОС оно разрослось до глобальных масштабов, и даже в России есть специалисты, чьи наработки регулярно встраиваются в ядро Linux.

Все почти готово

Иногда случаются исключения из этого правила – авторы той или иной «железки» сами готовят необходимые патчи, чтобы Linux как можно скорее научился работать их новым творением. Подобным регулярно занимаются китайские разработчики устройств, в том числе и потому, что в этой стране существует внушительное количество национальных ОС, построенных именно на базе Linux.

Случай Ampere – это тоже исключение. Компания не стала дожидаться, пока комьюнити найдет выход из ситуации, и взяла все в свои руки. Ampere сама разработала патч обучающий Linux работать с 512-ядерными конфигурациями, в том числе и собранными на нескольких процессорах.

Для этого Ampere использовала метод CPUMASK_OFFSTACK, который, на деле, позволяет внедрить поддержку хоть 8192 процессорных ядер, но компания решила пока что ограничиться лишь 512, и не без причины. Во-первых, собрать систему с 8192 ядрами будет не так-то просто, если речь не о суперкомпьютере, во-вторых, Ampere решила не перегружать ядро Linux и не делать его «тяжеловесным», поскольку поддержка каждого процессорного ядра добавляет около 8 КБ к размеру его образа,

Но, как пишет Tom’s Hardware, может пройти некоторое время, прежде чем ограничение количества ядер увеличится до 512. Еще в 2021 г. был подготовлен другой патч, тоже предлагающий увеличить ограничение числа ядер ЦП в ядре Linux до 512, но сообщество разработчиков отклонило его, сославшись на то, что в систем со стольким числом ядер в мире нет. Вполне вероятно, что патч Ampere будет внедрен в ядро в лучшем случае в 2024 г. с релизом Linux 6.8.

Почему именно Ampere

У того, почему именно Ampere столкнулась с ограничением количества поддерживаемых ядер в Linux вместо Intel или AMD, есть объяснение. В настоящее время современные процессоры Ampere наделены самым большим количеством ядер в мире – ни AMD Epyc, ни Intel Xeon не могут угнаться за ними в этом плане. Для примера, самый топовый на момент выпуска материала Epyc 9654P имел в своем распоряжении лишь 96 ядер, то есть на 100 меньше, чем у новых чипов Ampere, получивших название Ampere One.

Это целая серия процессоров, премьера которой состоялась в мае 2023 г., и 192 – это количество ядер во флагмане линейки. Предыдущее поколение чипов компании, вышедшее в мае 2021 г., носит название Ampere Altra Max, и там предельное число ядер – 128. Чипы нового поколения могут предложить по 2 МБ кеша L2 на ядро против 1 МБ в Altra Max. Новая линейка включает CPU со 136, 144, 160 и 172 ядрами, а их тактовая частота достигает 3 ГГц.

AMD и Intel, вероятно, стоит немного напрячься, поскольку Ampere уже обходит их по количеству ядер в процессорах, к тому же она использует архитектуру ARM, по многим параметрам более перспективную в сравнении с х86 Более того, во главе Ampere стоит Рене Джеймс (Renee James), которая в течение длительного времени занимала пост президента Intel.

Фото: Ampere
Рене Джеймс

Как сообщал CNews, Джеймс покинула Intel в июне 2015 г. и спустя почти два с половиной года, в октябре 2017 г., основала Ampere. Другими словами, обойти Intel и AMD по числу ядер в серверных процессорах Ampere смогла за пять с половиной лет существования. Напомним, что Intel была основана в 1968 г., а AMD – годом позже, то есть им сейчас 55 и 54 года соответственно.