На днях AMD сообщила, что механизм Predictive Store Forwarding (PSF) в процессорах с архитектурой Zen 3 подвержен атакам по побочному каналу (вроде Spectre и Meltdown), которые базируются на анализе данных, осевших в процессорном кеше при спекулятивном выполнении команд. Компания рассказала пользователям, как они могут обезопасить себя и отключить данную функциональность, но не прокомментировала, как это повлияет на производительность. Журналисты Phoronix решили прояснить этот вопрос.
(Phoronix)
Новый механизм предсказания Predictive Store Forwarding (PSF) в процессорах AMD Zen 3 оказался подвержен аппаратной уязвимости чтения данных через сторонний канал. В теории отключение данной возможности должно снизить производительность, и именно этот эффект мы наблюдали на примере процессоров Intel в процессе устранения уязвимостей Spectre и Meltdown. Но на данный момент AMD ссылается на то, что случаи эксплуатации уязвимости в PSF неизвестны, поэтому она не рекомендует конечным пользователям отключать функциональность во избежание падения производительности.
Механизм PSF отключается в процессорах Zen 3 с помощью установки определённых MSR-битов. В техническом документе AMD пообещала опубликовать заплатки для Linux, позволяющие легко отключить PSF в случае необходимости, но пока общедоступных патчей нет.
(Phoronix)
Тем не менее Майкл Ларабель (Michael Larabel) из Phoronix самостоятельно собрал ядро операционной системы Linux с отключенным PSF и провёл десятки тестов на нескольких системах с процессорами серий AMD Ryzen 5000 и EPYC 7003 на обычном ядре и ядре с отключённым механизмом PSF. По его словам, тестирование проводилось на широком спектре рабочих нагрузок, причём каждый тест запускался автоматически по несколько раз.
В итоге пришлось констатировать, что отключение PSF влияет на производительность минимально. В большинстве случаев разница была в пределах статистической погрешности, хотя в некоторых рабочих нагрузках она приближалась к 1 %. Например, процессор Ryzen 7 5800X был пропущен через набор из более чем 100 тестов. При этом усреднение всех результатов говорит о менее чем 1,5 % потери производительности при отключении потенциально опасной функции Zen 3.
(Phoronix)
Короче говоря, несмотря на то, что AMD в целом не рекомендует своим клиентам отключать PSF, если кто-то решит пойти на этот шаг во имя повышения безопасности, это, скорее всего, не приведёт к какой-либо существенной разнице в производительности. В отличие от прочих заплаток, призванных бороться с атаками, связанным со спекулятивным исполнением команд, в этот раз всё обошлось малой кровью.