Унификация атомарных операций через эмуляцию
Разработчик ядра Пол МакКенни (Paul E. McKenney) внедрил в Linux 7.4 новую функцию cmpxchg_emu_u16(). Эта утилита позволяет использовать 16-битные операции сравнения и обмена (cmpxchg) в общем коде ядра, даже на архитектурах, где нет нативной аппаратной поддержки для двухбайтовых атомарных записей. Эмуляция базируется на существующей 32-битной версии cmpxchg.
Это изменение критически важно для упрощения разработки алгоритмов, требующих атомарности на уровне полуслова (half-word), что часто встречается в современных сетевых стеках и файловых системах.
Архитектуры, получившие поддержку
Функция эмуляции была интегрирована для следующих архитектур, которые ранее сталкивались с ограничениями при работе с 16-битными атомарными операциями:
| Архитектура | Статус в Linux 7.4 | Примечание |
|---|---|---|
| SH (SuperH) | Поддержка через эмуляцию | Устаревшая 32-битная архитектура |
| ARC | Поддержка через эмуляцию | Используется в встраиваемых системах |
| CSKY | Поддержка через эмуляцию | Китайская RISC-архитектура, добавлена в 2018 г. |
| Xtensa | Поддержка через эмуляцию | Параметризуемая архитектура для DSP |
Конец эпохи: отказ от старых CPU
Самым значимым заявлением в pull-реквесте стало предупреждение о том, что некоторые системы, не имеющие нативной поддержки двухбайтовых инструкций хранения, могут быть исключены из основного дерева ядра (mainline) в ближайшем будущем. Разработчики отмечают, что поддержка таких систем становится экономически и технически нецелесообразной.
CSKY: возможно, последняя новая архитектура?
Особое внимание уделяется архитектуре C-SKY. Добавленная в ядро в 2018 году, она рассматривалась как потенциально последняя новая CPU-архитектура, интегрированная в Linux. С тех пор сообщество разработчиков неоднократно заявляло о конвергенции усилий вокруг RISC-V, что делает дальнейшее добавление новых архитектур маловероятным. Удаление поддержки старых портов, таких как SH или устаревшие версии CSKY, станет логичным шагом к оптимизации кодовой базы.
Почему это важно?
Для энтузиастов и разработчиков это означает переход к более строгой политике поддержки «железа». Ядро Linux становится чище и эффективнее, отказываясь от поддержки нишевых и устаревших процессоров ради улучшения производительности и безопасности для массовых архитектур (x86, ARM, RISC-V). Если вы используете старые встраиваемые системы на SuperH или ранних версиях CSKY, стоит заранее планировать миграцию на более современные платформы.
Источник: Phoronix ↗
