В настоящее время в СМИ распространяется информация о не опубликованной ещё в полной мере уязвимости процессоров Intel, которая требует программной заплатки на уровне ядра всех популярных ОС и в теории может привести к значительному снижению производительности в самых разных задачах. Каковы же потенциальные потери от внедрения исправлений, получивших общее имя KPTI [Kernel Page Table Isolation]?
Ресурс Phoronix, освещающий связанные с развитием дистрибутивов Linux темы, решил провести ранние тесты различных задач на двух системах с ядром Linux 4.15-rc6, главным новшеством которого являются KPTI-заплатки. Уровень падения производительности ожидается в диапазоне от одной до двух цифр — в зависимости от того, как часто задача или приложение взаимодействует с изолированным в отдельной области адресного пространства ядром операционной системы. Если это простые пользовательские приложения, KTPI-обновления не должны сильно повлиять, особенно на более новых процессорах Intel с поддержкой функции PCID (Process Context Identifiers — идентификаторы контекста процесса, используемые процессором для определения закешированной информации, относящейся к различным адресным пространствам).
Тестированию в синтетических пакетах подверглись две системы: на базе Core i7 8700K Coffee Lake с Ubuntu 16.04.3 LTS и Core i7 6800K Broadwell E с Ubuntu 17.10. Компоненты тоже отличались, так что корректнее сравнивать результаты отдельного процессора с активированной заплаткой и без неё.
Например, бенчмарк файловой системы FS-Mark демонстрирует замедление на последнем ядре с Linux при активации KPTI. На системе с высокоскоростным накопителем Samsung 950 PRO NVMe SSD и i7-8700K провал оказывается чудовищным — почти двукратным. В то время как результаты системы с i7-6800K и обычным SSD Toshiba TR150 с интерфейсом SATA 3.0 проседают куда скромнее.
Производительность обеих систем в тесте Compile Bench тоже пострадала. Если это не вызвано x86-заплатками, то в свежее ядро должны были быть внесены другие существенные регрессивные изменения (что весьма сомнительно).
Работа открытой объектно-реляционной системы управления базами данных PostgreSQL стала тоже заметно медленнее:
Аналогичная ситуация с замедлением наблюдается и в работе открытого сетевого журналируемого хранилища данных Redis на базе нереляционной высокопроизводительной СУБД:
В то же время скорость работы приложений, ограниченных при работе преимущественно активностью в области пользовательского пространства, будет затронута, по-видимому, минимально, если судить по тестам кодирования видео в формат H.264, задаче компиляции и декодирования видео через FFmpeg:
Аналогичная ситуация касается и игровых задач. Судя по ранним тестам, их проблема почти не коснётся. По крайней мере, с переходом на новое ядро в Linux с заплаткам KPTI падение производительности не выходит за рамки статистической погрешности. На системе с Radeon RX Vega 64 и Intel Core i7 8700K Coffee Lake наблюдается следующая ситуация (верхняя полоска — до заплатки, нижняя — после):
Таким образом, в самых разных играх для Linux, использующих API Vulkan и OpenGL, не наблюдается сколько-нибудь заметного падения частоты кадров в результате использования ядра с обходом уязвимости чипов Intel. Как и в случае с рядом других пользовательских приложений вроде FFmpeg. В то же время ряд синтетических тестовых пакетов или специфические задачи вроде СУБД страдают порой весьма серьёзно. Похоже, рядовым пользователям беспокоиться особенно не о чем, тогда как владельцев облачных серверов на базе чипов Intel проблема, возможно, серьёзно затронет.
Между тем AMD в лице Томаса Лендаки (Thomas Lendacky) официально подтвердила, что её чипы не подвержены уязвимости: «Процессоры AMD не являются объектом тех типов атак, против которых направлены меры защиты KTPI. Микроархитектура AMD не разрешает ссылки на ячейки памяти, в том числе спекулятивные, которые дают доступ к высокопривилегированным данным в менее привилегированном режиме, когда такой доступ может приводить к ошибке страницы. Поэтому следует по стандарту отключать KPTI на процессорах AMD». Обсуждение новости уже привело к падению курса акций Intel и росту AMD.