Патч для Spectre V2 вызывает проблемы с производительностью на Linux-системах
Линус Торвальдс выступил за разработку патча, ограничивающего механизм защиты от Spectre V2 на Linux.
Линус Торвальдс одобрил разработку обновления для Linux, ограничивающего предыдущую защиту от уязвимости Spectre V2. Обновление будет деактивировать включенный по умолчанию механизм защиты от Spectre V2, и на это есть причины. Дело в том, что при включенном механизме защиты на компьютерах с процессорами Intel, использующими технологию гиперпоточности (Hyper-Threading), приложения работают в два раза медленнее. Hyper-threading представляет собой разработанную компанией Intel реализацию так называемой «одновременной многопоточности» (SMT). Hyper-threading разделяет отдельные ядра процессора на два аппаратных потока. Таким образом, каждое ядро может одновременно запускать два приложения. То есть, скажем, 12-ядерный процессор будет иметь 24 потока и играть роль 24-ядерного процессора.
Одни приложения выигрывают от SMT, тогда как для других технология является препятствием. Проблема заключалась в том, что запущенное в одном потоке приложение могло следить за приложением из другого потока на одном с ним ядре. В свое время эта проблема была решена, однако уязвимости семейства Spectre снова сделали ее головной болью. SMT и некоторые патчи оказались несовместимыми друг с другом, что существенно отразилось на производительности компьютеров.
В данном случае речь идет о патче, исправляющем Spectre V2 на Linux 4.20 и портированном на Linux 4.19.2. Механизм защиты под названием STIBP (Single Thread Indirect Branch Predictors) предотвращает использование вредоносным ПО модуля предсказания переходов процессора для перехвата паролей, ключей шифрования и других данных из памяти, доступа к которой у него быть не должно.
Как оказалось, STIBP вызывает серьезные проблемы с производительностью, и Торвальдс решил, что механизм не должен быть активирован по умолчанию всегда. «Когда на некоторых загрузках производительность подает до 50%, нужно решить для себя, стоит ли оно того. Очевидно, лучше полностью отключить SMT, что заботящиеся о безопасности люди делают в любом случае», — сообщил Торвальдс в электронной рассылке разработчикам ядра Linux.