Разработчики ядра Linux выпустили вторую версию исправлений для удаления поддержки процессоров i486
Мейнтейнер архитектуры x86, механизма блокировок и планировщика задач в ядре Linux Инго Молнар (Ingo Molnar) выставил на обсуждение вторую версию набора патчей, удаляющих из новой версии ядра Linux поддержку процессоров i486 (M486, M486SX, AMD ELAN) и начальных серий процессоров i586. В коде ядра предлагается оставить только возможность работы с процессорами x86, поддерживающими инструкцию CX8 (CMPXCHG8B) и регистр TSC (Time Stamp Counter), которые появились в CPU Pentium.
В конце апреля Молнар опубликовал первый вариант исправлений в ядро Linux для прекращения поддержки очень старых процессоров i486 и ранних процессоров i586. Хотя эта работа по удалению процессоров x86 без TSC и CX8 пока не включена в ядро Linux, она продолжается, так как там потребуется несколько итераций для исправлений. По предварительным оценкам, удаление поддержки старых процессоров облегчит код Linux x86 более чем на 14 тыс. строк кода.
Вторая итерация патчей переработана на основе последней исходной кодовой базы ядра Linux в Git и исправляет множество мелких проблем с кодом, которые были выявлены во время ревью кода первой версии исправлений, а также включает дополнительные проверки и необходимые ограничения, чтобы не удалить нужные компоненты.
Для поддержки CPU i486 в ядре приходится держать код, эмулирующий операции CX8 (сравнить и обменять 8 байт) и TSC (счётчик циклов CPU, используемый в планировщике задач). Подобный код усложняет ядро, затрудняет сопровождение и временами становится источником проблем, разбор которых отнимает время у разработчиков. Прекращение поддержки i486 позволит удалить из ядра 14 104 строки кода, что значительно упростит некоторые функции в ядре за счёт исключения прослоек, эмулирующих CX8 и TSC, и позволит избавиться
Читать на habr.com