Внимание на non-input/anchor элемент?

1119 Я думаю, что можно предположить, что нет; выпечка invlpg в clflush звучит как безумное дизайнерское решение, которое, я думаю, никто не примет. Вы часто хотите сделать недействительными несколько строк на странице. Там также нет очевидной выгоды; очистка TLB также не облегчает реализацию очистки кэша данных.

Даже простое удаление окончательной записи TLB (без необходимости аннулирования какого-либо кэширования каталога страниц) будет слабее, чем invlpg, но все равно не имеет смысла.

Все современные x86 используют кеши с физическим индексированием / тегами, а не виртуальные. (Кэши L1d VIPT на самом деле являются PIPT со свободной трансляцией индекса, потому что они взяты из битов адреса, которые являются частью смещения на странице.) И даже если кеши были виртуальными, аннулирование записей TLB требует аннулирования виртуальных кешей, но не наоборот. .


Согласно IACA, clflush составляет только 2 мопа на HSW-SKL и 4 мопа (включая микросинтез) на NHM-IVB. Так что это даже не микрокодирование на Intel.

IACA не моделирует invlpg, но я предполагаю, что это больше мопсов. (И это привилегировано, так что это не совсем тривиально для тестирования.) Удаленно возможно, что эти дополнительные мопы на pre-HSW были для аннулирования TLB.

У меня нет никакой информации о AMD.


Тот факт, что invlpg является привилегированным, является еще одной причиной ожидать, что clflush не будет его надмножеством. clflush непривилегирован. Предположительно, только из соображений производительности invlpg ограничен только кольцом 0.

Но invlpg не будет сбоя страницы, поэтому пользовательское пространство может использовать его для аннулирования записей TLB ядра, задержки процессов в реальном времени и обработчиков прерываний. (wbinvd является привилегированным по аналогичным причинам: он очень медленный, и я думаю, что он не прерываемый.) clflush совершает ошибку на недопустимых адресах, поэтому он не откроет эту уязвимость отказа в обслуживании. Вы могли бы clflush совместно использовать страницу VDSO.

Если только по какой-то причине процессор не хочет, чтобы выставлял invlpg в пространстве пользователя (переводя его в clflush), я действительно не понимаю, почему какой-либо поставщик сделал бы это .


С энергонезависимыми модулями DIMM в будущем вычислений, еще менее вероятно, что любые будущие процессоры будут делать слишком медленные циклы для работы с диапазоном памяти clflush. Вы ожидаете, что большинство программ, использующих NV-хранилище с отображением памяти, будет использовать clflushopt, но я бы ожидал, что производители процессоров также сделают clflush максимально быстрым.

10
задан Dan Herbert 15 February 2009 в 00:24
поделиться

3 ответа

То, под чем Вы подразумеваете, "может получить фокус"? Любой элемент DOM может быть установкой для получения множества событий JavaScript включая click события.

Или Вы имеете в виду, "может быть снабжен вкладками к с клавиатурой"? Если так, и если Вы не можете использовать a отметьте как свой контейнер, затем попробуйте tabindex свойство на Ваших элементах. Я не уверен, как перекрестный браузер, который это, но по крайней мере пробует его прежде, чем записать ui с вкладками в JavaScript самостоятельно.

11
ответ дан 4 December 2019 в 01:03
поделиться

Своего рода обходное решение и не семантически корректный, но...

a#foo { display: block; }
a#foo:hover { cursor: default; }

Затем используйте JavaScript для прерывания onClick события на a#foo и возвратите false.

0
ответ дан 4 December 2019 в 01:03
поделиться

Закладки являются способом пойти.

Начните свое содержание с

<a href="#anchor">
0
ответ дан 4 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: