Итак, TSX может быть отключен не для смягчения Спектра, а как часть другого уменьшения уязвимости, Асинхронного прерывания TSX (TAA).
Вот соответствующая статья на сайте Intel:
Которые ссылаются на две более подробные статьи:
Ссылки содержат следующую информацию:
- Некоторые будущие или даже текущие процессоры могут иметь аппаратное ослабление для TAA, обнаруженное
IA32_ARCH_CAPABILITIES[TAA_NO]=1
. - В противном случае, если процессор чувствителен к MDS (
IA32_ARCH_CAPABILITIES[MDS_NO]=0
), программная защита для MDS также уменьшит TAA - В случае
IA32_ARCH_CAPABILITIES[TAA_NO]=0
и IA32_ARCH_CAPABILITIES[MDS_NO]=1
, TAA должно быть смягчено одним из следующих способов: - Программная защита
- Выборочное отключение TSX
Возможность для вышеупомянутых выборочное отключение TSX приходит с обновлением микрокода. После такого обновления микрокода возможность управления TSX контролируется IA32_ARCH_CAPABILITIES[TSX_CTRL] (bit 7)=1
.
Теперь о HLE. В статье TAA говорится:
Некоторым процессорам может потребоваться загрузить обновление микрокода для добавления поддержки IA32_TSX_CTRL
. MSR поддерживает отключение функции окончательной первоначальной версии Intel TSX путем установки TSX_CTRL_RTM_DISABLE (bit 0)
. Когда этот бит установлен, все транзакции RTM будут прерваны с кодом сброса 0, прежде чем какие-либо инструкции могут быть выполнены внутри транзакции, даже спекулятивно. На процессорах, которые перечисляют IA32_ARCH_CAPABILITIES[TSX_CTRL] (bit 7)=1
, подсказки префикса HLE всегда игнорируются.
Это все еще неоднозначно, если оператор " На процессорах, которые перечисляют IA32_ARCH_CAPABILITIES[TSX_CTRL] (bit 7)=1
, подсказки префикса HLE всегда игнорируются"является общим или относится только к случаю" Когда этот бит установлен".
Но поскольку существуют (текущие или будущие) ЦП, не подверженные TAA, я считаю, что У меня есть ответы на мои вопросы:
Это правильно, что аппаратная блокировка Elision отключена для всех текущих процессоров из-за Spectre смягчения TAA и любой попытки получить мьютекс с использованием HLE встроенные / инструкции приведут к обычному мьютексу?
Не могу сказать наверняка. Процессоры, которые не чувствительны к TAA, могут поддерживать префиксы HLE. До сих пор неясно, существует ли текущий ЦП, который разрешает HLE после всех необходимых обновлений и смягчений, или будет ли такой ЦП в будущем.
Вероятно ли, что в будущем не будет ничего подобного мьютексам HLE чтобы избежать таких уязвимостей, как Spectre?
Нет. Существует еще RTM, который может быть не отключен, и его можно использовать для создания мьютексов, таких как мьютексы HLE.