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