Вдруг кто мимо прошел. На английском:
https://newsroom.int…annels.pdfРезюме рекомендаций:
Bounds check bypas: Юзать LFENCE для принудительного предотвращения спекулятивного выполнения. Но в меру. А то даст по производительности. Но не так сильно, как "другие методы". Видимо с другими вообще швах. Далее моя попытка перевода главы 3. Mitigations.
Branch target injection: Два варианта.
а) Ваяют некий новый "интерфейс между софтом и процом" (©Intel).
Оный позволит сбрасывать блоки предсказания ветвлений по команде ОС. Обещают выложить в новой редакции небезызвестного Intel® 64 and IA-32 Architectures Software Developer’s Manual. Когда-нибудь. Будет нужен апдейт как софта (ОС), так и микрокода. В новых процах обещают улучшить производительность этих самых мер. Три новых возможности, 3 новых абревиатуры.
Indirect Branch Restricted Speculation (IBRS): Насколько я понял, запрещает спекулятивное условных переходов
Single Thread Indirect Branch Predictors (STIBP): запрещает управление блоками предсказания ветвлений со стороны дочерних гипертредов.
Indirect Branch Predictor Barrier (IBPB): заперщает предыдущему коду влиять на последующие предсказания. Что бы это ни значило.
б) Некий трамплин возврата, или, цитато "retpoline". Финты с кодом. Да я знаю, что наркотики - плохо, но это не я, это Intel
Скрытый текст
Замена (в коде софта) indirect near jump на кусок кода, делающий пуш адреса назначения в стек, а потом RET штоп туда прыгнуть. Моар черной магии, но утверждается, что работать оно должно получше предыдущего метода. Нак кой тогда ваяют а) - загадко. А так же я тупо мог что-то не то понять.
Rogue Data Cache Load:
Коротко - KAISER во все дыры.
По замыслу Intel, ОС должна обеспечивать отсутствие мапинга привилегированых страниц в юзер моде. На пракике выглядит как два набора страничной адресации. Для юзер мода только минимально необходимый набор из режима супервайзера (дабы переключится можно было хоть) ну и собсно страницы самого приложения. Для режима супервайзера - все. А шоб було. Далее идет рекомендация по использованию наворота PCID, т.к. оное якобы позволяет избежать сильного снижения производительности при переключении режимов юзер/супервайзер изза той самой двойной адресации, точнее загрузки разных CR3, которое вызывает очистку TLB, которое с PCID работает быстрее
![Веселый Веселый](/themes/glav/images/smileys/cheesy.gif)
Ну что тут еще скажешь. В новых процах обещают ченить сделать хардварное. Так и написано. Кстати, поддержка PCID есть не везде. Ну как всегда.
Как мог перевел, пинайте за ошипки обязательно.