Аппаратная блокировка Elision навсегда исчезла из-за смягчения последствий? - PullRequest
4 голосов
/ 19 апреля 2020

Правильно ли, что аппаратная блокировка Elision отключена для всех текущих процессоров из-за ослабления Спектра, и любая попытка получить мьютекс с использованием встроенных / инструкций HLE приведет к обычному мьютексу?

Возможно ли, что не будет ли что-то вроде мьютексов HLE в будущем, чтобы избежать таких уязвимостей, как Spectre?

1 Ответ

3 голосов
/ 20 апреля 2020

Итак, 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.

...