Возвращение к разработке: устранение Race Condition
После перерыва, связанного с необходимостью исправления критической ошибки гонки (race condition), компания Igalia представила обновленную версию патчей для системных вызовов get_robust_list2 и set_robust_list2. Эти изменения являются частью долгосрочной стратегии Valve по оптимизации работы Steam Play на архитектуре ARM64, что критически важно для устройств вроде Steam Deck и Steam Frame.
Технические детали обновления
Новая версия патчей, опубликованная разработчиком André Almeida, была перебазирована (rebased) на актуальное основное дерево ядра Linux. Ключевым техническим улучшением стала адаптация к изменениям в VDSO (Virtual Dynamically Linked Shared Object), что обеспечивает более стабильное взаимодействие между пользовательским пространством и ядром. Ранее разработка была приостановлена именно из-за необходимости корректной обработки состояний гонки в существующей реализации.
Значение для эмуляции FEX-Emu
Основная цель этих изменений — улучшение работы эмулятора FEX-Emu. Этот инструмент позволяет запускать игры, написанные для архитектур x86/x86_64, на процессорах ARM64. Существующие механизмы управления списками устойчивых списков (robust lists) в Linux имели недостатки, которые мешали эффективной работе эмуляции. Новые вызовы FUTEX призваны устранить эти узкие места, повышая производительность и стабильность геймплея.
Сводка изменений
| Параметр | Значение / Описание |
|---|---|
| Разработчик | Igalia (André Almeida) |
| Целевая архитектура | ARM64 (Steam Deck, Steam Frame) |
| Ключевые компоненты | FEX-Emu, Steam Play, Linux Kernel |
| Исправленная проблема | Race condition в старых версиях патчей |
| Техническая адаптация | Совместимость с новыми изменениями VDSO |
Почему это важно для геймеров
Успешное внедрение этих патчей в основное ядро Linux напрямую повлияет на количество совместимых игр, которые можно запускать на портативных консолях Valve без потери производительности. Оптимизация низкоуровневых системных вызовов позволяет эмулятору FEX-Emu быстрее обрабатывать системные запросы от игр, снижая задержки и предотвращая вылеты приложений. Это шаг к тому, чтобы «все игры для ПК» работали на Steam Deck так же хорошо, как и на нативных x86-системах.
Источник: Phoronix ↗
